我是靠谱客的博主 虚拟石头,最近开发中收集的这篇文章主要介绍基于FMCW的测距原理及matlab仿真,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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有一些差别。

要想得到更精确的频率还需要进行进一步处理。下一篇继续

最后

以上就是虚拟石头为你收集整理的基于FMCW的测距原理及matlab仿真的全部内容,希望文章能够帮你解决基于FMCW的测距原理及matlab仿真所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部