主要内容

使用均匀矩形阵列的电子扫描

此示例模拟相控阵雷达周期性扫描预定义的监视区域。该单基地雷达采用900单元矩形阵列。介绍了按规范推导雷达参数的步骤。对接收到的脉冲进行合成后,进行检测和距离估计。最后,利用多普勒估计得到各个目标的速度。

雷达的定义

首先我们创建一个相控阵雷达。我们重用了示例中构建的大多数子系统雷达接收机模拟测试信号.鼓励读者探索的细节雷达系统设计通过这个例子。一个主要的区别是我们使用了一个30 × 30的统一矩形阵列(URA)来代替原来的单一天线。

现有雷达设计满足以下规格要求。

pd = 0.9;%检测概率pfa = 1 e-6;%误报概率max_range = 5000;最大明确范围tgt_rcs = 1;所需目标雷达截面int_pulsenum = 10;要积分的脉冲数

加载雷达系统并检索系统参数。

负载BasicMonostaticRadarExampleData;fc = radiator.OperatingFrequency;%工作频率(Hz)v = radiator.PropagationSpeed;波传播速度(m/s)λ= v / fc;%波长(m)fs = waveform.SampleRate;%采样频率(Hz)脉冲重复频率= waveform.PRF;脉冲重复频率(Hz)

接下来,我们定义一个30 * 30的统一矩形数组。

ura所言=分阶段。(精“元素”、天线、...“大小”, 30 (30),“ElementSpacing”,(λ/ 2,λ/ 2));%配置天线元件,使它们只转发ura.Element.BackBaffled = true;%可视化响应模式。模式(ura所言,足球俱乐部,“PropagationSpeed”physconst (“光速”),...“类型”“powerdb”);

将阵列与散热器和收集器关联。

散热器。传感器= ura所言;收集器。传感器= ura所言;我们需要设置WeightsInputPort属性为true来启用它%接受发送波束形成权值散热器。WeightsInputPort = true;

现在我们需要重新计算发射功率。原始发射功率是基于单个天线计算的。对于一个有900个元件的阵列,每个元件所需的功率要小得多。

%计算数组增益arraygain =分阶段。ArrayGain (“SensorArray”ura所言,“PropagationSpeed”, v);ag) = arraygain (fc (0, 0));%计算峰值功率Snr_min = albersheim(pd, pfa, int_pulsenum);peak_power =((4 *π)^ 3 * noisepow (1 / waveform.PulseWidth) * max_range ^ 4 *...db2pow (snr_min)) / (db2pow (2 * (transmitter.Gain + ag)) * tgt_rcs *λ^ 2)
peak_power = 0.0065

新的峰值功率是0.0065瓦。

%设置发射机的峰值功率发射机。PeakPower = peak_power;

我们还需要设计相控阵的扫描时序。为了简化这个例子,我们只在方位角维度中进行搜索。我们要求雷达从方位45度到-45度进行搜索。重访时间应小于1秒,即雷达应在1秒内重访同一方位角。

initialAz = 45;endAz = -45;volumnAz = initialAz - endAz;

为了确定所需的扫描次数,我们需要知道阵列响应的波束宽度。我们使用经验公式来估计3db波束宽度。

G 4 π θ 2

在哪里 G 是阵列增益和 θ 为3-dB波束宽度。

%计算3-dB波束宽度θ= radtodeg(√4 *π/ db2pow (ag))))
θ= 6.7703

3-dB波束宽度为6.77度。为了在空间上允许一些光束重叠,我们选择扫描步长为6度。

scanstep = 6;scangrid = initialAz + scanstep / 2: scanstep: endAz;numscans =长度(scangrid);pulsenum = int_pulsenum * numscans;计算重访时间revisitTime = pulsenum /脉冲重复频率
revisitTime = 0.0050

由此产生的重访时间为0.005秒,远低于规定的1秒上限。

目标定义

我们要模拟两个非波动目标的脉冲返回,都在0度仰角。第一个目标正在接近雷达,而第二个目标正在远离雷达。

tgtpos = [[3532.63;800;0], [2020.66;0;0]];tgtvel = [[-100;50;0], [60;80;0]]; tgtmotion = phased.Platform(“InitialPosition”tgtpos,“速度”, tgtvel);TGTRCS = [1.6 2.2];=阶段性目标。RadarTarget (“MeanRCS”tgtrcs,“OperatingFrequency”、fc);计算目标的距离,角度和速度[tgtrng, tgtang] = rangeangle (tgtmotion。InitialPosition,...sensormotion.InitialPosition);numtargets =长度(target.MeanRCS);

脉冲合成

现在已经定义了所有子系统,我们可以继续模拟接收到的信号。总的模拟时间相当于通过监视区域的一次。由于反射信号是由阵列接收的,我们使用指向转向方向的波束形成器来获得组合信号。

%创建用于发送波束形成的转向矢量steeringvec =分阶段。SteeringVector (“SensorArray”ura所言,...“PropagationSpeed”, v);%创建接收波束形成器beamformer =分阶段。PhaseShiftBeamformer (“SensorArray”ura所言,...“OperatingFrequency”足球俱乐部,“PropagationSpeed”v,...“DirectionSource”输入端口的);为每个目标定义传播通道频道=分阶段。空闲空间(...“SampleRate”fs,...“TwoWayPropagation”,真的,...“OperatingFrequency”、fc);Fast_time_grid = unigrid(0,1 /fs, 1/prf,)“()”);%预分配数组以提高处理速度rxpulses = 0(元素个数(fast_time_grid) pulsenum);m = 1: pulsenum%更新传感器和目标位置[sensorpos, sensorvel] = sensormotion(1 /脉冲重复频率);[tgtpos, tgtvel] = tgtmotion(1 /脉冲重复频率);%计算传感器看到的目标角度[tgtrng, tgtang] = rangeangle (tgtpos sensorpos);计算当前扫描角度的转向矢量Scanid = floor((m-1)/int_pulsenum) + 1;sv = steeringvec (fc, scangrid (scanid));w =连词(sv);%形成该扫描角度的发射波束并模拟传播脉冲=波形();[txsig, txstatus] =发射机(脉冲);txsig =散热器(txsig tgtang w);txsig =通道(txsig sensorpos、tgtpos sensorvel, tgtvel);反射目标的脉冲tgtsig =目标(txsig);接收到的目标返回的波束rxsig =收集器(tgtsig tgtang);rxsig =接收机(rxsig ~ (txstatus > 0));rxpulses (:, m) = beamformer (rxsig, [scangrid (scanid); 0]);结束

匹配滤波器

为了处理接收到的信号,我们首先将其通过匹配滤波器,然后对每个扫描角度的所有脉冲进行积分。

%匹配滤波matchingcoeff = getMatchedFilter(波形);matchedfilter =分阶段。MatchedFilter (...“系数”matchingcoeff,...“GainOutputPort”,真正的);[mf_pulse, mfgain] = matchedfilter(rxpulse);[], mf_pulses =重塑(mf_pulses int_pulsenum, numscans);matchingdelay =大小(matchingcoeff, 1) 1;sz_mfpulses =大小(mf_pulses);mf_pulse = [mf_pulse (matchingdelay+1:end) zeros(1,matchingdelay)]; / /匹配延时mf_pulses =重塑(mf_pulses sz_mfpulses);%脉冲集成int_pulses = pulsint (mf_pulses,“非相干”);int_pulses =挤压(int_pulses);%可视化r = v * fast_time_grid / 2;X = r ' * cosd (scangrid);Y = r ' *信德(scangrid);clf;pcolor (X, Y, pow2db (abs (int_pulses)。^ 2));轴平等的阴影插值函数文本(-800 0“数组”);文本((max (r) + 10) * cosd (initialAz), (max (r) + 10) *信德(initialAz),...[num2str (initialAz)“阿^”]);文本((max (r) + 10) * cosd (endAz), (max (r) + 10) *信德(endAz),...[num2str (endAz)“阿^”]);文本((max (r) + 10) * cosd (0) (max (r) + 10) *信德(0)[num2str (0)“阿^”]);colorbar;

从扫描图上,我们可以清楚地看到两座山峰。近的在方位角0度左右,远的在方位角10度左右。

检测与距离估计

为了获得目标参数的准确估计,我们在扫描图上应用阈值检测。首先,我们需要通过对接收信号施加时变增益来补偿由于距离而造成的信号功率损失。

range_gates = v * fast_time_grid / 2;tvg =分阶段。TimeVaryingGain (...“RangeLoss”2 * fspl (range_gatesλ),...“ReferenceLoss”2 * fspl (max (range_gates),λ));tvg_pulses = tvg (mf_pulses);%脉冲集成int_pulses = pulsint (tvg_pulses,“非相干”);int_pulses =挤压(int_pulses);%计算检测阈值%采样率是设计系统噪声带宽的两倍noise_bw = receiver.SampleRate / 2;npower = noisepow (noise_bw...receiver.NoiseFigure receiver.ReferenceTemperature);npwgnthresh(pfa,int_pulsenum,“非相干”));%增加匹配滤波器处理增益的阈值Threshold = Threshold * db2pow(mfgain);

现在我们可视化检测过程。为了更好地表示数据,我们只绘制了50个以上的范围样本。

N = 51;clf;冲浪(X (N:,:), Y (N:最终,),...pow2db (abs (int_pulses (N:最终,))^ 2));持有;网格(X (N:,:), Y (N:最终,),...pow2db(阈值*的(大小(X (N:最终,)))),“FaceAlpha”, 0.8);视图(0,56);轴

在检测阈值上方有两个可见的峰值,对应于我们前面定义的两个目标。我们可以找到这些峰值的位置,并估计每个目标的距离和角度。

[~, peakInd] = findpeaks (int_pulses (:),“MinPeakHeight”返回值(阈值));[rngInd, angInd] = ind2sub(大小(int_pulses), peakInd);est_range = range_gates (rngInd);%估计范围est_angle = scangrid (angInd);%估计方向

多普勒估计

接下来,我们要估计每个目标的多普勒速度。关于多普勒估计的详细信息,请参考示例多普勒估计

m = numtargets:-1:1 [p, f] = periodogram(mf_pulse (rngInd(m),:,angInd(m)),[],256,prf,...“权力”“中心”);speed_vec = dop2speed (f,λ)/ 2;spectrum_data = p / max (p);[~, dop_detect1] = findpeaks (pow2db (spectrum_data),“MinPeakHeight”5);sp (m) = speed_vec (dop_detect1);估计多普勒速度结束

最后,我们估计了两个被检测目标的所有参数。下面是估计值和真实值的比较。

------------------------------------------------------------------------ (真正的)目标参数估计  ------------------------------------------------------------------------ 范围(m)方位角(度)速度(米/秒)目标1:3625.00(3622.08)12.00(12.76)86.01(86.49)目标2:2025.00 (2020.66)0.00 (0.00)-59.68 (-60.00)

总结

在这个例子中,我们展示了如何模拟相控阵雷达扫描预定义的监视区域。我们举例说明了如何设计扫描计划。采用常规波束形成器对接收到的多通道信号进行处理。从反射脉冲中提取每个目标的距离、角度和多普勒信息。这些信息可以用于进一步的任务,如高分辨率的到达方向估计,或目标跟踪。