主要内容

基于波束扫描、MVDR和MUSIC的到达方向估计

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

ULA接收信号建模

首先,建模一个均匀线性阵列(ULA),包含10个各向同性天线,间隔0.5米。

Ula =阶段性的。齿龈(“NumElements”10“ElementSpacing”, 0.5);

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

Ang1 = [40;0);第一个信号Ang2 = [-20;0);秒信号Angs = [ang1 ang2];C = physconst(“光速”);Fc = 300e6;%工作频率Lambda = c/fc;pos = getElementPosition(ula)/lambda;Nsamp = 1000;

另外,假设每个天线的热噪声功率为0.01瓦。

nPower = 0.01;

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

Rs = rng(2007);signal = sensorsig(pos,Nsamp,angs,nPower);

带ULA的波束扫描DOA估计

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

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

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

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

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

空间谱=阶段性。BeamscanEstimator (“SensorArray”、齿龈...“OperatingFrequency”足球俱乐部,“ScanAngles”, 90:90);

默认情况下,波束扫描估计器只产生跨扫描区域的空间频谱。将DOAOutputPort属性设置为true以获得DOA估计。将NumSignals属性设置为2,以查找顶部两个峰值的位置。

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

我们现在得到了空间谱和DOAs。估计DOAs显示了正确的值,即40°和-20°。

[~,ang] =空间谱(信号)
Ang = 40 -20

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

plotSpectrum (spatialspectrum);

使用MVDR和MUSIC估计器提高分辨率

传统的波束不能分辨两个间隔很近的信号。当两个信号从距离小于波束宽度的方向到达时,波束扫描将无法估计信号的方向。为了说明这一限制,我们模拟了方位角为30°和40°的两个接收信号。

Ang1 = [30;0);Ang2 = [40;0);signal = sensorsig(pos,Nsamp,[ang1 ang2],nPower);[~,ang] =空间谱(信号)
Ang = 35 71

结果与真实的方位角不同。让我们看一下输出光谱。

plotSpectrum (spatialspectrum);

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

对于处理间隔较近的信号,可以采用最小方差无失真响应(MVDR)算法或多信号分类(MUSIC)算法。首先,我们将检查MVDR估计器,它扫描指定区域上的MVDR光束。由于MVDR波束具有较小的波束宽度,因此具有较高的分辨率。

Mvdrspatialspect =阶段性的。MVDREstimator (“SensorArray”、齿龈...“OperatingFrequency”足球俱乐部,“ScanAngles”90:90,...“DOAOutputPort”,真的,“NumSignals”2);[~,ang] = mvdrspatialspect(信号)plotSpectrum(mvdrspatialspect);
Ang = 30 40

MVDR算法正确估计了波束扫描无法解析的doa。分辨率的提高是有代价的。MVDR对传感器位置误差更加敏感。在传感器位置不准确的情况下,MVDR可能产生比波束扫描更差的空间光谱。此外,如果我们进一步缩小两个信号方向的差值到小于MVDR波束宽度的水平,MVDR估计器也将失败。

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

音乐空间=阶段性的。MUSICEstimator (“SensorArray”、齿龈...“OperatingFrequency”足球俱乐部,“ScanAngles”90:90,...“DOAOutputPort”,真的,“NumSignalsSource”“属性”“NumSignals”2);[~,ang] = musicspatialspect(signal) ymvdr = mvdrspatialspect(signal);Ymusic = musicspatialspect(信号);helperPlotDOASpectra (mvdrspatialspect。ScanAngles,...musicspatialspect。ScanAngles,ymvdr,ymusic,“乌拉”
Ang = 30 40

使用MUSIC到达的方向是正确的,而且MUSIC提供了比MVDR更好的空间分辨率。MUSIC和MVDR一样,对传感器位置误差很敏感。此外,必须知道或准确估计来源的数目。当指定的源数量不正确时,MVDR和Beamscan可能只是从正确的空间谱中返回不重要的峰值。相反,如果没有正确指定源的数量,MUSIC空间谱本身可能是不准确的。另外,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 =阶段性的。(精“大小”10 [5],“ElementSpacing”[0.3 - 0.5]);

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

Ang1 = [40;45];第一个信号Ang2 = [-20;20);秒信号signal = sensorsig(getElementPosition(ura)/lambda,Nsamp...[ang1 ang2),英国能源再生公司);rng (rs);恢复随机数生成器

从URA创建一个二维波束扫描估计器对象。该对象使用与1-D情况相同的算法,只是它扫描方位角和仰角,而不是舷侧角。

扫描区域由属性“方位角扫描角度”和“仰角扫描角度”指定。为了减少计算的复杂性,我们假设了一些先验知识的传入信号的方向。我们将方位角扫描区域限制为[-45 45],将高程扫描区域限制为[10 60]。

Azelspectrum =阶段性。BeamscanEstimator2D (“SensorArray”ura所言,...“OperatingFrequency”足球俱乐部,...“AzimuthScanAngles”45:45,“ElevationScanAngles”10:60,...“DOAOutputPort”,真的,“NumSignals”2);

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

[~,ang] = azelspectrum(信号)
Ang = 40 -20 45 20

绘制方位和仰角的三维光谱图。

plotSpectrum (azelspectrum);

基于URA的MVDR DOA估计

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

Mvdrazelspectrum =相控的。MVDREstimator2D (“SensorArray”ura所言,...“OperatingFrequency”足球俱乐部,...“AzimuthScanAngles”45:45,“ElevationScanAngles”10:60,...“DOAOutputPort”,真的,“NumSignals”2);[~,ang] = mvdrazelspectrum(信号)plotSpectrum(mvdrazelspectrum);
Ang = -20 40 20 45

用URA估计MUSIC DOA

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

音乐频谱=阶段性的。MUSICEstimator2D (“SensorArray”ura所言,...“OperatingFrequency”足球俱乐部,...“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);秒信号signal = sensorsig(getElementPosition(ura)/lambda,Nsamp...[ang1 ang2),英国能源再生公司);[~,angmvdr] = mvdrazelspectrum(信号)[~,angmusic] = musicazelspectrum(信号)
Angmvdr = 10 -27 22 21 angmusic = 10 10 23 20

在这种情况下,只有MUSIC能正确估计两个源的到达方向。要了解原因,绘制每个空间谱在10°方位角的高程切面。

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

由于MUSIC谱比MVDR谱具有更好的空间分辨率,MUSIC能正确识别源,而MVDR不能。

总结

在这个例子中,我们展示了如何将波束扫描、MVDR和MUSIC技术应用于DOA估计问题。我们使用这两种技术来估计由ULA接收的信号的侧面角度。在不存在传感器位置误差的情况下,MVDR算法比波束扫描算法具有更好的分辨率。MUSIC的分辨率比MVDR更好,但必须知道源的数量。我们还说明了如何在方位角和舷侧角之间转换。接下来,我们应用波束扫描、MVDR和MUSIC来估计使用URA的方位角和仰角。在所有这些情况下,我们绘制了输出的空间光谱,再次发现MUSIC具有最好的空间分辨率。波束扫描、MVDR和MUSIC技术可以应用于任何类型的阵列,但对于ula和ura,还有其他的高分辨率技术可以进一步利用阵列几何结构。