1 简介
在交通测速中,使用的双通道连续波多普勒雷达具有两路I/Q正交通道,通过对两路通道的回波信号采集处理得到运动目标的速度和运动方向.建立一个测速模型,通过Matlab的M文件对算法编程完成,实现通道信号的设定读取处理并确定运动目标的仿真目的.模拟两路AD同步采集的I/Q信号作为模型输入,一路通道的数据为实部另一通道的数据为虚部对应为实部和虚部组合的复数形式,以每采集到的1024个组合数据为一帧,在仿真环境中进行快速傅里叶变换得到采集信号的频谱,并经过数据相关后确定目标的频率点位置和多普勒频率,根据多普勒效应计算得到目标的速度和方向,完成仿真.结论表明,文中设计的测速模型可以针对不同目标的模拟输入仿真输出相应目标的速度和运动方向,仿真效果理想.
2 部分代码
AI = ('winsound');
%2. Add channels - Add one channel to AI. chan = addchannel(AI,1);
%3. Configure property values - Assign values to the basic setup properties, and
%create the variables blocksize and Fs, which are used for subsequent analysis.
%The actual sampling rate is retrieved since it may be set by the engine to a
%value that differs from the specified value.
%set(AI,'SampleRate',8000)
% 设置采样速率为8000Hz
ActualRate = get(AI,'SampleRate');
% 从AI中获取实际采样速率
set(AI,'TriggerChannel',chan)
% 设置触发通道
set(AI,'TriggerType','software');
% 设置触发类型
set(AI,'Triggercondition','rising');
% 设置为电压上升至某值后触发
set(AI,'TriggerConditionValue',0.013);
% 设置触发电压值
set(AI, 'TriggerDelay', -1);
% 设置触发时延
set(AI, 'TriggerDelayUnits', 'seconds');
% 设置触发时延的单位
set(AI,'timeout',2)
% 定义超时值
Fs = ActualRate;
% 设置采样速率
clear data1;
start(AI)
% 开始采样
try
[data1,time]=getdata(AI);
% 将采样得到的数据保存到data1,采样时间保存到time
catch time=0;data1=0;
disp('A timeout occurred.');
end
subplot(2,1,1)
% 绘制2行1列的第1张子图
plot(time,data1)
% 以时间为横轴,数据为纵轴作图
xlabel('Time (sec.)')
% 标注横坐标
ylabel('Signal Level (Volts)')
% 标注纵坐标
grid on
% 添加网格
% 对滤波处理后的数据作FFT频谱分析,并将结果在第二张子图上作图表示,加上横纵坐标和标题
[f,mag] = daqdocfft(data1,Fs,blocksize); % 此函数为MATLAB自带
subplot(2,1,2)
plot(f,mag)
grid on
ylabel('Magnitude (dB)')
xlabel('Frequency (Hz)')
title('Frequency Components of Incoming Signal') % 找到频谱幅度最大值,并在屏幕上显示
xlim([0 1500])
[ymax,maxindex] = max(mag);
disp(['Maximum occurred at ', num2str(maxindex), ' Hz'])
3 仿真结果
4 参考文献
[1]倪佳敏, 王健, 傅迎光,等. 基于LabVIEW与Matlab的实时在线光子多普勒测速系统[J]. 光电技术应用, 2014, 29(3):6.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
完整代码获取关注微信公众号天天matlab