поэтапный. MUSICEstimator2D

Оцените 2D направление прибытия с помощью узкополосного алгоритма MUSIC

Описание

Система phased.MUSICEstimator2D object™ реализует узкополосную связь, несколько сигнализируют о классификации (MUSIC) алгоритм для плоского 2D или трехмерные массивы, такие как универсальный прямоугольный массив (URA). MUSIC является алгоритмом определения направления с высоким разрешением, способным к решению близко расположенных источников сигнала. Алгоритм основан на eigenspace разложении ковариационной матрицы датчика.

Оценить направления прибытия (DOA):

  1. Задайте и настройте Системный объект phased.MUSICEstimator2D. Смотрите Конструкцию.

  2. Вызовите метод step, чтобы оценить DOAs согласно свойствам phased.MUSICEstimator2D.

Примечание

Вместо того, чтобы использовать метод step, чтобы выполнить операцию, заданную Системным объектом, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Конструкция

estimator = phased.MUSICEstimator2D создает Системный объект средства оценки DOA MUSIC, estimator.

estimator = phased.MUSICEstimator2D(Name,Value) создает Системный объект, estimator, с каждым заданным набором имени свойства к заданному значению. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN).

Свойства

развернуть все

Сенсорная матрица, заданная как Системный объект Phased Array System Toolbox массивов.

Пример: phased.URA

Скорость распространения сигнала, заданная как положительная скалярная величина с действительным знаком. Модули исчисляются в метрах в секунду. Скорость распространения по умолчанию является значением, возвращенным physconst('LightSpeed').

Пример: 3e8

Типы данных: single | double

Рабочая частота, заданная как положительная скалярная величина. Модули находятся в Гц.

Пример: 1e9

Типы данных: single | double

Включите прямое обратное усреднение, заданное как false или true. Установите это свойство на true использовать прямое обратное усреднение, чтобы оценить ковариационную матрицу для сенсорных матриц с сопряженным симметричным коллектором массивов.

Типы данных: логический

Углы сканирования азимута, заданные как a или вектор - строка с действительным знаком. Угловые модули в градусах. Угловые значения должны находиться между-180 ° и 180 °, включительно, и быть в порядке возрастания.

Пример: [-30:20]

Типы данных: single | double

Углы сканирования повышения, заданные как вектор - строка с действительным знаком. Угловые модули в градусах. Угловые значения должны находиться между-90 ° и 90 °, включительно, и быть в порядке возрастания.

Пример: [-70:75]

Типы данных: single | double

Опция, чтобы включить направлениям прибытия (DOA) вывод, заданный как false или true. Чтобы получить DOA сигналов, установите это свойство на true. DOAs возвращены во втором выходном аргументе, когда объект выполняется.

Типы данных: логический

Источник количества прибывающих сигналов, заданных как 'Auto' или 'Property'.

  • 'auto' Системный объект оценивает количество прибывающих сигналов с помощью метода, заданного в свойстве NumSignalsMethod.

  • Свойство Задайте количество прибывающих сигналов с помощью свойства NumSignals.

Типы данных: char

Метод раньше оценивал количество прибывающих сигналов, заданных как 'AIC' или 'MDL'.

  • 'AIC' — Критерий информации о Akaike

  • 'MDL' — Минимальный критерий Длины Описания

Зависимости

Чтобы включить это свойство, установите NumSignalsSource на 'Auto'.

Типы данных: char

Количество прибывающих сигналов для оценки DOA, заданной как положительное целое число.

Пример 3

Зависимости

Чтобы включить это свойство, установите NumSignalsSource на 'Property'.

Типы данных: single | double

Методы

plotSpectrumПостройте 2D спектр MUSIC
сбросСбросьте состояния Системного объекта
шагОцените направление прибытия с помощью 2D MUSIC
Характерный для всех системных объектов
release

Позвольте изменения значения свойства Системного объекта

Примеры

развернуть все

Примите, что две синусоидальных волны частот 450 Гц и 600 Гц ударяют URA от двух различных направлений. Сигналы прибывают от азимута на-37 °, повышения на 0 ° и азимута на 17 °, повышения на 20 °. Используйте 2D MUSIC, чтобы оценить направления прибытия двух сигналов. Массив рабочая частота составляет 150 МГц и частота дискретизации сигнала, составляет 8 кГц.

f1 = 450.0;
f2 = 600.0;
doa1 = [-37;0];
doa2 = [17;20];
fc = 150e6;
c = physconst('LightSpeed');
lam = c/fc;
fs = 8000;

Создайте URA с изотропными элементами по умолчанию. Установите область значений частотной характеристики элементов.

array = phased.URA('Size',[11 11],'ElementSpacing',[lam/2 lam/2]);
array.Element.FrequencyRange = [50.0e6 500.0e6];

Создайте два сигнала и добавьте случайный шум.

t = (0:1/fs:1).';
x1 = cos(2*pi*t*f1);
x2 = cos(2*pi*t*f2);
x = collectPlaneWave(array,[x1 x2],[doa1,doa2],fc);
noise = 0.1*(randn(size(x))+1i*randn(size(x)));

Создайте и выполните 2D средство оценки MUSIC, чтобы найти направления прибытия.

estimator = phased.MUSICEstimator2D('SensorArray',array,...
    'OperatingFrequency',fc,...
    'NumSignalsSource','Property',...
    'DOAOutputPort',true,'NumSignals',2,...
    'AzimuthScanAngles',-50:.5:50,...
    'ElevationScanAngles',-30:.5:30);
[~,doas] = estimator(x + noise)
doas = 2×2

   -37    17
     0    20

Предполагаемые DOAs точно совпадают с истинным DOAs.

Постройте 2D пространственный спектр

plotSpectrum(estimator);

Примите, что две синусоидальных волны частот 1,6 кГц и 1,8 кГц ударяют дисковый массив от двух различных направлений. Интервал между элементами диска является 1/2 длиной волны. Сигналы прибывают от азимута на-31 °, повышения на-11 ° и азимута на 35 °, повышения на 55 °. Используйте 2D MUSIC, чтобы оценить направления прибытия двух сигналов. Массив рабочая частота составляет 300 МГц и частота дискретизации сигнала, составляет 8 кГц.

Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным синтаксисом step. Например, замените myObject(x) на step(myObject,x).

f1 = 1.6e3;
f2 = 1.8e3;
doa1 = [-31;-11];
doa2 = [35;55];
fc = 300e6;
c = physconst('LightSpeed');
lam = c/fc;
fs = 8.0e3;

Создайте конформный массив с изотропными элементами по умолчанию. Во-первых, создайте URA, чтобы получить положения элемента.

uraarray = phased.URA('Size',[21 21],'ElementSpacing',[lam/2 lam/2]);
pos = getElementPosition(uraarray);

Извлеките подмножество их, чтобы сформировать нанесенный диск.

radius = 10.5*lam/2;
pos(:,sum(pos.^2) > radius^2) = [];

Затем создайте конформный массив с помощью этих положений.

confarray = phased.ConformalArray('ElementPosition',pos);
viewArray(confarray)

Установите область значений частотной характеристики элементов.

confarray.Element.FrequencyRange = [50.0e6 600.0e6];

Создайте два сигнала и добавьте случайный шум.

t = (0:1/fs:1.5).';
x1 = cos(2*pi*t*f1);
x2 = cos(2*pi*t*f2);
x = collectPlaneWave(confarray,[x1 x2],[doa1,doa2],fc);
noise = 0.1*(randn(size(x)) + 1i*randn(size(x)));

Создайте и выполните 2D средство оценки MUSIC, чтобы найти направления прибытия.

estimator = phased.MUSICEstimator2D('SensorArray',confarray,...
    'OperatingFrequency',fc,...
    'NumSignalsSource','Property',...
    'DOAOutputPort',true,'NumSignals',2,...
    'AzimuthScanAngles',-60:.1:60,...
    'ElevationScanAngles',-60:.1:60);
[~,doas] = estimator(x + noise)
doas = 2×2

    35   -31
    55   -11

Предполагаемые DOAs точно совпадают с истинным DOAs.

Постройте 2D пространственный спектр

plotSpectrum(estimator);

Алгоритмы

развернуть все

Ссылки

[1] Деревья фургона, H. L. оптимальная обработка матриц. Нью-Йорк: Wiley-межнаука, 2002.

Расширенные возможности

Введенный в R2017b