# Signal reconstruction in FMCW radar

I am doing fmcw radar simulation. I have an output of mixer and from that I want to reconstruct the amplitude and phase of the signal. Therefore, I am taking hilbert transform and by the abs() and angle(), I can get the phase and amplitude information. Since the hilbert transform is in time domain, I want to map this time domain axis into frequency domain so I can see the value of amplitude and phase at different frequencies. FFT is not an option since by taking the fft, I will get the beat frequency.Therefore, how to map this time domain axis to frequency domain.

here are some of the relations between time and frequency. t = f/K, where

K = Bw / Tm
f = frequency,
Bw = bandwidth,
Tm = transmit time


I guess here, deltaf = 1/ t(2)-t(1) and fmax = 1/deltat, I am trying to map the time axis into frequency, but it gives dimension mismatch. Still there is something missing( some multiplyting factor or diving).Acoordig to my SV, its a demultiplexing process. That woud be really good if anyone can help me.

mixed1=(y.*(Y2));
hil = hilbert(y_filt);
figure, plot(t,abs(hil));
figure, plot(t,angle(hil));
deltaf = 1/t(2) - t(1);
fmax = 1/delta t;
f =?            %%% how to define frequency axis so i can plot amplitude & phase
figure, plot(f,abs(hil));
figure, plot(f,angle(hil));

• If FFT is not an option, then you are screwed because then DFT is not an option... But I don't really understand why. You could try convolution with basis functions, but that's DFT all over again... – user13706 Jul 13 '15 at 18:44
• Yes, therefore i am confused. But there shoud be a way. – Urban_Yogi Jul 16 '15 at 10:55

I am pretty sure you will not be able to do what you are after without a FFT. I belive you exclude the use of FFT due to a common misunderstanding of the 'time' vectors involved in a FMCW radar.

First, your modulated FMCW chirp signal is in t = 0:T_m, if your channel is a single delay $\tau$, you now have

$y(t) = \sin(2\pi(f_l t + K/2\cdot{}t^2)$

$y_2(t-\tau)=\sin(2\pi(f_l (t-\tau) + K/2\cdot{}(t-\tau)^2)$

mixed = y.*y_2


Note that you can use a spectrogram on both the $y$, $y_2$ and mixed signals to get an idea of the frequency and amplitude.

Your only sensible option at this point is to take a FFT of the mixed signal to obtain the beat frequency (from matlab fft doc):

n = 2^nextpow2(length(t)*5); % zero pad to 5 times the length
Y = fft(mixed,n);
f = Fs*(0:(n/2))/n;


you may want to do a hilbert transform and also apply a window before the fft, but the principle stays the same.

It is trivial to derive that $y(t)\cdot y_2(t-\tau)$ will have a frequency term

$f_\text{beat} = K\tau$

hence we can plot the above in terms of two-way travel time $\tau$:

two_way_t = f/K;
plot(two_way_t, abs(Y)); % expect a peak at \tau
plot(two_way_t, angle(Y)); % expect a wrapped version of 2*pi*t*K*tau + 2*pi*(f_l*tau - K*tau^2)


This two_way_t time vector is now your 'compressed time' vector.

I really hope this clears something up, because I realise I have not really answered your question.