Main Content

Create Physics-Based Radar Model from Statistical Model

This example shows how to programmatically create a physics-based radar model from a statistical radar model.

雷达是一种感知系统,它使用天线或天线阵列捕获RF能量,然后将其下调并处理以提供有关雷达视场中对象的信息。接收的信号需要通过信号处理子系统和数据处理子系统。

信号处理子系统的目标是将接收到的智商信号转换为目标检测。数据处理子系统采用这些检测,并产生与检测到的目标相对应的轨道。

The signal processing subsystem helps to generate a snapshot of the scene at the current time and includes information on whether an object is in the coverage and, if so, where it is. The data processing subsystem links those snapshots together so operators can understand what happened over time. This helps obtain Doppler information in addition to predictions of where targets are heading.

Radar engineers that simulate and model algorithms and systems need to work across a range of abstraction levels that span the signal and data processing domains. The level of abstraction depends on the phase of the radar development life cycle, the length of the scene being simulated, and the type of engineering work being performed.

在项目的早期阶段,设计贸易offs are being explored, modeling at the radar equation level may be adequate. As a project progresses, it will be necessary to increase the level of model fidelity, moving from a statistical level to signal level simulation. In addition, the length of a scenario can dictate which modeling abstraction level makes sense. For example, for longer scenario times (seconds, minutes, or longer), it may be better to generate statistical or probabilistic radar detections and tracks to cover a mission or to test tracking and sensor fusion algorithms. Alternatively, higher fidelity, physics-based simulations that include transmitted waveforms, signal propagation through the environment, reflections off targets, and received signals at a receive array are needed for events of interest or for when signal processing algorithms are being developed.

在此示例中,使用雷达和目标创建场景。首先,使用基于雷达方程的统计模型生成检测。接下来,由统计模型创建基于等效的物理雷达模型。然后,基于物理的雷达模型用于模拟智商信号并生成检测。该示例表明,来自两个模型的检测是一致的。

Define the Scene

To start, define a scenario with a fixed-location surveillance radar. The radar has three targets in its field of view. Plot the locations of the radar and targets.

% Create targetstgt1 = struct(...'PlatformID', 1,...'位置', [0 -50e3 -1e3],...'Velocity', [0 900*1e3/3600 0]); tgt2 = struct(...'PlatformID', 2,...'位置', [20e3 0 -500],...'Velocity', [700*1e3/3600 0 0]); tgt3 = struct(...'PlatformID', 3,...'位置', [-20e3 0 -500],...'Velocity', [300*1e3/3600 0 0]); tp = theaterPlot('XLim',[-30e3 30e3],'YLim',[-60e3 10e3],'ZLim',[-10e3 1e3]); gtplot = platformPlotter(tp,'DisplayName','Target Ground Truth',...'Marker','^',“标记”,8,'MarkerFaceColor','r');plotPlatform(gtplot,[tgt1.Position;tgt2.Position;tgt3.Position],...[tgt1.Velocity;tgt2.Velocity;tgt3.Velocity],{'Target1','Target2','Target3'});

图包含一个坐标轴对象。坐标轴对象有限公司ntains 4 objects of type line, text. This object represents Target Ground Truth.

Define Radar for Detection Generation

Next, define an airport surveillance radar that generates detections from a statistical model. The airport surveillance radar is installed 15 meters above the ground. The radar sensor definition includes the key radar parameters such as the scanning type and field of view information.

radarDataGeneratorgenerates detections statistically based on the radar equation.

rpm = 12.5; fov = [1.4;5];% [azimuth; elevation]scanrate = rpm*360/60;% deg/supdaterate = scanrate/fov(1);% Hzsensor = radarDataGenerator(1,'Rotator',...“检测通用性”, 0.99,...“更新”, updaterate,...'MountingLocation', [0 0 -15],...'MaxAzimuthScanRate', scanrate,...“ fieldofview', fov,...'AzimuthResolution', fov(1)); radarPosition = [0 0 0]; radarVelocity = [0 0 0]; radarplot = platformPlotter(tp,'DisplayName','Radar',...'Marker','s',“标记”,8,'MarkerFaceColor','b');plotplatform(雷达,雷达,雷达速度,{'Radar'})

图包含一个坐标轴对象。坐标轴对象有限公司ntains 6 objects of type line, text. These objects represent Target Ground Truth, Radar.

Generate Statistical Radar Detection

Generate detections from a full scan of the radar and plot the detections in the scene.

%从雷达的完整扫描中产生检测simTime = 0; detBuffer = {}; rng(2020);whiletrue [dets, numDets, config] = sensor([tgt1 tgt2 tgt3], simTime); detBuffer = [detBuffer;dets];%#ok% Is full scan complete?ifconfig.IsScanDonebreak% yesendsimTime = simTime+1/sensor.UpdateRate;endstadetpos = zeros(numel(detBuffer),3);form = 1:numel(detBuffer) stadetpos(m,:) = detBuffer{m}.Measurement.';endstadet = detectionPlotter(tp,'DisplayName','Statistical Detection',...'Marker','d',“标记”,6,'MarkerFaceColor','g');plotDetection(stadet,stadetpos)

图包含一个坐标轴对象。坐标轴对象有限公司ntains 7 objects of type line, text. These objects represent Target Ground Truth, Radar, Statistical Detection.

The plot shows that the generated detections match the ground truth target locations. The three targets all indicated by a truth marker have a detection that is shown as an overlay on the truth marker.

Define Radar for IQ Signal Generation and Processing

由于统计模拟令人满意,因此您现在可以执行IQ信号模拟,以验证信号处理算法是否正常工作。创建一个雷达收发器,该收发器根据前面配置的统计传感器产生智商信号。

Sensor_iq= radarTransceiver(sensor)
Sensor_iq= radarTransceiver with properties: Waveform: [1x1 phased.RectangularWaveform] Transmitter: [1x1 phased.Transmitter] TransmitAntenna: [1x1 phased.Radiator] ReceiveAntenna: [1x1 phased.Collector] Receiver: [1x1 phased.ReceiverPreamp] MechanicalScanMode: 'Circular' InitialMechanicalScanAngle: -0.1000 MechanicalScanRate: 75 ElectronicScanMode: 'None' MountingLocation: [0 0 -15] MountingAngles: [0 0 0] NumRepetitionsSource: 'Property' NumRepetitions: 1

请注意,配置Sensor_iqvariable is closer to a physical system.Sensor_iqproduces IQ signals that you can then process. For this example, implement a simple threshold detector to generate detections.

% configure signal processing componentcoeff = getMatchedFilter(sensor_iq.Waveform); mf = phased.MatchedFilter('Coefficients',coeff,'GainOutputPort',true); npower = noisepow(1/sensor_iq.Waveform.PulseWidth,...Sensor_iq.Receiver.NoiseFigure,sensor_iq.Receiver.ReferenceTemperature); threshold = npower * db2pow(npwgnthresh(sensor.FalseAlarmRate)); fs = sensor_iq.Waveform.SampleRate; prf = sensor_iq.Waveform.PRF; c = physconst('lightspeed');fc = sensor_iq.TransmitAntenna.OperatingFrequency; lambda = c/fc; Nsamp = round(fs/prf); rgates = (0:Nsamp-1)/fs*c/2; tvg = phased.TimeVaryingGain(...'RangeLoss',2*fspl(rgates,lambda),...'ReferenceLoss',2*fspl(Nsamp/fs*c/2,lambda));

IQ Signal and Processing Simulation

Next, perform IQ simulation and check if the processing algorithm yields a result similar to that of the statistical sensor. Notice that the simulation loop that generates the IQ signal is almost identical to the loop that generates the statistical detection. The loop also shows how to process the IQ signal to get the detection.

simTime = 0; detBuffer_iq = {};whiletrue [sig, config] = sensor_iq([tgt1 tgt2 tgt3], simTime);ifconfig.IsScanDonebreakend% Processing[sigp,Gmf] = mf(sig); sigp = tvg(sigp); th = sqrt(threshold*db2pow(Gmf)); ind = abs(sigp)>th;ifany(ind) [~,idx] = max(abs(sigp)); rng_est = rgates(idx); meas_sensor = [0;0;rng_est]; meas_body = local2globalcoord(meas_sensor,'sr',...config.OriginPosition,config.Orientation); dets_iq = struct('Time',simTime,'Measurement',meas_body); detBuffer_iq = [detBuffer_iq;dets_iq];%#okendsimTime = simTime+1/updaterate;endiqdetpos = zeros(numel(detBuffer_iq),3);form = 1:numel(detBuffer_iq) iqdetpos(m,:) = detBuffer_iq{m}.Measurement.';endiqdet = detectionPlotter(tp,'DisplayName','IQ Detection',...'Marker','o',“标记”,10,'MarkerEdgeColor','k');plotDetection(iqdet,iqdetpos)

图包含一个坐标轴对象。坐标轴对象有限公司ntains 8 objects of type line, text. These objects represent Target Ground Truth, Radar, Statistical Detection, IQ Detection.

The plot clearly indicates that the result obtained from IQ signal generation is similar to the result generated from the statistical model.

概括

In this example, a statistical model is used to generate radar detections based on the radar equation. Then a physics-based radar model is programmatically created from the statistical model, and a new set of detections are derived from the IQ signal generated from this physics-based radar model. The detections from both models match the ground truth well. This workflow is a very convenient way to get a signal level model up and running quickly. Once the basic signal model is in place, it can be extended as the project dictates.