主要内容

超分辨率DOA估计

这个例子展示了当两个不同信号源的到达角都落在均匀线性阵列(ULA)响应的主瓣内时,如何估计到达角。在这种情况下,波束扫描DOA估计器无法解析这两个源。然而,使用根MUSIC算法的超分辨率DOA估计器可以做到这一点。

注意:此示例仅在R2016b或更高版本中运行。如果您使用的是较早的版本,请将对函数的每次调用替换为等效函数一步语法。例如,替换myObject (x)步骤(myObject x)

绘制ULA的阵列响应。放大主波瓣。

Fc = 1e9;Lambda = physconst“光速”) / fc;阵列=相控。齿龈(“NumElements”10“ElementSpacing”λ/ 2);array.Element.FrequencyRange = [8e8 1.29 e9];plotResponse(数组、fc physconst (“光速”)轴([-25 25 -30 0]);

图中包含一个axes对象。标题为Azimuth Cut(仰角= 0.0°)的axis对象包含一个类型为line的对象。该对象表示1ghz。

接收doa相距10°的两个信号源。

Ang1 = [30;0);Ang2 = [40;0);Nsnapshots = 1000;rng默认的Npower = 0.01;rxsig = sensorsig(getElementPosition(array)/lambda,...Nsnapshots [ang1 ang2),英国能源再生公司);

使用波束扫描估计器估计到达的方向。由于两个DOA都位于阵列响应的主瓣内,波束扫描DOA估计器不能将它们解析为独立的源。

光束扫描估计器=相控。BeamscanEstimator (“SensorArray”数组,...“OperatingFrequency”足球俱乐部,“ScanAngles”90:90,...“DOAOutputPort”,真的,“NumSignals”2);[~,sigang] =波束扫描估计器(rxsig);plotSpectrum (beamscanestimator)

图中包含一个axes对象。标题为“Beamscan Spatial Spectrum”的axis对象包含一个类型为line的对象。该对象表示1ghz。

使用超分辨率DOA估计器对两个方向进行估计。该估计器比非参数波束扫描估计器具有更好的分辨率。

MUSICestimator =相控的。RootMUSICEstimator (“SensorArray”数组,...“OperatingFrequency”足球俱乐部,“NumSignalsSource”“属性”...“NumSignals”,2,“ForwardBackwardAveraging”,真正的);doa_est = MUSICestimator(rxsig)
doa_est =1×240.0091 - 30.0048

这个估计器正确地识别了两个不同的到达方向。

另请参阅

相关的话题