2维FFT 计算目标距离和速度

1 LFMCW信号

2维FFT 计算目标距离和速度_第1张图片

2.回波模型与分析

 1 clc;
 2 clear all;
 3 close all;
 4 
 5 %%
 6 %Author :leon [email protected]
 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。仿真结果如下:

2维FFT 计算目标距离和速度_第2张图片

转载于:https://www.cnblogs.com/hiramlee0534/p/6576702.html

你可能感兴趣的:(2维FFT 计算目标距离和速度)