主要内容

高分辨率的到达方向估计

该示例说明了几种高分辨率的到达方向(DOA)估计技术。它引入了音乐,root-Music,ESPRIT和root-WSF算法的变体,并在由均匀线性阵列(ULA)天线接收的远场中的窄带信号源中的各自的优点。

建模接收的阵列信号

定义由10个各向同性天线组成的均匀线性阵列。阵列单元间距为0.5米。

N = 10;齿龈=分阶段。齿龈(“NumElements”N'ElementsPacing',0.5)
齿龈=分阶段。ULA的属性:元素:[1x1 phase .]IsotropicAntennaElement] NumElements: 10 ElementSpacing: 0.5000 ArrayAxis: 'y'锥度:1

模拟两个事件信号的阵列输出。两个信号都是从90°方位角入射的。仰角分别为73°和68°。在本例中,我们假设这两个方向是未知的,需要估计。模拟从300mhz的工作频率中解调的阵列接收的基带信号。

FC = 300E6;% 运行频率fs = 8192;%采样频率λ= physconst ('LightSpeed') / fc;%的波长pos = getElementPosition (ula)”/λ;元素在波长中的位置ang1 = (90; 73);ang2 = (90; 68);信号的%方向Angs = [ang1 ang2];Nsamp = 1024;%快照数量noisepwr = 0.01;%噪声功率Rs = RNG(2012);%设置随机数生成器信号= SensorSig(POS,NSAMP,Angs,Noisepwr);

由于ULA是围绕其轴线对称的,DOA算法不能唯一确定方位角和仰角。因此,这些高分辨率的DOA估计器所返回的结果是以宽侧角的形式存在的。下面的图中可以找到宽边角的图解。

计算两个入射角对应的侧面角。

ang_true = az2broadside (ang(: 1)和(2:))
ang_true =1×217.0000 - 22.0000

宽边的角度为17°和22°。

估计到达方向(DOA)

假设我们预先知道有两个来源。估计DOA,使用root-MUSIC技术。使用root-MUSIC算法构造一个DOA估计器。

rootmusicangle =分阶段。RootMUSICEstimator (“SensorArray”、齿龈...'运行频率',fc,...“NumSignalsSource”“属性”“NumSignals”, 2)
rootmusicangle =分阶段。RootMUSICEstimator with properties: SensorArray: [1x1 phase .]传播速度:299792458操作频率:300000000 NumSignalsSource: 'Property' NumSignals: 2 ForwardBackwardAveraging: false SpatialSmoothing: 0

由于ULA的阵列响应向量是共轭对称的,因此我们可以使用前向后(FB)平均法对实矩阵进行计算,降低计算复杂度。基于fb的估计器也具有较低的方差,降低了信号之间的相关性。

为了应用前向后平均,将root-MUSIC DOA估计器的ForwardBackwardAveraging属性设为真。在这种情况下,root-MUSIC算法也称为幺正root-MUSIC算法。

rootmusicangle.forwardbackwardaveraging = true;

执行DOA估计:

ang = rootmusicangle(信号)
和=1×216.9960 21.9964

我们也可以使用ESPRIT DOA估计器。如root-music的情况下,将FrongeBackWardAveraging属性设置为True。该算法也称为单一的ESPRIT。

espritangle =分阶段。ESPRITEstimator (“SensorArray”、齿龈...'运行频率',fc,“ForwardBackwardAveraging”,真的,...“NumSignalsSource”“属性”“NumSignals”, 2)
espritangle =分阶段。ESPRITEstimator with properties: SensorArray: [1x1 phase .]传播速度:299792458操作频率:300000000 NumSignalsSource: 'Property' NumSignals: 2 SpatialSmoothing: 0 Method: 'TLS' ForwardBackwardAveraging: true RowWeighting: 1
ang = espritangle(信号)
和=1×221.9988 - 16.9748

最后,使用MUSIC DOA估计器。MUSIC还支持前-后金宝app平均。与ESPRIT和root-MUSIC不同,MUSIC为指定的宽侧扫描角度计算空间光谱。到达方向对应于MUSIC空间谱中的峰值。

Musicangle = Phased.Musicestimator(“SensorArray”、齿龈...'运行频率',fc,“ForwardBackwardAveraging”,真的,...“NumSignalsSource”“属性”“NumSignals”2,...'doaoutputport',真正的)
musicangle =分阶段。MUSICEstimator with properties: SensorArray: [1x1 phase .]传播速度:299792458工作频率:300000000 ForwardBackwardAveraging: true SpatialSmoothing: 0扫描角度:[-90 -89 -88 -87 -86 -85 -84 -83 -82 -81…[DOAOutputPort: true NumSignals: 2 NumSignalsSource: 'Property'
[〜,ang] =音乐(信号)
和=1×217日22
plotSpectrum (musicangle)

图包含轴对象。具有标题音乐空间频谱的轴对象包含类型线的对象。该对象代表1 GHz。

音乐的到达方向被限制在扫描角度ScanAngles财产。因为在此示例中到达的真实方向与搜索角度一致ScanAngles, MUSIC提供精确的DOA角估计。在实践中,root-MUSIC提供了比MUSIC更好的分辨率。然而,MUSIC算法也可以用于方位和仰角的DOA估计使用二维阵列。看到抵达方向估算BeamScan,MVDR和音乐

估计信号源的数量

在实践中,您通常不知道信号源的数量,并且需要估计来自接收信号的源的数量。您可以通过为NumSignalSSource属性指定“自动”来估计信号源的数量,并为NumSignalSMethod属性选择“AIC”或“MDL”。对于AIC,使用Akaike信息标准(AIC),并且对于MDL,使用最小描述长度(MDL)标准。

在设置NumSignalsSource之前,必须释放DOA对象,因为它是被锁定的,以提高处理过程中的效率。

释放(espritangle);espritangle.numsignalssource =“汽车”;ESPRITANGLE.NUMSIGNALSMETHOD =“另类投资会议”;ang = espritangle(信号)
和=1×221.9988 - 16.9748

降低计算复杂度

除了前向后平均,还有其他方法可以降低计算复杂度。其中一种方法是在波束空间中求解一个约维等价问题。在我们的例子中,ESPRIT算法执行10 × 10实矩阵的特征值分解(EVD),而波束空间版本可以将问题简化为3 × 3实矩阵的EVD。该技术利用信号所在扇区的先验知识来定位波束风扇的中心。在本例中,将波束风扇指向方位角20°。

bsespritangle =分阶段。BeamspaceESPRITEstimator (“SensorArray”、齿龈...'运行频率',fc,...'numbeamssource'“属性”“NumBeams”,3,...“BeamFanCenter”,20);Ang = Bsespritangle(信号)
和=1×221.9875 - 16.9943

另一种技术是根加权子空间拟合(WSF)算法。这种算法是迭代的,在计算复杂度方面要求最高。您可以通过指定MaximumIterationCount属性来设置最大迭代次数,以将成本维持在特定限制之下。

rootwsfangle =分阶段。RootWSFEstimator (“SensorArray”、齿龈...'运行频率',fc,“MaximumIterationCount”,2);ang = rootwsfangle(信号)
和=1×216.9961 - 21.9962

优化性能

除了FB平均,还可以使用行加权来改进元素空间ESPRIT估计器的统计性能。行加权是一种对信号子空间矩阵的行施加不同权重的技术。行加权参数确定最大权重。在大多数情况下,它被选择为尽可能大。但是,它的值不能大于(N-1)/2,其中N是数组的元素数。

释放(espritangle);espritangle。RowWeighting = 4
espritangle =分阶段。ESPRITEstimator with properties: SensorArray: [1x1 phase .]传播速度:299792458运行频率:300000000 NumSignalsSource: 'Auto' NumSignalsMethod: 'AIC' SpatialSmoothing: 0 Method: 'TLS' ForwardBackwardAveraging: true RowWeighting: 4
ang = espritangle(信号)
和=1×221.9884 - 17.0003

多径环境下相干源的估计

如果多个源是相关或相干的(如在多径环境中),空间协方差矩阵会变得秩不足,基于子空间的DOA估计方法可能会失败。为了说明这一点,建立一个由4个窄带组成的接收信号模型。假设前3个信号中有2个是第一个源的多径反射,其幅度分别等于第一个源的1/4和1/2。

scov =眼(4);magratio = (1; 0.25, 0.5);scov (1:3, 1:3) = magratio * magratio ';

所有信号均在0°仰角入射,方位角为-23°、0°、12°和40°。

Imperfint Aizimuth.Az_ang = [-23 0 12 40];%当仰角为零时,[-90 90]范围内的方位角等于%横倾角。el_ang = 0(1、4);%接收信号signal = sensorsig(pos,nsamp,[az_ang; el_ang],noisepwr,scov);RNG(卢比);%恢复随机数发生器

在源相干时比较DOA算法的性能。为简化示例,每个算法仅运行一个试用。鉴于高SNR,结果将是估计准确性的良好指标。

首先,验证AIC准则低估了源的数量,导致统一ESPRIT算法给出了错误的估计。AIC估计源的数量为两个,因为三个源是相关的。

释放(espritangle);espritangle.numsignalssource =“汽车”;ESPRITANGLE.NUMSIGNALSMETHOD =“另类投资会议”;ang = espritangle(信号)
和=1×2-15.3535 - 40.0024

Root-WSF算法在相关信号的上下文中是稳健的。通过正确数量的来源作为输入,该算法正确估计到达方向。

释放(rootwsfangle);rootwsfangle。NumSignalsSource =“属性”;rootwsfangle。NumSignals = 4;ang = rootwsfangle(信号)
和=1×440.0016 -22.9919 12.0693 0.0737

然而,ESPRIT,Root-Music和Music也未能估计正确的到达方向,即使我们指定源的数量并使用酉实现。

释放(rootmusicangle);rootmusicangle。NumSignalsSource =“属性”;rootmusicangle。NumSignals = 4;rootmusicangle.forwardbackwardaveraging = true;ang = rootmusicangle(信号)
和=1×440.0077 -22.8313 4.4976 -11.9038

您可以应用空间平滑来估计相关信号的到达角。然而,使用空间平滑会降低阵列的有效孔径。因此,由于子阵列比原阵列小,估计量的方差增大。

释放(rootmusicangle);Nr = 2;%多径反射数量rootmusicangle。SpatialSmoothing = Nr
rootmusicangle =分阶段。RootMUSICEstimator with properties: SensorArray: [1x1 phase .]传播速度:299792458操作频率:300000000 NumSignalsSource: '属性' NumSignals: 4 ForwardBackwardAveraging: true SpatialSmoothing: 2
ang = rootmusicangle(信号)
和=1×440.0010 -22.9959 12.1376 0.1843

DOA算法的比较

总之,ESPRIT,音乐,root-Music和Root-WSF是重要的DOA算法,为ULAS提供良好的性能和合理的计算复杂性。单一的ESPRIT,酉根音乐和光束空间统一ESPRIT提供了显着降低估算器的计算成本的方法,同时还提高了它们的性能。Root-WSF在相关源的上下文中特别有吸引力,因为与其他方法相反,它不需要空间平滑以在已知源的数量时适当地估计DOAS。