主要内容

模拟雷达接收器的测试信号

这个例子展示了如何模拟单基地脉冲雷达的接收信号来估计目标距离。单基地雷达使发射机与接收机配置在一起。发射机产生一个击中目标的脉冲,并产生一个被接收机接收的回波。通过实时测量回波的位置,我们可以估计目标的距离。

这个例子集中在一个脉冲上雷达系统设计其中可以实现一套设计规范。它概述了将设计规范(如探测概率和距离分辨率)转换为雷达系统参数(如发射功率和脉冲宽度)的步骤。它还对环境和目标进行建模,以合成接收到的信号。最后,将信号处理技术应用于接收信号,检测目标的距离。

设计指标

此脉冲雷达系统的设计目标是在一定距离,识别有至少1平方米雷达散射截面(RCS)非变动目标5000米从雷达具有50米的范围内的分辨率。所期望的性能指标是0.9检测(PD)的下面1E-6的概率和假警报(PFA)的概率。由于相干检测需要相位信息,因此是更昂贵的计算,我们采用非相干检测方案。此外,本例假设一个自由的空间环境。

pd = 0.9;检测的概率%PFA = 1E-6;误报的%概率max_range = 5000;%最大明确范围Range_res = 50;%要求的范围内解决tgt_rcs = 1;%所需的目标雷达横截面

单体雷达系统设计

我们需要定义雷达系统的若干特性,例如波形,接收器,发射器和用于辐射和收集信号的天线。

波形

在此示例中选择矩形波形。所需的范围分辨率确定波形的带宽,在矩形波形的情况下,该波形确定脉冲宽度。

脉冲波形的另一个重要的参数是脉冲重复频率(PRF)。的PRF由最大非模糊距离来确定。

prop_speed = physconst (“光速”);%传播速度pulse_bw = prop_speed /(2 * Range_res);%的脉冲带宽pulse_width = 1 / pulse_bw;%脉冲宽度prf = prop_speed /(2 * max_range);脉冲重复频率FS = 2 * pulse_bw;% 采样率波形= phased.RectangularWaveform(......'pulsewidth',1 / pulse_bw,......'prf',prf,......'采样率',fs);

请注意,我们将采样率设置为带宽的两倍。

接收机噪声特征

我们假设接收器处存在的唯一噪声是热噪声,因此该模拟中没有涉及的杂波。热噪声的功率与接收器带宽有关。接收器的噪声带宽被设置为与波形的带宽相同。这通常是真实系统中的情况。我们还假设接收器具有20dB增益和0 dB噪声系数。

noise_bw = pulse_bw;接收机= phased.ReceiverPreamp(......'获得'20,......“噪声系数”0,......'采样率'fs,......“EnableInputPort”,真正的);

请注意,因为我们正在模拟单基地雷达,只有在发射机关闭后,接收机才能打开。因此,我们将EnableInputPort属性设置为true,以便同步信号可以从发送端传递到接收端。

发射机

发射机最关键的参数是发射功率峰值。所要求的峰值功率与许多因素有关,包括最大无模糊距离、接收机所要求的信噪比和波形的脉宽。其中,接收机所需的信噪比是由Pd和Pfa的设计目标以及接收机实现的检测方案决定的。

PD,PFA和SNR之间的关系可以最好地由接收器操作特性(ROC)曲线表示。我们可以生成PD是使用以下命令改变SNR的PFA的函数的曲线:

snr_db = [-INF,0,3,10,13];rocsnr(snr_db,“SignalType”'非流量泛组合');

ROC曲线表明,满足的Pfa = 1E-6和Pd = 0.9,的设计目标所接收的信号的SNR必须超过13分贝。这是一个相当高的要求,是不是很实用。为了使雷达系统更可行的,我们可以用一个脉冲集成技术,以减少所需的SNR。如果我们选择集成10个脉冲,曲线可以作为生成

num_pulse_int = 10;rocsnr([0 3 5],“SignalType”'非流量泛组合'......“NumPulses”, num_pulse_int);

我们可以看到所需的功率已经下降到5分贝左右。进一步降低信噪比可以通过对更多脉冲进行积分来实现,但由于目标的运动或环境的异质性,可供积分的脉冲数量通常有限。

上述方法从曲线中读出信噪比值,但通常只计算所需的值。对于非相干检测方案,理论上所需信噪比的计算相当复杂。幸运的是,有一些很好的近似可用,例如Albersheim方程。利用Albersheim方程,可得所需信噪比为

snr_min = albersheim(pd,pfa,num_pulse_int)
SNR_MIN = 4.9904.

一旦我们得到接收机所需的信噪比,就可以利用雷达方程计算发射机的峰值功率。这里我们假设发射机的增益为20db。

为了利用雷达方程计算峰值功率,我们还需要知道传播信号的波长,它与系统的工作频率有关。这里我们将工作频率设置为10ghz。

tx_gain = 20;FC = 10E9;lambda = prop_speed / fc;peak_power =((4 * pi)^ 3 * noispow(1 / pulse_width)* max_range ^ 4 *......DB2Pow(SNR_MIN))/(DB2POW(2 * TX_GAIN)* TGT_RCS * lambda ^ 2)
peak_power = 5.2265 e + 03

需要注意的是所产生的功率大约为5千瓦,这是非常合理的。相比之下,如果我们没有使用的脉冲集成技术,产生的峰值功率将是33千瓦,这是巨大的。

有了这些信息,我们就可以配置发射器了。

发射机=分阶段。发射机(......'获得',tx_gain,......“PeakPower”,峰值功率,......'InUseOutputPort',真正的);

同样,由于该示例模型模型单个雷达系统,因此InuseOUTPUTPORT设置为TRUE以输出发送器的状态。然后可以使用该状态信号来启用接收器。

散热器和收藏家

在雷达系统中,信号以电磁波的形式传播。因此,信号需要被辐射,并通过在雷达系统中使用的天线收集。这是散热器和集电极进入画面。

在单体雷达系统中,散热器和收集器共享相同的天线,因此我们将首先定义天线。为了简化设计,我们选择一个各向同性天线。请注意,天线需要能够在系统的工作频率(10GHz)上工作,因此我们将天线的频率范围设置为5-15 GHz。

我们假设天线是静止的。

天线=分阶段。IsotropicAntennaElement (......“FrequencyRange”[5E9 15e9]);SensorMotion = phased.platform(......“InitialPosition”, (0;0;0),......'速度', (0;0;0]);

根据天线和工作频率,我们定义了散热器和集电极。

散热器=分阶段。散热器(......“传感器”,天线,......“OperatingFrequency”、fc);收集器=分阶段。收集器(......“传感器”,天线,......“OperatingFrequency”、fc);

这样就完成了雷达系统的配置。在下面的章节中,我们将定义其他实体,如目标和所需要的仿真环境。然后,我们将模拟信号的回报和对模拟信号进行检测范围。

系统仿真

目标

为了测试我们的雷达探测目标的能力,我们必须首先定义目标。让我们假设有3个固定的,在太空无波动目标。它们的位置和雷达横截面如下。

TGTPOS = [[2024.66; 0; 0],[3518.63; 0; 0],[3845.04; 0; 0]];tgtvel = [[0; 0; 0],[0; 0; 0],[0; 0; 0]];tgtmotion = phased.platform(“InitialPosition”tgtpos,'速度', tgtvel);TGTRCS = [1.6 2.2 1.05];=阶段性目标。RadarTarget ('veslrcs'tgtrcs,“OperatingFrequency”、fc);

传播环境

为了模拟信号,我们还需要定义雷达系统和每个目标之间的传播信道。

channel = phased.freespace(......'采样率'fs,......“TwoWayPropagation”,真的,......“OperatingFrequency”、fc);

由于此示例使用单声道雷达系统,因此可以设置通道以模拟两种方式传播延迟。

信号合成

我们现在准备来模拟整个系统。

合成信号是一个数据矩阵,每一列有快时间(每个脉冲内的时间),每一行有慢时间(脉冲之间的时间)。为了使信号可视化,定义快时间网格和慢时间网格是有帮助的。

fast_time_grid = unigrid (0,1 / fs, 1 /脉冲重复频率,“()”);slow_time_grid =(0:num_pulse_int-1)/ PRF;

以下循环模拟的10个脉冲的接收信号。

我们在接收器中设置了产生噪声的种子,这样我们就可以重现相同的结果。

Receiver.seedsource =.“属性”;receiver.seed = 2007;%预先分配阵列,用于改进的处理速度rxpulses =零(numel(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));结尾

检测范围

检测阈值

检测器将信号功率与给定阈值进行比较。在雷达应用中,通常选择阈值使Pfa低于某一水平。在这种情况下,我们假设噪声是高斯白噪声,检测是非相干的。由于我们也使用10个脉冲进行脉冲积分,因此信号功率阈值为

npower公司= noisepow(noise_bw,receiver.NoiseFigure,......receiver.ReferenceTemperature);npwgnthresh(pfa,num_pulse_int,“非相干”));

我们与阈值绘制的前两个接收到的脉冲

num_pulse_plot = 2;Helperradarpulseplot(rxpuarses,阈值,......fast_time_grid、slow_time_grid num_pulse_plot);

这些数字中的阈值仅供展示之用。注意,第二个和第三个目标的返回比第一个目标的返回要弱得多,因为它们离雷达更远。因此,接收信号功率与距离有关,阈值对不同距离的目标不公平。

匹配滤波器

匹配滤波器提供这改善了检测阈值的处理增益。它与卷积发射波形的一个地方,时间反转,和共轭复制所接收的信号。因此,我们必须创造我们的匹配滤波器时指定发射波形。所接收的脉冲被首先通过匹配滤波器通过这样做脉冲积分,阈值检测等之前,以改善SNR

matchingcoeff = getMatchedFilter(波形);匹配过滤= phased.MatchedFilter(......'系数',匹配的可接定的东西,......'gainoutputport',真正的);[rx脉冲,mfgain] = matchedfilter(rx脉冲);

匹配过滤器引入了内在过滤器延迟,使得峰值的位置(最大SNR输出样本)不再与真正的目标位置对齐。为了补偿此延迟,在此示例中,我们将向前移动匹配过滤器的输出并在末端填充零。请注意,在实际系统中,因为持续收集数据,实际上没有结束。

matchingdelay =大小(matchingcoeff, 1) 1;rxpulses =缓冲区(rxpulses (matchingdelay + 1:结束),大小(rxpulses, 1));

然后通过匹配滤波器处理增益来增加阈值。

Threshold = Threshold * db2pow(mfgain);

下面的图显示了经过匹配滤波器后的两个相同的脉冲。

Helperradarpulseplot(rxpuarses,阈值,......fast_time_grid、slow_time_grid num_pulse_plot);

经过匹配滤波阶段后,信噪比得到改善。然而,由于接收到的信号功率依赖于距离,近目标的回波仍然比远目标的回波强得多。因此,如上图所示,来自近距离bin的噪声也有很大的机会超过阈值,使目标离得更远。为了保证阈值对探测范围内的所有目标都是公平的,我们可以使用时变增益来补偿接收回波的距离相关损失。

为了补偿距离相关的损耗,我们首先计算每个信号样本对应的距离门,然后计算每个距离门对应的自由空间路径损耗。一旦获得了该信息,我们对接收的脉冲施加一个时变增益,这样返回就好像来自相同的参考范围(最大可检测范围)。

range_gates = prop_speed * fast_time_grid / 2;tvg =分阶段。TimeVaryingGain (......“RangeLoss”2 * fspl (range_gatesλ),......'referenceloss',2 * fspl(max_range,lambda));rxpulses = tvg(rxpuarses);

现在让我们在归一化之后绘制相同的两个脉冲

Helperradarpulseplot(rxpuarses,阈值,......fast_time_grid、slow_time_grid num_pulse_plot);

时变增益运算结果在本底噪声的斜坡。但是,目标回报率现在是独立的范围。恒定阈值现在可以被用于检测在整个检测范围。

注意,在这个阶段,阈值高于每个脉冲所包含的最大功率水平。因此,在这个阶段还不能检测到任何东西。我们需要进行脉冲集成,以确保从目标返回的回波功率可以超过阈值,同时使噪声下限低于条形线。这是预期的,因为它是脉冲集成,允许我们使用低功率脉冲序列。

非相干积分

通过对接收脉冲进行非相干积分(视频积分)可以进一步提高信噪比。

rxpulses = pulsint (rxpulses,“非相干”);Helperradarpulseplot(rxpuarses,阈值,......fast_time_grid,slow_time_grid,1);

视频集成阶段结束后,数据就可以进入最后的检测阶段了。从图中可以看出,目标的三个回波都在阈值以上,因此可以检测到。

检测范围

最后,对积分脉冲进行阈值检测。该检测方案识别出峰值,然后将其位置转换为目标的范围。

[〜,range_detect] = findpeaks(rxpulses,'minpeakheight',SQRT(阈值));

真正的范围和目标的检测范围显示如下:

true_range = ROUND(tgtrng)range_estimates = ROUND(range_gates(range_detect))
True_range = 2025 3519 3845

请注意,这些范围估计只能准确到雷达系统可以实现的范围分辨率(50米)。

总结

在此示例中,我们设计了一种基于一组给定的性能目标的雷达系统。根据这些性能目标,计算了雷达系统的许多设计参数。该示例还显示了如何使用设计的雷达执行范围检测任务。在该示例中,雷达使用矩形波形。有兴趣的读者可以参考波形设计,以提高现有系统的性能范围有关使用Chirp波形的示例。