主要内容

传统和自适应波束形成器

这个例子说明了如何将数字波束形成应用于天线阵列接收的窄带信号。介绍了三种波束形成算法:相移波束形成器(PhaseShift)、最小方差无失真响应(MVDR)波束形成器和线性约束最小方差(LCMV)波束形成器。

模拟接收信号

首先,我们定义传入信号。信号的基带表示是一个简单的矩形脉冲,定义如下:

t = 0:0.001:0.3;%时间,采样频率为1kHzs = 0(大小(t));s = s (:);%列向量中的信号S (201:205) = S (201:205) + 1;定义脉冲情节(t, s);标题(“脉搏”),包含(“时间(s)”); ylabel (“振幅(V)”);

图中包含一个轴对象。标题为Pulse的axis对象包含一个类型为line的对象。

对于这个例子,我们还假设信号的载波频率是100 MHz。

carrierFreq = 100 e6;波长= physconst (“光速”) / carrierFreq;

我们现在定义用于接收信号的均匀线性阵列(ULA)。该阵列包含10个各向同性天线。元件间距是入射波波长的一半。

齿龈=分阶段。齿龈(“NumElements”10“ElementSpacing”、波长/ 2);ula.Element.FrequencyRange = [90e5 110e6];

然后我们使用阵列对象的collectPlaneWave方法来模拟阵列接收到的信号。假设信号从方位角45度、仰角0度到达阵列;接收到的信号可以被建模为

inputAngle = [45;0);x = collectPlaneWave(齿龈,年代,inputAngle carrierFreq);

接收到的信号常常包含一些热噪声。噪声可以建模为复杂的高斯分布随机数。在本例中,我们假设噪声功率为0.5瓦,这相当于每个天线单元的信噪比(SNR)为3db。

创建并重置一个本地随机数生成器,因此结果为每次都一样。rs = RandStream.create (“mt19937ar”“种子”, 2008);noisePwr = 5;%噪声功率噪音=√noisePwr / 2) * (randn (rs、尺寸(x)) + 1我* randn (rs,大小(x)));

总回波是接收到的信号加上热噪声。

rxSignal = x +噪声;

总回波有十列,每列对应一个天线单元。下图显示了前两个通道信号的幅值图。

次要情节(211);情节(t, abs (rxSignal(: 1)));轴;标题(“1号天线的脉冲”),包含(“时间(s)”); ylabel (“(V)级”);次要情节(212);情节(t, abs (rxSignal(:, 2)));轴;标题(“2号天线的脉冲”),包含(“时间(s)”); ylabel (“(V)级”);

图中包含2个轴对象。标题为“天线1处的脉冲”的轴对象1包含一个类型为line的对象。标题为“天线2脉冲”的轴对象2包含一个类型为line的对象。

相移Beamformer

一个波束形成器可以被认为是一个空间滤波器,它可以抑制来自所有方向的信号,除了期望的方向。传统的波束形成器只是在每个天线上延迟接收信号,这样信号就会对齐,就好像它们同时到达所有天线一样。在窄带情况下,这相当于将每个天线接收到的信号乘以一个相位因子。为了定义指向信号传入方向的相移波束形成器,我们使用

psbeamformer =分阶段。PhaseShiftBeamformer (“SensorArray”、齿龈...“OperatingFrequency”carrierFreq,“方向”inputAngle,...“WeightsOutputPort”,真正的);

现在我们可以从波束形成器得到输出信号和加权系数。

[yCbf w] = psbeamformer (rxSignal);%绘制输出clf;情节(t, abs (yCbf));轴;标题(“移相波束形成器的输出”);包含(“时间(s)”); ylabel (“(V)级”);

图中包含一个轴对象。标题为“相移波束形成器输出”的轴对象包含一个类型为line的对象。

从图中我们可以看到信号比噪声变得更强。输出信噪比大约是单天线接收信号的10倍,因为10元阵列产生的阵列增益为10。

为了看到波束形成器的波束模式,我们绘制了沿0度仰角施加权重的阵列响应。由于该阵列是一个各向同性元素的ULA,因此在阵列的前后存在模糊性。因此,方位角只在-90到90度之间。

%绘制数组响应加权图模式(齿龈、carrierFreq 180:180 0“重量”w,“类型”“powerdb”...“PropagationSpeed”physconst (“光速”),“正常化”假的,...“CoordinateSystem”“矩形”);轴([-90 90 -60 0]);

图中包含一个轴对象。标题为方位角切割(仰角= 0.0°)的轴对象包含一个类型为line的对象。该对象表示100 MHz。

你可以看到波束形成器的主波束正指向预期的方向(45度)。

然后,我们利用波束形成器在干扰条件下增强接收信号。在强干扰情况下,目标信号可能被干扰信号掩盖。例如,来自附近无线电塔的干扰可以使该方向的天线阵失明。如果无线电信号足够强,它可以在多个方向上蒙蔽雷达,特别是当所需的信号被旁瓣接收时。这种情况对相移波束形成器来说是非常具有挑战性的,因此引入自适应波束形成器来解决这个问题。

干扰信号建模

我们模拟了两个来自30度和50度方位的干扰信号。干扰幅值远高于前一场景中所示的期望信号。

nSamp =长度(t);s1 = 10 * randn (rs nSamp 1);s2 = 10 * randn (rs nSamp 1);在30度和50度时的干扰%干涉= collect平面波(ula,[s1 s2],[30 50;0 0], carrierFreq);

为了说明干扰的影响,我们将把噪声降低到最低水平。对于剩下的例子,我们假设每个天线的高信噪比为50dB。我们将看到,即使几乎没有噪声,单是干扰就可以使相移波束形成器失效。

noisePwr = 0.00001;%噪声功率,50dB信噪比噪音=√noisePwr / 2) * (randn (rs、尺寸(x)) + 1我* randn (rs,大小(x)));rxInt =干扰+噪声;总干扰+噪声%rxSignal = x + rxInt;总接收信号%

首先,我们将尝试应用相移波束形成器沿传入方向检索信号。

yCbf = psbeamformer (rxSignal);情节(t, abs (yCbf));轴;标题(“有干扰的移相波束形成器的输出”);包含(“时间(s)”); ylabel (“(V)级”);

图中包含一个轴对象。标题为“存在干扰的相移波束形成器输出”的轴对象包含一个类型为线的对象。

从图中可以看出,由于干扰信号比目标信号强得多,我们无法提取信号内容。

MVDR Beamformer

为了克服干扰问题,我们可以使用MVDR波束形成器,一种流行的自适应波束形成器。MVDR波束形成器保留沿期望方向到达的信号,同时试图抑制来自其他方向的信号。在这种情况下,所需要的信号在方位角45度方向上。

定义MVDR波束形成器mvdrbeamformer =分阶段。MVDRBeamformer (“SensorArray”、齿龈...“方向”inputAngle,“OperatingFrequency”carrierFreq,...“WeightsOutputPort”,真正的);

当我们可以访问无目标数据时,我们可以通过设置TrainingInputPort属性为true来为MVDR波束形成器提供这些信息。

mvdrbeamformer。培训InputPort = true;

我们将MVDR波束形成器应用于接收信号。该图显示了MVDR波束形成器输出信号。你可以看到目标信号现在可以恢复了。

[yMVDR, wMVDR] = mvdrbeamformer(rxSignal,rxInt);情节(t, abs (yMVDR));轴;标题(有干扰的MVDR波束形成器输出);包含(“时间(s)”); ylabel (“(V)级”);

图中包含一个轴对象。标题为“MVDR Beamformer Output of MVDR Beamformer with Presence of Interference”的轴对象包含一个类型为line的对象。

观察波束形成器的响应模式,我们看到沿干涉方向(30度和50度)有两个深零。波束形成器沿目标方向45度的增益为0 dB。因此,MVDR波束形成器保留了目标信号,抑制了干扰信号。

模式(齿龈、carrierFreq 180:180 0“重量”wMVDR,“类型”“powerdb”...“PropagationSpeed”physconst (“光速”),“正常化”假的,...“CoordinateSystem”“矩形”);轴([-90 90 -80 20]);持有%比较相移模式(齿龈、carrierFreq 180:180 0“重量”w,...“PropagationSpeed”physconst (“光速”),“正常化”假的,...“类型”“powerdb”“CoordinateSystem”“矩形”);持有;传奇(“MVDR”移相的

图中包含一个轴对象。标题为方位角切割(仰角= 0.0°)的轴对象包含2个类型为line的对象。这些对象代表MVDR, phasesshift。

图中还显示了PhaseShift的响应模式。我们可以看到相移模式根本不能消除干扰。

MVDR中的自空问题

在许多情况下,我们可能无法将干扰从目标信号中分离出来,因此,MVDR波束形成器必须使用包含目标信号的数据来计算权值。在这种情况下,如果目标信号沿与期望信号略有不同的方向接收,MVDR波束形成器就会抑制它。这是因为MVDR波束形成器将所有的信号(除了沿着期望方向的信号)视为不希望的干扰。这种效果有时被称为“信号自空”。

为了说明这个自归零效应,我们定义了一个MVDR波束形成器,并将TrainingInputPort属性设置为false。

mvdrbeamformer_selfnull =分阶段。MVDRBeamformer (“SensorArray”、齿龈...“方向”inputAngle,“OperatingFrequency”carrierFreq,...“WeightsOutputPort”,真的,“TrainingInputPort”、假);

然后我们在输入信号方向和期望方向之间创建一个方向不匹配。

记住,信号是从45度方位角入射的。如果,有一些先验信息,我们期望信号从43度方位角到达,然后我们使用43度方位角作为MVDR波束形成器的期望方向。然而,由于真实的信号到达的方位是45度,在信号方向上有轻微的不匹配。

expDir = [43;0);mvdrbeamformer_selfnull。方向= expDir;

当我们将MVDR波束形成器应用于接收信号时,我们看到接收机无法区分目标信号和干扰。

[ySn, wSn] = mvdrbeamformer_selfnull(rxSignal);情节(t, abs (ySn));轴;标题(信号方向失配的MVDR波束形成器的输出);包含(“时间(s)”); ylabel (“(V)级”);

图中包含一个轴对象。标题为“MVDR波束形成器与信号方向不匹配的输出”的轴对象包含一个类型为line的对象。

当我们观察波束形成器响应模式时,我们看到MVDR波束形成器试图抑制沿45度方向到达的信号,因为它被视为干扰信号。MVDR波束形成器对信号导向矢量失配非常敏感,特别是在无法提供干扰信息的情况下。

模式(齿龈、carrierFreq 180:180 0“重量”基础上,“类型”“powerdb”...“PropagationSpeed”physconst (“光速”),“正常化”假的,...“CoordinateSystem”“矩形”);轴([-90 90 -40 25]);

图中包含一个轴对象。标题为方位角切割(仰角= 0.0°)的轴对象包含一个类型为line的对象。该对象表示100 MHz。

淋巴细胞脉络丛脑膜炎病毒Beamformer

为了防止信号自零,我们可以使用LCMV波束形成器,它允许我们沿着目标方向(方向矢量)放置多个约束。当目标信号到达与期望方向略有不同的角度时,它减少了目标信号被抑制的机会。首先,我们创建一个LCMV波束形成器:

lcmvbeamformer =分阶段。LCMVBeamformer (“WeightsOutputPort”,真正的);

现在我们需要创建几个约束条件。为了指定约束,我们在约束矩阵(constraint)和期望的响应向量(desireresponse)中放入相应的项。Constraint中的每一列都是一组我们可以应用到数组的权重,而desireresponse中相应的条目是我们希望在应用权重时得到的响应。例如,在这个例子中,为了避免self为空,我们可能想要添加以下约束到波束形成器:

  • 保留来自预期方向(43度方位角)的传入信号。

  • 为了避免自零,请确保波束形成器的响应不会在预期方向的+/- 2度处下降。

对于所有的约束,权值由引导数组向这些方向的引导向量给出:

steeringvec =分阶段。SteeringVector (“SensorArray”、齿龈);stv = steeringvec(carrierFreq,[43 41 45]);

三个方向的期望响应都应该是1。约束矩阵和期望响应为:

lcmvbeamformer。约束= stv;lcmvbeamformer。DesiredResponse = [1;1;1);

然后我们将波束形成器应用于接收信号。从下图可以看出,即使期望信号到达的方向与真实信号到达的方向不匹配,也可以再次检测到目标信号。

[yLCMV, wLCMV] = lcmvbeamformer (rxSignal);情节(t, abs (yLCMV));轴;标题(“信号方向不匹配的LCMV波束形成器输出”);包含(“时间(s)”); ylabel (“(V)级”);

图中包含一个轴对象。标题为“信号方向不匹配的LCMV波束形成器输出”的轴对象包含一个类型为line的对象。

LCMV响应模式表明,波束形成器沿指定方向施加约束,同时沿30度和50度消除干扰信号。这里我们只显示了方位角0到90度之间的模式,这样我们就可以更好地看到信号和干扰方向上的响应模式的行为。

模式(齿龈、carrierFreq 180:180 0“重量”wLCMV,“类型”“powerdb”...“PropagationSpeed”physconst (“光速”),“正常化”假的,...“CoordinateSystem”“矩形”);轴([0 90 -40 35]);持有%与MVDR比较模式(齿龈、carrierFreq 180:180 0“重量”基础上,...“PropagationSpeed”physconst (“光速”),“正常化”假的,...“类型”“powerdb”“CoordinateSystem”“矩形”);持有;传奇(淋巴细胞脉络丛脑膜炎病毒的“MVDR”);

图中包含一个轴对象。标题为方位角切割(仰角= 0.0°)的轴对象包含2个类型为line的对象。这些对象代表LCMV, MVDR。

当比较LCMV波束形成器和MVDR波束形成器的响应模式时,可以更好地看到约束的影响。注意LCMV波束形成器是如何在方位角45度附近保持一个平坦的响应区域的,而MVDR波束形成器则创建一个零。

二维阵列波束形成

在本节中,我们将说明使用统一矩形阵列(URA)的波束形成器。波束形成器可应用于市建局,其应用方法与市建局相同。在这个例子中,我们只演示了URA的MVDR波束形成器。其他算法的用法类似。

首先,我们定义市建局。市区重建局由10行5列各向同性天线单元组成。行与列之间的间距分别为0.4和0.5波长。

colSp = 0.5 *波长;rowSp = 0.4 *波长;ura所言=分阶段。(精“大小”10 [5],“ElementSpacing”, (rowSp colSp]);ura.Element.FrequencyRange = [90e5 110e6];

考虑与前面几节中使用的相同的源信号。信号源到达市区重建局的方位为45度,仰角为0度。接收到的信号,包括阵列上的噪声,可以建模为

x = collectPlaneWave (ura所言,年代,inputAngle carrierFreq);噪音=√noisePwr / 2) * (randn (rs、尺寸(x)) + 1我* randn (rs,大小(x)));

不同于ULA只能在方位角方向上区分角度,URA还可以在仰角方向上区分角度。因此,我们指定沿方向[30;10]和[50;-5]度分别到达的两个干扰信号。

s1 = 10 * randn (rs nSamp 1);s2 = 10 * randn (rs nSamp 1);%干扰在[30;10]和[50;5][s1 s2],[30 50;10 5], carrierFreq);rxInt =干扰+噪声;总干扰+噪声%rxSignal = x + rxInt;总接收信号%

我们现在创建一个指向目标信号方向的MVDR波束形成器。

mvdrbeamformer =分阶段。MVDRBeamformer (“SensorArray”ura所言,...“方向”inputAngle,“OperatingFrequency”carrierFreq,...“TrainingInputPort”,真的,“WeightsOutputPort”,真正的);

最后,我们将MVDR波束形成器应用于接收信号,并绘制其输出曲线。

[yURA呢,w] = mvdrbeamformer (rxSignal rxInt);情节(t, abs (yURA呢));轴;标题(“市建局MVDR波束形成器的输出”);包含(“时间(s)”); ylabel (“(V)级”);

图中包含一个轴对象。标题为“输出MVDR波束形成器的URA”的轴对象包含一个类型为line的对象。

为了清楚地看到波束形成器沿干涉方向放置零位,我们将分别沿仰角-5度和10度绘制阵列的波束形成器响应图。从图中可以看出,波束形成器抑制了沿[30 10]和[50 -5]方向的干扰信号。

次要情节(2,1,1);模式(ura所言,carrierFreq 180:180 5,“重量”w,“类型”“powerdb”...“PropagationSpeed”physconst (“光速”),“正常化”假的,...“CoordinateSystem”“矩形”);标题(“5度高度的响应模式”);轴([-90 90 -60 -5]);次要情节(2,1,2);模式(ura所言,carrierFreq 180:180 10,“重量”w,“类型”“powerdb”...“PropagationSpeed”physconst (“光速”),“正常化”假的,...“CoordinateSystem”“矩形”);标题(“10度仰角的响应模式”);轴([-90 90 -60 -5]);

图中包含2个轴对象。轴对象1标题响应模式在-5度仰角包含一个类型线对象。该对象表示100 MHz。轴对象2标题响应模式在10度仰角包含一个类型线对象。该对象表示100 MHz。

总结

在这个例子中,我们演示了如何使用一个波束形成器从一个特定的方向使用ULA或URA检索信号。波束形成器的选择取决于操作环境。与传统波束形成器相比,自适应波束形成器具有更好的抗干扰能力。当目标方向知识不准确时,LCMV波束形成器可防止信号自零。