% %使用FMCW技术的汽车自适应巡航控制
% 该示例显示了如何使用调频连续波(FMCW)技术对汽车自适应巡航控制系统进行建模。
% 该示例执行了移动车辆的距离和多普勒估计。
% 与国防工业中常见的脉冲雷达系统不同,汽车雷达系统通常采用FMCW技术。
% 与脉冲雷达相比,FMCW雷达体积更小,功耗更低且制造成本更低。 结果,FMCW雷达只能监视更小的距离。
% 版权所有2012-2014 The MathWorks,Inc.
clear;
clc;
close all;
%% FMCW Waveform
% 考虑用于自动巡航控制(ACC)的汽车远程雷达(LRR)。 如[1]所示,这种雷达通常占用77 GHz附近的频带。
% 雷达系统会不断估算其所安装的车辆与前方车辆之间的距离,并在两者之间的距离过近时向驾驶员发出警报。
%
% <<FMCWExample_acc.png>>
%上图显示了ACC的示意图,还说明了使用FMCW技术进行距离测量的原理。 接收到的信号是发射信号的时延copy,
% 其中延迟 ,\Delta t,与距离有关。 因为信号总是在整个频带中扫描,所以在扫描期间的任何时刻,频率差$ f_b $是发射信号和接收信号之间的常数。
% f_b通常称为拍频(频差)。 由于the sweep是线性的,因此可以从拍频中得出时间延迟,然后将延迟转换为距离。
% 在ACC设置中,雷达需要监视的最大范围约为200 m,并且系统需要能够区分相距1米的两个目标。 根据这些要求,可以计算波形参数。
fc = 77e9;
c = 3e8;
lambda = c/fc;%波长
%%
%可以根据信号传播明确的最大范围所需的时间来计算扫描时间。
%通常,对于FMCW雷达系统,扫描时间至少应为往返时间的5至6倍。 本示例使用的系数为5.5。
range_max = 200;
tm = 5.5*range2time(range_max,c);%range2time:将传播距离转换为传播时间
%%
%可以根据距离分辨率确定扫描带宽,并使用扫描带宽和扫描时间来计算扫描斜率。
range_res = 1;
bw = range2bw(range_res,c);
sweep_slope = bw/tm; %斜率=带宽/扫描时间
%%
%由于FMCW信号通常会占用很大的带宽,因此将采样率盲目设置为带宽的两倍通常会增加A / D转换器硬件的压力。
%为了解决这个问题,通常可以选择较低的采样率。 这里可以考虑两件事:
% #对于复杂的采样信号,可以将采样率设置为与带宽相同。
% #FMCW雷达使用嵌入在去噪信号中的拍频(频差)估算目标距离。
%雷达需要检测的最大拍频是对应于最大距离和最大多普勒频率的拍频之和。 因此,采样率仅需为最大拍频(差频)的两倍。
% 在此示例中,对应于最大距离的拍频由下式给出:
fr_max = range2beat(range_max,sweep_slope,c);
%range2beat将范围转换为拍频
% FB = range2beat(R,SLOPE)转换范围R(以米为单位)将线性FMCW信号消解到其相应范围拍频FB(以Hz为单位)。 FB与R具有相同的尺寸。
%%
% 另外,旅行车的最高速度约为230 km / h。 因此,最大多普勒频移和最大拍频可以计算为
v_max = 230*1000/3600;
fd_max = speed2dop(2*v_max,lambda);%最大多普勒频移
fb_max = fr_max+fd_max; %最大拍频
% %
%此示例采用最大拍频和带宽两倍的采样率。
fs = max(2*fb_max,bw);
%%
% The following table summarizes the radar parameters.
%
% System parameters Value
% ----------------------------------
% Operating frequency (GHz) 77
% Maximum target range (m) 200
% Range resolution (m) 1
% Maximum target speed (km/h) 230
% Sweep time (microseconds) 7.33
% Sweep bandwidth (MHz) 150
% Maximum beat frequency (MHz) 27.30
% Sample rate (MHz) fs=150
% 下表总结了雷达参数。
%
% ? 系统参数 值
% ? ----------------------------------
% ? 工作频率(GHz) fc=77
% ? 最大目标距离(米) range_max=200
% ? 距离分辨率(m) 1
% ? 最高目标速度(km / h) v_max=230km/h=63.8889m/s
% ? 扫描时间(微秒) 7.33
% ? 扫描带宽(MHz) bw=150e6
% ? 最大拍频(MHz) fb_max=27.30e6
% ? 采样率(MHz) fs=150e6
%%
% 利用以上所有信息,您可以设置雷达系统中使用的FMCW波形。
hwav = phased.FMCWWaveform('SweepTime',tm,'SweepBandwidth',bw,...
'SampleRate',fs);
%%
%这是上扫线性FMCW信号,通常称为锯齿形。 可以检查所生成信号的时频图。
s = step(hwav);
figure;
subplot(211); plot(0:1/fs:tm-1/fs,real(s));
xlabel('Time (s)'); ylabel('Amplitude (v)');
title('FMCW signal'); axis tight;
subplot(212); spectrogram(s,32,16,32,fs,'yaxis');
title('FMCW signal spectrogram');
hold on;
%% Target Model目标模型
% ACC雷达的目标通常是前方的汽车。 本示例假定目标汽车在带雷达的情况下在x 轴以96 km / h的速度向前移动50 m。
% 根据图[1],可以根据雷达与目标汽车之间的距离来计算汽车的雷达横截面。
car_dist = 50;
car_speed = 96*1000/3600; %km/h转换成m/s
car_rcs = db2pow(min(10*log10(car_dist)+5,20));%分贝转功率
hcar = phased.RadarTarget('MeanRCS',car_rcs,'PropagationSpeed',c,...
'OperatingFrequency',fc);
hcarplatform = phased.Platform('InitialPosition',[car_dist;0;0],...
'Velocity',[car_speed;0;0]);
%%
% 假定传播模型为自由空间。
hchannel = phased.FreeSpace('PropagationSpeed',c,...
'OperatingFrequency',fc,'SampleRate',fs,'TwoWayPropagation',true);
%% Radar System Setup
% 雷达系统的其余部分包括发射器,接收器和天线。 本示例使用[1]中介绍的参数。
% 请注意,此示例仅对主要组件建模,并忽略了其他组件(如耦合器和混频器)的影响。
% 另外,为了简单起见,假设天线是各向同性的,并且天线的增益包括在发送器和接收器中。
ant_aperture = 6.06e-4; % in square meter平方米
ant_gain = aperture2gain(ant_aperture,lambda); % in dB
tx_ppower = db2pow(5)*1e-3; % in watts
tx_gain = 9+ant_gain; % in dB
rx_gain = 15+ant_gain; % in dB
rx_nf = 4.5; % in dB
htx = phased.Transmitter('PeakPower',tx_ppower,'Gain',tx_gain);
hrx = phased.ReceiverPreamp('Gain',rx_gain,'NoiseFigure',rx_nf,...
'SampleRate',fs);
%%
% 汽车雷达通常安装在车辆上,因此它们经常在运动中。
% 本示例假定雷达沿x轴以100 km / h的速度行进。 因此目标汽车以4 km / h的相对速度接近雷达。
radar_speed = 100*1000/3600;
hradarplatform = phased.Platform('Velocity',[radar_speed;0;0]);
%% 雷达信号仿真
%如前面各节所述,FMCW雷达通过检查去皮信号中的拍频来测量距离。
% 为了提取该频率,通过将接收信号与发送信号混合来执行去线性调频操作。
% 混合后,去噪的信号仅包含与目标范围相对应的单个频率分量。
%
% 另外,即使有可能从单次扫描中提取多普勒信息,但由于在一个脉冲内,多普勒频率与拍频是无法区分的,
% 因此经常会在几次扫描中提取多普勒频移。为了测量距离和多普勒,FMCW雷达通常执行以下操作:
%
% #波形发生器产生FMCW信号。
% #发射器和天线放大信号并将信号辐射到太空中。
% #信号传播到目标,被目标反射,然后传播回雷达。
% #接收天线收集信号。
% #将接收到的信号进行去去噪并保存在缓冲区中。
% #一旦一定数量的扫描填充缓冲区,就在范围和多普勒中执行傅立叶变换,以提取拍频和多普勒频移。
% 然后,可以使用这些结果来估计目标的范围和速度。距离和多普勒也可以显示为图像,并直观指示目标在范围和速度域中的位置。
%
% 下一节模拟了上面概述的过程。总共模拟了64次扫描,最后生成了距离多普勒响应。
% 在仿真过程中,使用频谱分析仪来显示每个接收到的扫描及其去噪后的对应光谱。
hspec = dsp.SpectrumAnalyzer('SampleRate',fs,...
'PlotAsTwoSidedSpectrum',true,...
'Title','Spectrum for received and dechirped signal',...
'ShowLegend',true);
%%
% 接下来,运行仿真循环。
Nsweep = 64;
xr = complex(zeros(hwav.SampleRate*hwav.SweepTime,Nsweep));
for m = 1:Nsweep
[radar_pos,radar_vel] = step(...
hradarplatform,hwav.SweepTime); % Radar moves during sweep扫描期间雷达移动
[tgt_pos,tgt_vel] = step(hcarplatform,...
hwav.SweepTime); % Car moves during sweep汽车在扫描期间移动
x = step(hwav); % Generate the FMCW signal产生FMCW信号
xt = step(htx,x); % Transmit the signal发射信号
xt = step(hchannel,xt,radar_pos,tgt_pos,...
radar_vel,tgt_vel); % Propagate the signal传播信号
xt = step(hcar,xt); % Reflect the signal反射信号
xt = step(hrx,xt); % Receive the signal接收信号
xd = dechirp(xt,x); % Dechirp the signal
step(hspec,[xt xd]); % Visualize the spectrum
xr(:,m) = xd; % Buffer the dechirped signal
end
%%
% 从频谱范围可以看出,虽然接收到的信号是宽带(信道1),横扫整个带宽,但the dechirped signal变成窄带(信道2)。
%% 距离和多普勒估计
% Before estimating the value of the range and Doppler, it may
- 1
- 2
前往页