系统框图
波形示意
计算公式
则
代入
得
由上,测距实际上是通过发射信号与回波信号的差频计算出距离。差频的值可以通过对差频信号做傅里叶变换得到。
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有一些差别。
要想得到更精确的频率还需要进行进一步处理。下一篇继续
原文:https://www.cnblogs.com/snow15/p/14394264.html