if a stationary object is at a distance of 0-3.5 m from the rangefinder, I will see the beat frequency (from the I output) of 1 kHz. If a stationary object is at a distance of 3.5-7m, then I will see a beat frequency of 2 kHz, etc.
not quite right: The beat frequency is actually continuosly depending on the distance. Let's see:
first, let's imagine all of this happens only within the duration of the rising slope of your chirp.
Your 1 kHz triangle means you make 21.5 MHz in half a period of 1 ms, so that's a slope of 43 MHz/ms = 4.3·10⁹ Hz/s.
In the time it takes your radio wave to travel, say, to an object 1m away and back, 1 m / (3·10⁸ m/s) = 3.3 · 10⁻⁹ s, the local oscillator in your radar has hence gotten 3.3·4.3 Hz further; you mix the reflection with the local oscillator and hence get a beat frequency of 14.2 Hz.
Within the ambiguity range of your radar, for the duration of the rising slope that means your beat frequency is actually the distance in meters times 14.2 Hz. Simple as that! There's no steps involved here.
Further, in order to detect only moving objects, I put several digital notch filters at frequencies of 1 kHz, 2 kHz, etc. And to select the subzone (0-3.5m, 3.5-7m, etc.) in which the object is moving, I use a bandpass filter. For example, for the first subzone the notch is 995-1005Hz and the bandpass filter is 500-1500Hz. P.S. Before digitizing the signal, there is an amplifier and an analog low-pass filter with a cutoff frequency of 10 kHz. Sampling rate 48kHz.
Since there's no discrete steps, your notch filters aren't going to work. (they might, because they're not infinitely steep filters).
As explained above, in a FMCW radar, you can't filter by speed through fixed-frequency filters – the beat frequency continously depends on the range.
The way you can tell a change in beat frequency due to range from one due to Doppler (and hence, velocity) is that you look at the durations for which the beat frequency is positive – and when it's negative.
I cheated a bit above when I said "imagine this all happens during the the rising slope". Let's start with something simpler than your triangular wave, a sawtooth FMCW chirp. The following image(s) are taken from Radartutorial.eu because I can't draw them any better myself:
The red line is the instantaneous frequency of the transmit signal, the green the instantaneous frequency of the reflection. The beat frequency is the (vertical) difference between these two! As said, it will linearly grow with range.
Now, for the most part in that image, the red line is above the green line, but at a certain point it jumps, and for a while, the beat frequency becomes negative (and larger in magnitude). Note how the sum of the positive and the absolute of the negative beat frequency necessarily add up to your total frequency range (21.5 MHz in your case).
The point at which that beat frequency sign switch happens again depends on range – the further away object is, the sooner it happens; after all, the horizontal shift of the green relative to the red line is the time difference, so twice the distance divided by the speed of light. So, for a still target, the beat frequency and the duration of the negative-frequency part of a cycle are just multiples of each other, and contain the same info.
Now, introduce a Doppler shift: That shifts the green line up or down a bit – but it doesn't change the duration of the negative part! So, from the relationship of that duration to the beat frequency, you can infer the Doppler that must have occured. Now, you've taught your sawtooth-FMCW radar to be a range/velocity radar! Pretty cool, huh?
For the triangular-FMCW, things get even more beautiful: Just like in the sawtooth case, your beat frequency has two durations of constant frequency, but not a jump, but a falling and rising period to. From the difference of the two constants, you can directly read the doppler shift, and from their sum the distance. Nice!
However, as said above, you can't range- nor velocity-gate your observation with filters in either case.