提高现有系统距离性能的波形设计
这个例子展示了波形类型如何影响雷达系统的探测性能。该示例考虑为现有的对象设置新性能目标的情况雷达系统设计.由于旧的设计不能再达到预期的性能,采用了一种新的波形。该示例还展示了如何对转弯目标建模,模拟返回,然后检测目标范围。
设计规格变化
设计了一种单脉冲雷达雷达接收机模拟测试信号实现以下目标:
最小目标雷达横截面(RCS): 1 nonfluctuating;
最大明确射程:5公里;
检测概率:0.9;
误报概率:1e-6。
负载BasicMonostaticRadarExampleData;
新的性能要求
在系统部署之后,出现了两个新的需求:
最大明确射程需要扩大到8公里。
该系统还需要能够检测转弯case 2目标。
可以修改现有的设计以实现新的性能目标吗?要回答这个问题,我们需要重新计算受这些新需求影响的参数。
第一个受影响的参数是脉冲重复频率(PRF)。它需要根据新的最大明确范围重新计算。
prop_speed = radiator.PropagationSpeed;max_range = 8000;脉冲重复频率= prop_speed / (2 * max_range);
与现有设计的30 kHz PRF相比,新的PRF为18.737 kHz,更小。因此脉冲间隔较长。注意,这是一个微不足道的变化在雷达软件和相当便宜的硬件成本。
波形。脉冲重复频率=脉冲重复频率;
接下来,由于目标是用Swerling case 2模型描述的,我们需要用Shnidman方程而不是Albersheim方程来计算实现指定Pd和Pfa所需的SNR。Shnidman方程假设非相干积分和平方定律检测器。要积分的脉冲数是10。
num_pulse_int = 10;pfa = 1 e-6;snr_min = shnidman(0.9、pfa num_pulse_int, 2)
snr_min = 6.1583
波形选择
如果我们在现有的设计中使用相同的矩形波形,脉冲宽度将保持不变,因为它由距离分辨率决定。然而,由于我们的最大射程从5公里增加到8公里,而且目标模型从无波动切换到转弯情况2,我们需要重新计算所需的峰值发射功率。
fc = radiator.OperatingFrequency;λ= prop_speed / fc;peak_power =((4 *π)^ 3 * noisepow (1 / waveform.PulseWidth) * max_range ^ 4 *...db2pow (snr_min)) / (db2pow (2 * transmitter.Gain) * 1 *λ^ 2)
peak_power = 4.4821 e + 04
峰值功率大约是之前要求的8倍。这不再是一个微不足道的修改,因为(1)现有雷达硬件的设计是产生峰值功率约5200 w的脉冲。尽管大多数设计将在所需功率之上留下一些余地,但现有系统不太可能容纳8倍以上的功率;(2)更换硬件来输出如此高的功率是非常昂贵的。因此,目前的设计需要修改,以适应新的目标,使用更复杂的信号处理技术。
线性调频波形
降低功率要求的一种方法是使用矩形波形以外的波形。例如,线性调频波形可以使用比矩形波形更长的脉冲。因此,所需的峰值发射功率下降。
让我们检查线性调频波形的配置细节。
所需的距离分辨率决定了波形带宽。对于线性调频波形,带宽等于其扫描带宽。然而,脉冲宽度不再局限于脉冲带宽的倒数,因此可以使用更长的脉冲宽度。我们使用20倍的脉冲宽度,并将采样率设置为脉冲带宽的两倍。
range_res = 50;pulse_bw = prop_speed / (2 * range_res);pulse_width = 20 / pulse_bw;fs = 2 * pulse_bw;波形=分阶段。LinearFMWaveform (...“SweepBandwidth”pulse_bw,...“脉冲宽度”pulse_width,...脉冲重复频率的脉冲重复频率,...“SampleRate”fs);
我们现在确定了实现设计要求所需的新发射功率。
peak_power =((4 *π)^ 3 * noisepow (1 / waveform.PulseWidth) * max_range ^ 4 *...db2pow (snr_min)) / (db2pow (2 * transmitter.Gain) * 1 *λ^ 2)
peak_power = 2.2411 e + 03
这种发射功率完全在我们现有雷达系统的能力范围内。我们实现了峰值发射功率,可以满足新的要求,而不需要修改现有的硬件。
发射机。PeakPower = peak_power;
系统仿真
现在我们已经定义了满足设计规范的雷达,我们设置了目标和环境来模拟整个系统。
目标
就像前面提到的例子一样,我们假设在一个自由空间环境中有3个目标。而现在目标模型为转弯情况2,则指定目标位置和平均雷达横截面为:
tgtpos = [[2024.66;0;0], [6518.63;0;0], [6845.04;0;0]];tgtvel = [(0, 0, 0), (0, 0, 0), [0, 0, 0]];tgtmotion =分阶段。平台(“InitialPosition”tgtpos,“速度”, tgtvel);TGTRCS = [2.2 1.1 1.05];fc = radiator.OperatingFrequency;=阶段性目标。RadarTarget (...“模型”,“Swerling2”,...“MeanRCS”tgtrcs,...“OperatingFrequency”、fc);
我们为在目标中生成rcs设置了种子,这样我们就可以复制相同的结果。
目标。SeedSource =“属性”;目标。种子= 2007;
传播环境
我们还建立了雷达与各个目标之间的传播通道。
频道=分阶段。空闲空间(...“SampleRate”波形。SampleRate,...“TwoWayPropagation”,真的,...“OperatingFrequency”、fc);
信号合成
我们在接收器中设置了噪声产生的种子,这样我们就可以重现相同的结果。
接收器。SeedSource =“属性”;接收器。种子= 2007;fast_time_grid = unigrid (0,1 / fs, 1 /脉冲重复频率,“()”);slow_time_grid = (0: num_pulse_int-1) /脉冲重复频率;rxpulses = 0(元素个数(fast_time_grid) num_pulse_int);%预先分配为m = 1: num_pulse_int更新传感器和目标位置[sensorpos, sensorvel] = sensormotion(1 /脉冲重复频率);[tgtpos, tgtvel] = tgtmotion(1 /脉冲重复频率);计算传感器所看到的目标角度[tgtrng, tgtang] = rangeangle (tgtpos sensorpos);模拟脉冲沿目标方向的传播脉冲=波形();[txsig, txstatus] =发射机(脉冲);txsig =散热器(txsig tgtang);txsig =通道(txsig sensorpos、tgtpos sensorvel, tgtvel);%反射目标的脉冲tgtsig =目标(txsig,真实);在传感器处接收目标返回rxsig =收集器(tgtsig tgtang);rxpulses (:, m) =接收机(rxsig ~ (txstatus > 0));结束
检测范围
检测阈值
利用噪声信息计算检测阈值,并考虑脉冲积分。注意,在加载的系统中,如上述示例所述,噪声带宽是采样速率的一半。我们将阈值与前两个脉冲画在一起。
noise_bw = receiver.SampleRate / 2;npower = noisepow (noise_bw...receiver.NoiseFigure receiver.ReferenceTemperature);阈值= npower * db2pow(npwgnthresh(pfa,num_pulse_int,“非相干”));pulseplotnum = 2;helperRadarPulsePlot (rxpulses阈值,...fast_time_grid、slow_time_grid pulseplotnum);
图中显示脉冲非常宽,这可能导致较差的距离分辨率。此外,第二和第三个目标完全被噪声掩盖了。
匹配滤波器
与矩形波形一样,接收到的脉冲首先通过匹配滤波器以提高信噪比。匹配的滤波器提供了进一步提高检测阈值的处理增益。此外,线性FM波形的匹配滤波器的额外好处是它在时域压缩波形,因此被过滤的脉冲变得更窄,这转化为更好的距离分辨率。
matchingcoeff = getMatchedFilter(波形);matchedfilter =分阶段。MatchedFilter (...“CoefficientsSource”,“属性”,...“系数”matchingcoeff,...“GainOutputPort”,真正的);[rx豆类,mfgain] = matchedfilter(rx豆类);阈值=阈值* db2pow(mfgain);
补偿匹配的滤波器延迟。
matchingdelay =大小(matchingcoeff, 1) 1;rxpulses =缓冲区(rxpulses (matchingdelay + 1:结束),大小(rxpulses, 1));
然后将时变增益应用到信号上,以便在整个可检测范围内使用恒定的阈值。
range_gates = prop_speed * fast_time_grid / 2;λ= prop_speed / fc;tvg =分阶段。TimeVaryingGain (...“RangeLoss”2 * fspl (range_gatesλ),...“ReferenceLoss”2 * fspl (max_rangeλ));rxpulses = tvg (rxpulses);
非相干积分
我们现在对接收脉冲进行非相干积分,以进一步提高信噪比。这个操作也被称为视频集成。
rxpulses = pulsint (rxpulses,“非相干”);helperRadarPulsePlot (rxpulses阈值,fast_time_grid slow_time_grid, 1);
视频整合完成后,数据就可以进入最后的检测阶段了。从上面的图表中,我们可以看到没有虚惊一场。
检测范围
最后,对积分脉冲进行阈值检测。该检测方案识别出峰值,然后将其位置转换为目标的范围。
[~, range_detect] = findpeaks (rxpulses,“MinPeakHeight”返回值(阈值));
真实范围和估计范围分别是
true_range =圆(tgtrng)
true_range =1×32025 6519 6845
range_estimates =圆(range_gates (range_detect))
range_estimates =1×32025 6525 6850
请注意,这些距离估计只能精确到雷达系统能够达到的距离分辨率,在本例中为50米。
总结
在本例中,我们使用啁啾波形进行距离检测。通过使用啁啾波形,我们能够降低所需的峰值发射功率,从而为转弯情况2目标实现8公里的更大探测范围。