メインコンテンツ

ビームスキャンによる到来方向推定

この例では、ノンパラメトリック ビームスキャン手法を使用して 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 推定器を実装します。-90° から 90° まで方位角をスキャンします。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)

Figure contains an axes object. The axes object with title Beamscan Spatial Spectrum, xlabel Broadside Angle (degrees), ylabel Power (dB) contains an object of type line. This object represents 1 GHz.

参考

トピック