目录速度测量双线性调频脉冲测量速度matlab仿真FFT处理多目标速度matlab仿真HFSS仿真角度检测多天线估计角度matlab仿真角度估计误差不同距离下角度误差不同角度的测角误差matlab代码速度测量双线性调频脉冲测量速度FMCW 雷达会发射两个间隔Tc的线性调频脉冲用于速度的测量。每个反射的线性调频脉冲通过 FFT处理得到距离由于物体在Tc时间内移动的距离在一个距离分辨率内这样每个线性调频脉冲的距离 FFT 将在同一位置出现峰值但相位不同。通过相位差可以计算出物体的运动速度速度计算公式如下所示matlab仿真目标距离50m多个脉冲的相位通过多个相位计算得到的目标速度FFT处理多目标速度如果速度不同的多个移动物体在测量时与雷达的距离相同则双线性调频脉冲速度测量方法不起作用。这些物体由于与雷达的距离相同因而会生成IF频率完全相同的反射线性调频脉冲。因此距离FFT会产生单个峰值该峰值表示来自所有这些距离相同的物体的合并信号。简单的相位比较技术将不起作用。在这种情况下为了测量速度雷达系统必须发射一组N个等间隔线性调频脉冲。这组线性调频脉冲称为线性调频脉冲帧。先对反射得到的一组线性调频脉冲进行FFT处理从而产生一组N个位置完全相同的峰值但每个峰值都有一个不同的相位包含来自这多个物体的相位成分。再对峰值相同的N个相位进行FFT处理称为多普勒FFT这样就可以区分多个距离相同速度不同的物体。处理流程如下所示matlab仿真目标距离50m多个脉冲的相位通过FFT求解出的速度距离多普勒图如下HFSS仿真HFSS 软件中的 SBRShooting and Bouncing Rays Plus算法专门用于大场景级的电磁仿真特别适用于车载毫米波雷达设计。该功能支持动态场景模拟和雷达传感器数据获取能够进行距离多普勒场景成像。雷达天线的波束宽度为60°设置三个目标如下所示仿真结果如下所示角度检测多天线估计角度物体与多个天线的距离差会导致 FFT 峰值的相位变化相位变化可以用于估算物体与天线间的夹角。角度测试的排布示意图如下相位变化与距离Δd的关系如下所示假设平面波前的前提下距离Δd与角度Δd() d为天线之间的距离物体夹角与相位的公式如下matlab仿真各个接收天线的相位分布如下通过相位分布解算出的角度如下所示角度估计误差上述角度计算依赖与假设回波信号到达接收天线时为平面波实际由于目标距离雷达的距离和角度不同会有差异具体的角度计算误差如下所示不同距离下角度误差距离系数的单位为一个波长可以发现距离越远角度误差越小不同角度的测角误差距离为25个波长可以发现角度越小角度误差越小matlab代码clear;clc;close all;fc50e9;c3e8;lambdac/fc;range_max200;tm5*range2time(range_max,c);range_res1;bwrangeres2bw(range_res,c);sweep_slopebw/tm;fr_maxrange2beat(range_max,sweep_slope,c);v_max100;fd_maxspeed2dop(2*v_max,lambda);fb_maxfr_maxfd_max;fsmax(2*fb_max,bw);waveformphased.FMCWWaveform(SweepTime,tm,SweepBandwidth,bw,SampleRate,fs,SweepDirection,Up,NumSweeps,1);sigwaveform();subplot(211);plot(0:1/fs:tm-1/fs,real(sig));xlabel(Time (s));ylabel(Amplitude (v));title(FMCW signal);axis tight;subplot(212);spectrogram(sig,32,16,32,fs,yaxis);title(FMCW signal spectrogram);car_dist50;car_speed50;car_rcsdb2pow(min(10*log10(car_dist)5,20));cartargetphased.RadarTarget(MeanRCS,car_rcs,PropagationSpeed,c,OperatingFrequency,fc);carmotionphased.Platform(InitialPosition,[30;40;0.5],Velocity,[car_speed;0;0]);channelphased.FreeSpace(PropagationSpeed,c,OperatingFrequency,fc,SampleRate,fs,TwoWayPropagation,true);ant_aperture1e-3;% in square meterant_gainaperture2gain(ant_aperture,lambda);% in dBtx_ppowerdb2pow(5)*1e-3;% in wattstx_gain9ant_gain;% in dBrx_gain15ant_gain;% in dBrx_nf10;% in dBtransmitterphased.Transmitter(PeakPower,tx_ppower,Gain,tx_gain);receiverphased.ReceiverPreamp(Gain,rx_gain,NoiseFigure,rx_nf,SampleRate,fs);radar_speed0;specanalyzerspectrumAnalyzer(SampleRate,fs,...Method,welch,AveragingMethod,running,...PlotAsTwoSidedSpectrum,true,FrequencyResolutionMethod,rbw,...Title,Spectrum for received and dechirped signal,...ShowLegend,true);rng(2012);Nsweep32;at_num16;xr_allcomplex(zeros(waveform.SampleRate*waveform.SweepTime*waveform.NumSweeps,Nsweep,at_num));forat_i1:at_num radarmotionphased.Platform(InitialPosition,[0;0.0015*(at_i-1);0.5],Velocity,[radar_speed;0;0]);xrcomplex(zeros(waveform.SampleRate*waveform.SweepTime*waveform.NumSweeps,Nsweep));form1:Nsweep% Update radar and target positions[radar_pos,radar_vel]radarmotion(waveform.SweepTime);[tgt_pos,tgt_vel]carmotion(waveform.SweepTime);sigwaveform();txsigtransmitter(sig);txsigchannel(txsig,radar_pos,tgt_pos,radar_vel,tgt_vel);txsigcartarget(txsig);rxsigreceiver(txsig);dechirpsigdechirp(rxsig,sig);xr(:,m)dechirpsig;endxr_all(:,:,at_i)xr;specanalyzer(dechirpsig);endxr_fft_allcomplex(zeros(size(xr_all)));forat_i1:at_num xrxr_all(:,:,at_i);xr_fftfft(xr);xr_fft_all(:,:,at_i)xr_fft;endfigure();plot(abs(xr_fft_all(1:100,1,1)));[max_xrfft,d_i]max(abs(xr_fft_all(1:100,1,1)));xr_v_angleangle(xr_fft_all(d_i,:,1));figure();plot(abs(xr_v_angle));v_swp256;v_fft(fft(xr_fft_all(d_i,:,1),v_swp));figure();plot(abs(v_fft));v_fft_allcomplex(zeros(v_swp,at_num));forat_i1:at_numv_fft_all(:,at_i)fftshift(fft(xr_fft_all(d_i,:,at_i),v_swp));endnew_xr_angle(v_fft_all);figure();plot((angle(new_xr_angle(18,:))));at_swp256;ag_fft_allcomplex(zeros(v_swp,at_swp));forn_i1:v_swp deg_mapfftshift(fft((new_xr_angle(n_i,:)),at_swp));ag_fft_all(n_i,:)abs(deg_map(1,:));endangleIndexasin((-at_swp/2:1:at_swp/2-1)/(at_swp/2))*180/pi;figure();plot(angleIndex,abs((ag_fft_all(18,:))));rngdoprespphased.RangeDopplerResponse(PropagationSpeed,c,...DopplerOutput,Speed,OperatingFrequency,fc,SampleRate,fs,...RangeMethod,FFT,SweepSlope,sweep_slope,...RangeFFTLengthSource,Property,RangeFFTLength,2048,...DopplerFFTLengthSource,Property,DopplerFFTLength,256);%clf;figure();plotResponse(rngdopresp,xr);% Plot range Doppler mapaxis([-v_max v_max0range_max])