主要内容

使用波束扫描、MVDR和MUSIC进行到达方向估计

本例演示了如何使用波束扫描、MVDR和MUSIC进行到达方向(DOA)估计。波束扫描是一种形成常规波束并在感兴趣的方向上扫描以获得空间频谱的技术。最小方差无失真响应(MVDR)与波束扫描类似,但使用MVDR波束。多信号分类(MUSIC)是一种提供高分辨率DOA估计的子空间方法。对于这三种方法,输出空间频谱的峰值表示接收信号的doa。在本例中,我们演示了如何使用波束扫描、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估计

我们想用接收到的信号估计两个doa。因为信号是由一个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;

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

[~,ang] = spatialspectrum(signal)
Ang = 40 -20

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

plotSpectrum (spatialspectrum);

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

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

Ang1 = [30;0);Ang2 = [40;0);signal = sensorsig(pos,Nsamp,[ang1 ang2],nPower);[~,ang] = spatialspectrum(signal)
安= 35 71

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

plotSpectrum (spatialspectrum);

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

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

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

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

MUSIC算法也可以用于解析这些紧密间隔的信号。估计两个源的到达方向,并将MVDR的空间频谱与MUSIC的空间频谱进行比较。

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

使用MUSIC的到达方向是正确的,MUSIC提供了比MVDR更好的空间分辨率。与MVDR一样,MUSIC对传感器位置误差很敏感。此外,来源的数量必须知道或准确估计。当指定的光源数量不正确时,MVDR和Beamscan可能只是从正确的空间光谱中返回不重要的峰值。相反,当没有正确指定源的数量时,MUSIC空间频谱本身可能是不准确的。另外,MUSIC谱峰的振幅不能解释为源的功率。

对于ULA,附加的高分辨率算法可以进一步利用ULA的特殊几何结构。看到高分辨率到达方向估计

将侧面角度转换为方位角

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

Ang1 = [40;35);Ang2 = [15;35);signal = sensorsig(pos,Nsamp,[ang1 ang2],nPower);[~,ang] = mvdrspatialspect(signal)
Ang = 32 12

得到的舷侧角不同于方位角或仰角。如果我们知道仰角,我们可以把舷角转换成方位角。

Ang = broadside2az(Ang,35)
Ang = 40.3092 14.7033

波束扫描DOA估计与URA

接下来,我们演示了使用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创建一个2-D光束扫描估计器对象。该对象使用与1-D情况相同的算法,除了它同时扫描方位角和仰角,而不是侧角。

扫描区域由属性'AzimuthScanAngles'和'ElevationScanAngles'指定。为了降低计算复杂度,我们假设了一些输入信号方向的先验知识。我们将方位角扫描区域限制为[-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);

MVDR DOA估计与URA

与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

音乐DOA估计与URA

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

Musicazelspectrum =分阶段的。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(signal) [~,angmusic] = musicazelspectrum(signal)
Angmvdr = 10 -27 22 21 angmusic = 10 10 23 20

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

Ymvdr = mvdrazelspectrum(信号);Ymusic =音乐频谱(信号);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具有最佳的空间分辨率。Beamscan、MVDR和MUSIC技术可以应用于任何类型的阵列,但对于ula和ura,还有额外的高分辨率技术可以进一步利用阵列几何结构。