FMCW是什么
FMCW(Frequency Modulated Continuous Wave),即调频连续。
FMCW实现测距
利用发射信号与接收信号进行混频,得到包含目标距离和速度信息的中频信号,再对中频信号进行处理,从而得到 目标距离、速度信息。
系统框图
波形示意
计算公式
则
代入
得
由上,测距实际上是通过发射信号与回波信号的差频计算出距离。差频的值可以通过对差频信号做傅里叶变换得到。
matlab仿真
发射信号与回波信号
t1=0:pi/2000:3*pi; %三角波
z1=50*sawtooth(t1,0.5)+50;
z2=50*sawtooth(t1+0.05,0.5)+50;
差频,由下图,差频为1.592(下图中右上角显示)
abs(z1-z2)
差频信号,差频对应的正弦波
z3=sin((6.28*abs((z1-z2))).*t1);
对差频信号做傅里叶变换,得到频谱分布,由图,频率为1.592,与上文差频一致
matlab代码
Fs=2000/pi;
%% 三角波
t1=0:pi/2000:3*pi;
z1=50*sawtooth(t1,0.5)+50;
z2=50*sawtooth(t1+0.05,0.5)+50;
plot(t1,z1);
hold on,plot(t1,z2);
%% 差频
figure,plot(t1,abs(z1-z2));
%% 差频信号
z3=sin((6.28*abs((z1-z2))).*t1);
figure,plot(t1,z3);
%% FFT
f1=Fs*(0:6000)/6000;
zmod=abs(fft(z3)/6000);
figure,plot(f1,zmod);
虽然从仿真图上看到的是准确的频率,但实际上由于频率点是离散的,不一定能落在幅值最大的频点上,所以以上操作只能得到一个粗略的频率。
找幅值最大对应的频点
index=sort(zmod,'descend');
index1=find(zmod==index(1));
仿真结果 index1 = 16,对应的 f1 = 1.5912,与实际上的幅值最大对应的频点1.592有一些差别。
要想得到更精确的频率还需要进行进一步处理。下一篇继续