天天看點

雷達系統仿真 ——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的雷達系統仿真

繼續閱讀