fmcw radar range doppler info of the target
4 ビュー (過去 30 日間)
古いコメントを表示
Hello everyone,
I am trying to plot range-doppler diagram for an fmcw radar. Here is how I generate transmitted,received and video signal;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%
clear all; close all; clc
c=3e8; %speed of light fc=8e9; %carrier freq deltaF=32e6; %sweep freq T=1e-3; %one period alph=deltaF/T; %sweep rate
R=500; %initial distance of the target td=2*R/(c); %initial delay of returned signal
v=2; %speed of the target (give some value between 0 and 10) D=64; % #of doppler cells OR #of sent periods N=2^10; %for length of time
t=linspace(0,D*T,D*N); %total time
n=0; nT=length(t)/D; %length of one period a=zeros(1,length(t)); %transmitted signal b=zeros(1,length(t)); %received signal r_t=zeros(1,length(t)); ta=zeros(1,length(t)); r1=R; f0=fc; for i=1:length(t)
r_t(i)=r1+v*t(i); % range of the target in terms of its velocity and initial range ta(i)=2*r_t(i)/c; % delay for received signal
if i>n*nT && i<=(n+1)*nT % doing this for D of periods (nt length of pulse)
a(i)=sin(2*pi*(f0*t(i)+.5*alph*t(i)^2-alph*t(i)*n*T)); %transmitted signal b(i)=sin(2*pi*(f0*(t(i)-ta(i))+.5*alph*(t(i)-ta(i))^2-alph*(t(i)-ta(i))*n*T)); %received signal
else
n=n+1 a(i)=sin(2*pi*(f0*t(i)+.5*alph*t(i)^2-alph*t(i)*n*T)); %transmitted signal b(i)=sin(2*pi*(f0*(t(i)-ta(i))+.5*alph*(t(i)-ta(i))^2-alph*(t(i)-ta(i))*n*T)); %received signal
end
end
mixed1=(a.*b); %video signal OR IF signal (output of mixer)
m1=reshape(mixed1,length(mixed1)/D,D); %generating matrix ---> each row % showing range info for one period AND each column showing number of periods
[My,Ny]=size(m1');
win=hamming(Ny); m2=conj(m1).*(win*ones(1,My)); %taking conjugate and applying window for %%sidelobe reduction (in time domain)
Win=fft(hamming(My),D); M2=(fft(m2,2*N)); %First FFT for range information
M3=fftshift(fft(M2',2*D)); %Second FFT for doppler information
[My,Ny]=size(M3); doppler=linspace(-D,D,My); range=linspace(-N,N,Ny);
figure;contour(range,doppler,abs(M3));grid on; xlabel('Range'); ylabel('Doppler')
figure;mesh(range,doppler,abs(M3)); xlabel('Range'); ylabel('Doppler')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%
There are a few thing I am not sure if I am doing right. First, while defining the received signal (b) is that the correct way to do it for every period. Second, I am applying window for the video signal for range sidelobe reduction. Do I need to do it for doppler sidelobes also? Third, I am not sure if I am using 'fftshift' function right. Because when I increase the speed of the target, for example from 0 to 1, peak's position shifts to negative value (below zero). Forth, how do I define range and doppler resolutions and use them for x and y axis while plotting.
Please give comments and give me some direction. Thanks!
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Detection, Range and Doppler Estimation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!