天天看点

雷达系统仿真 ——End-2-End的雷达系统仿真End-2-End的雷达系统仿真

End-2-End的雷达系统仿真

本例说明如何将基本工具箱工作流程应用于以下情况:假定您有一个工作在 4 G H z 4GHz 4GHz的全向天线。 假设天线位于全局坐标系的原点。 最初位于 ( 7000 , 5000 , 0 ) (7000,5000,0) (7000,5000,0)处的目标具有 0.5 0.5 0.5平方米不变的雷达横截面。 目标以 ( − 15 ; − 10 ; 0 ) (-15;-10;0) (−15;−10;0)的恒定速度矢量移动。 您的天线以 5 k H z 5kHz 5kHz的脉冲重复频率(PRF)发射持续时间为 1 μ s 1μs 1μs的十个矩形脉冲。 脉冲传播到目标,从目标反射,传播回天线,并被天线收集。 天线以单基模式(monostatic mode)运行,仅在发射机不工作时才接收。

1 波形模型

phased.RectangularWaveform

来创建一个所需的波形:

waveform = phased.RectangularWaveform('PulseWidth',1e-6,...
    'PRF',5e3,'OutputFormat','Pulses','NumPulses',1);
           

创建了一个PW为 1 μ s 1\mu s 1μs,PRF为 5 K H z 5KHz 5KHz的矩形脉冲。

2 天线模型

phased.IsotropicAntennaElement

构建天线模型。设置天线的频段为 1 − 10 G H z 1-10GHz 1−10GHz,全向天线。

antenna = phased.IsotropicAntennaElement('FrequencyRange',[1e9 10e9]);
           

3 目标模型

phased.RadarTarget

来构建目标模型。目标RCS为 0.5 m 2 0.5m^2 0.5m2,照射到目标上的电磁波为 4 G H z 4GHz 4GHz,电磁波传输速率为光速。

target = phased.RadarTarget('Model','Nonfluctuating','MeanRCS',0.5,...
    'PropagationSpeed',physconst('LightSpeed'),'OperatingFrequency',4e9);
           

4 天线和目标的传输平台模型

phased.Platform

对天线和目标的坐标和移动进行建模。本例中,天线是固定位于坐标系原点。目标初始坐标为 ( 7000 , 5000 , 0 ) (7000,5000,0) (7000,5000,0),移动速度恒定,为 ( − 15 , − 10 , 0 ) (-15,-10,0) (−15,−10,0)。

%天线平台
antennaplatform = phased.Platform('InitialPosition',[0;0;0],'Velocity',[0;0;0]);
%目标平台
targetplatform = phased.Platform('InitialPosition',[7000; 5000; 0],...
    'Velocity',[-15;-10;0]);
           

rangeangle

函数来确定目标和天线之间的距离和角度:

[tgtrng,tgtang] = rangeangle(targetplatform.InitialPosition,...
    antennaplatform.InitialPosition);
           

5 发射机模型

phased.Transmitter

来设定发射机模型的各项参数。脉冲峰值功率是一个关键的参数。假定系统所需的发现概率为0.9,最大虚警概率为 1 0 − 6 10^{-6} 10−6。接收机对10个回波脉冲做非相关能量累积处理。用albersheim方程来确定所需的信噪比,然后可以确定所需峰值功率。

Pd = 0.9;
Pfa = 1e-6;
numpulses = 10;
SNR = albersheim(Pd,Pfa,10);
           

所需的信噪比大概为5dB。假设雷达对此目标的探测距离要达到15km,天线的增益为20dB。用

radareqpow

函数来计算所需要的脉冲峰值功率。

maxrange = 1.5e4;
lambda = physconst('LightSpeed')/4e9;
tau = waveform.PulseWidth;
Pt = radareqpow(lambda,maxrange,SNR,tau,'RCS',0.5,'Gain',20);
           

所需要的峰值功率大约为 45 k W 45kW 45kW。保险起见,用 50 k W 50kW 50kW峰值功率对发射机进行建模。保持波形的相位恒定,需要设置

CoherentOnTransmit

属性为 t r u e true true。此雷达为单基雷达,需要设置

InUseOutputPort

属性为 t r u e true true。

transmitter = phased.Transmitter('PeakPower',50e3,'Gain',20,'LossFactor',0,...
    'InUseOutputPort',true,'CoherentOnTransmit',true);
           

6 信号的发射和接收模型

phased.Radiator

对信号的发射进行建模。用

phased.Collector

对窄带信号的接收进行建模。用

phased.WidebandCollector

对宽带信号的接收进行建模。

本例中,信号为窄带信号。频率为4GHz。在

Sensor

属性中用上面已经设置过的天线进行设置。在

phased.Collector

对象中,设置

Wavefront

属性为 P l a n e Plane Plane,表示入射的回波为平面波(plane wave)。

radiator = phased.Radiator('Sensor',antenna,...
    'PropagationSpeed',physconst('LightSpeed'),'OperatingFrequency',4e9);
collector = phased.Collector('Sensor',antenna,...
    'PropagationSpeed',physconst('LightSpeed'),'Wavefront','Plane',...
    'OperatingFrequency',4e9);
           

7 接收机模型

phased.ReceiverPreamp

对接收机进行建模。要对接收机的噪声系数(noise figure)和参考温度(reference temperature)进行设置,这是导致系统内部噪声的关键参数。在此例中,将噪声系数设置为 2 d B 2dB 2dB,将参考温度设置为290 kelvin。将随机数生成器的seed设置成固定值,得到一个可重复的结果(reproducible results)。

receiver = phased.ReceiverPreamp('Gain',20,'NoiseFigure',2,...
    'ReferenceTemperature',290,'SampleRate',1e6,...
    'EnableInputPort',true,'SeedSource','Property','Seed',1e3);
           

8 传输模型

phased.FreeSpace

来对传输模型进行建模。可以通过对

TwoWayPropagation

属性进行设置表示单一路径(one-way)或是双路径(two-propagation)。本例中,这个属性设置为 f a l s e false false,表明为单一路径。

channel = phased.FreeSpace(...
    'PropagationSpeed',physconst('LightSpeed'),...
    'OperatingFrequency',4e9,'TwoWayPropagation',false,...
    'SampleRate',1e6);
           

9 基本雷达模型的实现

对以上模块都完成参数设置后,开始生成脉冲,向目标发射,接收目标回波。

以下代码为主仿真循环做准备。脉冲之间的时间步长:

T = 1/waveform.PRF;
% Get antenna position
txpos = antennaplatform.InitialPosition;
% Allocate array for received echoes
rxsig = zeros(waveform.SampleRate*T,numpulses);
           

以下代码完成主要的仿真循环:

for n = 1:numpulses
    % Update the target position
    [tgtpos,tgtvel] = targetplatform(T);
    % Get the range and angle to the target
    [tgtrng,tgtang] = rangeangle(tgtpos,txpos);
    % Generate the pulse
    sig = waveform();
    % Transmit the pulse. Output transmitter status
    [sig,txstatus] = transmitter(sig);
    % Radiate the pulse toward the target
    sig = radiator(sig,tgtang);
    % Propagate the pulse to the target in free space
    sig = channel(sig,txpos,tgtpos,[0;0;0],tgtvel);
    % Reflect the pulse off the target
    sig = target(sig);
    % Propagate the echo to the antenna in free space
    sig = channel(sig,tgtpos,txpos,tgtvel,[0;0;0]);
    % Collect the echo from the incident angle at the antenna
    sig = collector(sig,tgtang);
    % Receive the echo at the antenna when not transmitting
    rxsig(:,n) = receiver(sig,~txstatus);
end
           

可以看到,完成一次循环需要10个步骤:

  1. 更新目标的位置和速度;
  2. 获取当前目标的距离和角度;
  3. 生成脉冲;
  4. 脉冲过发射机;
  5. 将脉冲转换成电磁波向目标辐射出去;
  6. 脉冲在自由空间传输;
  7. 目标将脉冲反射;
  8. 回波脉冲在自由空间中传输;
  9. 将入射到天线的电磁波进行转换;
  10. 在发射机不工作的时候将信号接收,进行处理。

最后,将接收到的信号做非相关能量累计处理,绘制结果图。

%Pulse integration
rxsig = pulsint(rxsig,'noncoherent');
%时间轴变量
t = unigrid(0,1/receiver.SampleRate,T,'[)');
rangegates = (physconst('LightSpeed')*t)/2;
plot(rangegates/1e3,rxsig)
hold on
xlabel('range (km)')
ylabel('Power');
ylim = get(gca,'YLim');
plot([tgtrng/1e3,tgtrng/1e3],[0 ylim(2)],'r')
hold off
           
雷达系统仿真 ——End-2-End的雷达系统仿真End-2-End的雷达系统仿真

继续阅读