ビームスキャンによる到来方向推定
この例では、ノンパラメトリック ビームスキャン手法を使用して 2 つの信号の到来方向 (DOA) を推定する方法を示します。ビームスキャン アルゴリズムでは、アレイ ビームを関心領域に対してスキャンすることによって DOA を推定します。アルゴリズムは、各ビームスキャン角度における出力を計算し、最大値を DOA 推定値として識別します。
10 個の等方性アンテナ素子で構成される等間隔直線アレイ (ULA) を構築します。受信する狭帯域ソースの搬送波周波数は 1 GHz です。
fc = 1e9; lambda = physconst('LightSpeed')/fc; antenna = phased.IsotropicAntennaElement('FrequencyRange',[8e8 1.2e9]); array = phased.ULA('Element',antenna,'NumElements',10,'ElementSpacing',lambda/2);
入射波場は 2 つのソースからの線形 FM パルスで構成されます。2 つのソースの DOA は方位角 30° と方位角 60° です。両方のソースの仰角は 0° です。
waveform = phased.LinearFMWaveform('SweepBandwidth',1e5,... 'PulseWidth',5e-6,'OutputFormat','Pulses','NumPulses',1); sig1 = waveform(); sig2 = sig1; ang1 = [30; 0]; ang2 = [60;0]; arraysig = collectPlaneWave(array,[sig1 sig2],[ang1 ang2],fc); rng default npower = 0.01; noise = sqrt(npower/2)*... (randn(size(arraysig)) + 1i*randn(size(arraysig))); rxsig = arraysig + noise;
ビームスキャン DOA 推定器を実装します。 から まで方位角をスキャンします。DOA 推定値を出力し、空間スペクトルをプロットします。スペクトルの 2 つの最大ピークの位置によって、信号の DOA が特定されます。
estimator = phased.BeamscanEstimator('SensorArray',array,... 'OperatingFrequency',fc,'ScanAngles',-90:90,... 'DOAOutputPort',true,'NumSignals',2); [y,sigang] = estimator(rxsig); disp(sigang)
64 28
空間スペクトルをブロードサイド角度の関数としてプロットします。
plotSpectrum(estimator)
