2维FFT 计算目标距离和速度
1 LFMCW信号
2.回波模型与分析
1 clc; 2 clear all; 3 close all; 4 5 %% 6 %Author :leon yangli0534@yahoo.com 7 % 8 %% 9 %target 10 target_dist = 123; %distance should be less than 200 11 target_speed = 99*1000/3600;% speed should be less than 230 12 13 14 %% 15 % radar parameter 16 17 fc = 77e9;%center frequency 18 c = 3e8;%light velocity in free space 19 lambda = c/fc;% wave length 20 21 range_max = 200;%maximum of detection distance 22 tm = 5.5*2*range_max/c;%sweep time 23 24 range_rs = 1;% range resolution 25 bw = c/2/range_rs;%sweep bandwidth 26 sweep_slope = bw/tm;% slope 27 28 fr_max = sweep_slope*2*range_max/c;% beat frequency corresponding to the maximum range 29 30 v_max = 230*1000/3600; %maximum speed is about 230 km/h 31 fd_max = 2*v_max/lambda; % maximum doppler frequency 32 33 34 35 fb_max = fr_max+fd_max ; %maximum beat frequency 36 37 fs = 5*fb_max; %sampling frequency 38 t = 0:1/fs:tm; % sampling time 39 40 %% 41 42 Nsweep = 64; % pulses number 43 xr = (zeros(length(t),Nsweep)); 44 fft1 = (zeros(length(t),Nsweep)); 45 fft2 = (zeros(length(t),Nsweep)); 46 for m = 1:1:Nsweep 47 xr(:,m) = exp(1i*2*pi*((2*target_dist/lambda+2*target_speed*(m-1)*tm/lambda)+... 48 ((2*target_dist/c*sweep_slope+2*target_speed/lambda+2*target_speed/c*sweep_slope*(m-1)*tm)*t)+... 49 2*target_speed/c*sweep_slope*t.^2));% echo signal 50 fft1(:,m) =fft(xr(:,m),length(t)); % distance 51 end 52 for n = 1:1:length(t) 53 fft2(n,:) = abs(fft(fft1(n,:)));% velocity 54 end 55 % figure; 56 % plot(abs(fft1)); 57 % figure; 58 % meshgrid() 59 x = linspace(0,1/tm*lambda/2*3.6,Nsweep); 60 y = linspace(0,fs/sweep_slope*c/2,length(t)); 61 62 % meshgrid() 63 mesh(x,y,fft2); 64 ylim([0 range_max]); 65 xlim([0 330]); 66 view(2); 67 ylabel('distance:m'); 68 xlabel('velocity:Km/h'); 69 title('FMCW target detection')
3. 仿真结果 。假设目标距离123m, 速度99Km/h。仿真结果如下:
OPTIMISM, PASSION & HARDWORK