到达估计与Beamscan,MVDR和音乐的方向

这个例子演示了使用波束扫描、MVDR和音乐来估计到达方向(DOA)。波束扫描是一种形成常规波束并扫描感兴趣方向以获得空间频谱的技术。最小方差无失真响应(MVDR)类似于波束扫描,但使用MVDR波束。多信号分类(MUSIC)是一种提供高分辨率DOA估计的子空间方法。对于这三种方法,输出空间谱的峰值表示接收信号的DOAs。在这个例子中,我们演示了使用波束扫描、MVDR和MUSIC来估计均匀线性阵列(ULA)的侧向角,以及使用均匀矩形阵列(URA)的方位角和仰角。

模拟ULA接收到的信号

首先,模型含有10个各向同性天线间隔0.5米隔开的均匀线性阵列(ULA)。

乌拉= phased.ULA('包含numElements'10'ElementSpacing',0.5);

假设两个窄带信号撞击在阵列上。第一信号从40°方位角和0°仰角到达,而第二信号从-20°方位角和到达0°仰角。该系统的工作频率为300兆赫。

ang1 = [40;0];%的第一个信号ANG2 = [-20;0];%的第二信号angs = [ang1 ang2];c = physconst (“光速”);FC = 300e6;% 工作频率拉姆达= C / FC;POS = getElementPosition(ULA)/λ;Nsamp = 1000;

此外,假定在每个天线的热噪声功率为0.01瓦。

nPower = 0.01;

生成由ULA收到的多通道信号。

RS = RNG(2007);信号= sensorsig(POS,Nsamp,angs,摇摇发电机);

Beamscan DOA估计有ULA

我们想利用接收到的信号来估计两个DOAs。因为信号是由一个围绕其轴对称的ULA接收的,所以我们不能同时获得方位角和仰角。相反,我们可以估计侧向角,这是由ULA的侧向测量得到的。这些角度之间的关系如下图所示:

两个入射方向对应的侧向角为:

broadsideAngle = az2broadside(angs(1,:),angs(2,:))
broadsideAngle = 40.0000 -20.0000

我们可以看到,这两个边角是相同的方位角。一般情况下,当仰角为0且方位角在[- 9090]范围内时,侧向角与方位角相同。在下面的代码中,我们只在它们不相等时执行转换。

所述beamscan算法扫描通过预定义扫描区域中的常规波束。在这里,我们设置扫描区域为[-90 90]覆盖所有180度。

spatialspectrum = phased.BeamscanEstimator('SensorArray'、齿龈...'工作频率',FC,'ScanAngles',-90:90);

默认情况下,beamscan估计只生产整个扫描区域空间谱。在DOAOutputPort属性设置为true,以获得DOA估计。在NumSignals属性设置为2,以找到顶级的两个峰的位置。

spatialspectrum。DOAOutputPort = true;spatialspectrum。NumSignals = 2;

现在我们得到的空间谱和波达方向。所估计的DOA显示正确的值,这是在40°和-20°。

[〜,ANG] = spatialspectrum(信号)
ANG = 40 -20

绘制波束扫描输出的空间频谱。

plotSpectrum (spatialspectrum);

提高分辨率利用MVDR以及MUSIC估计

常规的光束无法解析两个紧密间隔开的信号。当两个信号到达的方向从分离小于波束宽度,beamscan将无法估计的信号的方向。为了说明这一点限制,我们模拟从30两个接收信号°和方位角40°。

ANG1 = [30;0];ANG2 = [40;0];signal = sensorsig(pos,Nsamp,[ang1 ang2],nPower);[〜,ANG] = spatialspectrum(信号)
ANG = 35 71

结果从真正的方位角不同。让我们来看看输出频谱。

plotSpectrum (spatialspectrum);

输出空间谱只有一个主峰。因此,它不能解析这两个间隔很近的信号。当我们试图从beamscan输出的峰值估计DOA,我们得到不正确的估计。该beamscan对象返回两个最大峰值为估计的DOA无论峰是多么的不同。在这种情况下,返回beamscan在71小峰°作为第二估计。

要解决紧密间隔的信号,我们可以使用最小方差无失真响应(MVDR)算法或多信号分类(MUSIC)算法。首先,我们将研究MVDR估计,它的扫描光束MVDR在指定的区域。因为一个光束MVDR具有较小波束宽度,它具有较高的分辨率。

mvdrspatialspect = phased.MVDREstimator('SensorArray'、齿龈...'工作频率',FC,'ScanAngles'-90:90,...'DOAOutputPort',真的,'NumSignals',2);[〜,ANG] = mvdrspatialspect(信号)plotSpectrum(mvdrspatialspect);
ANG = 30 40

该MVDR算法正确地估计,是由beamscan无法解决的波达方向。更高的分辨率是有代价的。的MVDR是传感器位置误差更敏感。在传感器位置是不准确的情况下,MVDR能产生比beamscan更糟糕的空间谱。此外,如果我们进一步降低到比一个MVDR波束的波束宽度更小的二级信号方向的不同,该MVDR估计器也将失败。

音乐算法也可以用来解决这些间隔很近的信号。估计两个源的到达方向和MVDR的空间谱比较MUSIC的空间谱。

musicspatialspect = phased.MUSICEstimator ('SensorArray'、齿龈...'工作频率',FC,'ScanAngles'-90:90,...'DOAOutputPort',真的,'NumSignalsSource','属性','NumSignals',2);[〜,ANG] = musicspatialspect(信号)ymvdr = mvdrspatialspect(信号);ymusic = musicspatialspect(信号);helperPlotDOASpectra(mvdrspatialspect.ScanAngles,...musicspatialspect.ScanAngles,ymvdr,ymusic,'ULA')
ANG = 30 40

用音乐到达的方向是正确的,MUSIC提供甚至比MVDR空间分辨率。MUSIC,像MVDR,是传感器位置误差敏感。此外,源的数量必须是已知的或准确地估计。当指定的源的数量不正确,MVDR和Beamscan可以简单地从正确的空间谱返回微不足道峰。相反,当未正确指定的源的数目是音乐空间谱本身可能是不准确的。此外,MUSIC谱峰的幅度不能被解释为信源的功率。

对于ULA,额外的高分辨率算法可以进一步发挥ULA的特殊的几何形状。看到高分辨率的到达方向估计

转换宽边角度方位

虽然我们只能使用ULA估计侧向角,但如果我们知道它们的入射高度,我们可以将估计的侧向角转换为方位角。我们现在对来自35°仰角的两个信号进行建模,并估计它们相应的侧向角。

ang1 = [40;35);ang2 = [15;35);signal = sensorsig(pos,Nsamp,[ang1 ang2],nPower);[~ (ang) = mvdrspatialspect(信号)
ANG = 32 12

将所得的宽边角度是从任一方位角或仰角不同。我们可以宽边角度转换为方位角,如果我们知道的高度。

ang = broadside2az (ang, 35)
ANG = 40.3092 14.7033

波束扫描的DOA估计与一个市区重建局

接下来,我们示出了使用一个10乘5均匀的矩形阵列(URA)DOA估计。市建局可以估算方位角和仰角。元件间隔是每行之间0.3米,并且每列在0.5米。

URA = phased.URA('尺寸',[10 5],'ElementSpacing'[0.3 0.5]);

假设两个信号撞击在市建局。第一信号从40°方位角和45°仰角到达,而第二信号从-20°方位角和20°仰角到达。

ang1 = [40;45];%的第一个信号ANG2 = [-20;20];%的第二信号信号= sensorsig(getElementPosition(URA)/λ,Nsamp,...[ANG1 ANG2],摇摇发电机);RNG(RS);%恢复随机数发生器

创建一个2-d beamscan从URA估计对象。该目的使用相同的算法作为1 d的情况下,除了它扫描在两个方位角和仰角,而不是宽边角度。

扫描区域由属性“AzimuthScanAngles”和“ElevationScanAngles”指定。为了降低计算复杂性,我们假设某些先验对输入信号的方向的知识。我们限制方位角扫描区域为[-45 45]和仰角扫描区域为[10 60]。

azelspectrum = phased.BeamscanEstimator2D ('SensorArray'市建局,...'工作频率',FC,...'AzimuthScanAngles',-45:45,'ElevationScanAngles',10:60,...'DOAOutputPort',真的,'NumSignals',2);

的DOA输出是2×N矩阵,其中N是信号方向的数量。第一行包含方位角,而第二行包含仰角。

[〜,ANG] = azelspectrum(信号)
ang = 40 -20 45 20

绘制在方位角和仰角3-d光谱。

plotSpectrum(azelspectrum);

使用URA进行MVDR DOA估计

与ULA的情况类似,我们使用了MVDR算法的2d版本。由于我们对传感器位置的知识是完美的,我们期望MVDR光谱具有比波束扫描更好的分辨率。

mvdrazelspectrum = phased.MVDREstimator2D('SensorArray'市建局,...'工作频率',FC,...'AzimuthScanAngles',-45:45,'ElevationScanAngles',10:60,...'DOAOutputPort',真的,'NumSignals',2);[〜,ANG] = mvdrazelspectrum(信号)plotSpectrum(mvdrazelspectrum);
ANG = -20 40 20 45

MUSIC DOA估计与URA

我们也可以使用MUSIC算法来估计两个源的到达方向。

musicazelspectrum = phased.MUSICEstimator2D('SensorArray'市建局,...'工作频率',FC,...'AzimuthScanAngles',-45:45,'ElevationScanAngles',10:60,...'DOAOutputPort',真的,'NumSignalsSource','属性','NumSignals',2);[〜,ANG] = musicazelspectrum(信号)plotSpectrum(musicazelspectrum);
ANG = -20 40 20 45

为了比较MVDR以及MUSIC估计,让我们考虑位于更紧密在一起的来源。使用MVDR和MUSIC,计算的方位位于10°和俯仰3°分开的两个源的空间频谱。

ANG1 = [10;20];%的第一个信号ANG2 = [10;23];%的第二信号信号= sensorsig(getElementPosition(URA)/λ,Nsamp,...[ANG1 ANG2],摇摇发电机);[〜,angmvdr] = mvdrazelspectrum(信号)[〜,angmusic] = musicazelspectrum(信号)
angmvdr = 10 -27 22 21 angmusic = 10 10 23 20

在这种情况下,只有音乐正确地估计到抵达两个源的方向。要知道为什么,在10℃方位角绘制每个空间频谱的仰角切割。

ymvdr = mvdrazelspectrum(信号);ymusic = musicazelspectrum(信号);helperPlotDOASpectra(mvdrazelspectrum.ElevationScanAngles,...musicazelspectrum.ElevationScanAngles ymvdr (: 56), ymusic(:, 56岁),URA所言的)

由于音乐频谱具有比MVDR更好的空间分辨率,MUSIC正确识别来源,而MVDR没有这样做。

摘要

在本例中,我们展示了如何将波束扫描、MVDR和音乐技术应用于DOA估计问题。我们使用这两种技术来估计ULA接收信号的侧向角。在没有传感器位置误差的情况下,MVDR算法比波束扫描算法具有更好的分辨率。音乐的解析度甚至比MVDR还高,但来源的数量必须是已知的。我们还说明了如何转换之间的方位角和侧向角。接下来,我们使用波束扫描、MVDR和音乐来使用URA估计方位角和仰角。在所有这些情况下,我们绘制了输出空间频谱,再次发现音乐具有最佳的空间分辨率。Beamscan、MVDR和MUSIC是可以应用于任何类型阵列的技术,但是对于ULAs和URAs,还有其他可以进一步利用阵列几何形状的高分辨率技术。