Этот пример показывает, как оценить углы прибытия из двух отдельных источников сигнала, когда оба угла находятся в пределах основного лепестка ответа массивов универсальная линейная матрица (ULA). В этом случае beamscan средство оценки DOA не может разрешить эти два источника. Однако средство оценки DOA суперразрешения с помощью корневого алгоритма MUSIC может сделать так.
Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным синтаксисом step
. Например, замените myObject(x)
на step(myObject,x)
.
Постройте ответ массивов ULA. Увеличьте масштаб основного лепестка.
fc = 1e9; lambda = physconst('LightSpeed')/fc; array = phased.ULA('NumElements',10,'ElementSpacing',lambda/2); array.Element.FrequencyRange = [8e8 1.2e9]; plotResponse(array,fc,physconst('LightSpeed')) axis([-25 25 -30 0]);
Получите два источника сигнала с DOAs, разделенным на 10 °
ang1 = [30; 0]; ang2 = [40; 0]; Nsnapshots = 1000; rng default npower = 0.01; rxsig = sensorsig(getElementPosition(array)/lambda,... Nsnapshots,[ang1 ang2],npower);
Оцените направления прибытия с помощью beamscan средства оценки. Поскольку оба падение DOAs в основном лепестке ответа массивов, beamscan средство оценки DOA не может разрешить их как отдельные источники.
beamscanestimator = phased.BeamscanEstimator('SensorArray',array,... 'OperatingFrequency',fc,'ScanAngles',-90:90,... 'DOAOutputPort',true,'NumSignals',2); [~,sigang] = beamscanestimator(rxsig); plotSpectrum(beamscanestimator)
Используйте средство оценки DOA суперразрешения, чтобы оценить эти два направления. Это средство оценки предлагает лучшее разрешение, чем непараметрическое beamscan средство оценки.
MUSICestimator = phased.RootMUSICEstimator('SensorArray',array,... 'OperatingFrequency',fc,'NumSignalsSource','Property',... 'NumSignals',2,'ForwardBackwardAveraging',true); doa_est = MUSICestimator(rxsig)
doa_est = 1×2
40.0091 30.0048
Это средство оценки правильно идентифицирует два отличных направления прибытия.