musicdoa

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

Описание

пример

doas = musicdoa(covmat,nsig) использует алгоритм MUSIC, чтобы оценить направления прибытия, doas, из nsig плоские волны получены на универсальной линейной матрице (ULA). Аргумент covmat положительно-определенная Эрмитова матрица, представляющая ковариационную матрицу датчика. Обнаруженные источники появляются как peaks в пространственном спектре. Аргумент nsig количество прибывающих сигналов. Элементы датчика являются распределенной половиной длины волны независимо в модулях длин волн. Функция обеспечивает точную сопряженную симметрию covmat путем усреднения ковариационной матрицы с ее сопряженным транспонированием.

пример

[doas,spec,specang] = musicdoa(covmat,nsig) также возвращает пространственный спектр, spec, и nsig углы peaks спектра, specang.

пример

[___] = musicdoa(covmat,nsig,___,'ScanAngles',scanangle) задает сетку поперечных углов, чтобы искать peaks спектра.

пример

[___] = musicdoa(covmat,nsig,___,'ElementSpacing',dist) задает интервал между элементами массива.

Примеры

свернуть все

Вычислите направления прибытия 3 некоррелированых сигналов, прибывающих в ULA с 11 элементами с интервалом полудлины волны. Примите, что сигналы прибывают из поперечных углов 0 °,-12 ° и 85 °. Шум в каждом элементе является Гауссовым белым шумом и является некоррелированым между элементами. ОСШ составляет 5 дБ.

Задайте количество элементов ULA и интервала элемента (в длинах волн).

nelem = 11;
d = 0.5;
snr = 5.0;
elementPos = (0:nelem-1)*d;

Задайте количество сигналов и их поперечных углов падения.

nsig = 3;
angles = [0.0 -12.0 85.0];

Создайте ковариационную матрицу датчика.

covmat = sensorcov(elementPos,angles,db2pow(-snr));

Оцените поперечные углы падения.

doas = musicdoa(covmat,nsig)
doas = 1×3

    85     0   -12

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

Вычислите направления прибытия 3 некоррелированых сигналов, прибывающих в ULA с 11 элементами с интервалом полудлины волны. Примите, что сигналы прибывают из поперечных углов 0 °,-12 ° и 85 °. Шум в каждом элементе является Гауссовым белым шумом и является некоррелированым между элементами. ОСШ составляет 2 дБ.

Задайте количество элементов ULA и интервала элемента (в длинах волн).

nelem = 11;
d = 0.5;
snr = 2.0;
elementPos = (0:nelem-1)*d;

Задайте количество сигналов и их поперечных углов падения.

nsig = 3;
angles = [0.0 -12.0 85.0];

Создайте ковариационную матрицу датчика.

covmat = sensorcov(elementPos,angles,db2pow(-snr));

Вычислите спектр MUSIC и оцените поперечные углы падения.

[doas,spec,specang] = musicdoa(covmat,nsig);

Постройте спектр MUSIC.

plot(specang,10*log10(spec))
xlabel('Arrival Angle (deg)')
ylabel('Magnitude (dB)')
title('MUSIC Spectrum')
grid

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

Вычислите направления прибытия 4 некоррелированых сигналов, прибывающих в ULA с 11 элементами. Интервал элемента является 0,5 длинами волн. Примите, что сигналы прибывают из поперечных углов-60.2 °,-20.7 °, 0,5 ° и 84,8 °. Шум в каждом элементе является Гауссовым белым шумом и является некоррелированым между элементами. ОСШ составляет 0 дБ.

Задайте количество элементов ULA и интервала элемента (в длинах волн).

nelem = 11;
d = 0.5;
snr = 5.0;
elementPos = (0:nelem-1)*d;

Задайте количество сигналов и их поперечных углов падения.

nsig = 4;
angles = [-60.2 -20.7 0.5 84.8];

Создайте ковариационную матрицу датчика.

covmat = sensorcov(elementPos,angles,db2pow(-snr));

Вычислите спектр MUSIC и оцените поперечные углы падения в диапазоне от-70 ° до 90 ° с шагом на 0,1 °.

[doas,spec,specang] = musicdoa(covmat,nsig,'ScanAngles',[-70:.1:90]);

Постройте спектр MUSIC.

plot(specang,10*log10(spec))
xlabel('Arrival Angle (deg)')
ylabel('Magnitude (dB)')
title('MUSIC Spectrum')
grid

disp(doas)
   84.8000    0.5000  -60.2000  -20.7000

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

Вычислите направления прибытия 4 некоррелированых сигналов, прибывающих в ULA с 11 элементами. Интервал элемента является 0,4 интервалами длин волн. Примите, что сигналы прибывают из поперечных углов-60 °,-20 °, 0 ° и 85 °. Шум в каждом элементе является Гауссовым белым шумом и является некоррелированым между элементами. ОСШ составляет 0 дБ.

Задайте количество элементов ULA и интервала элемента (в длинах волн).

nelem = 11;
d = 0.4;
snr = 0.0;
elementPos = (0:nelem-1)*d;

Задайте количество сигналов и их поперечных углов падения.

nsig = 4;
angles = [-60.0 -20.0 0.0 85.0];

Создайте ковариационную матрицу датчика.

covmat = sensorcov(elementPos,angles,db2pow(-snr));

Вычислите спектр MUSIC и оцените поперечные углы падения.

[doas,spec,specang] = musicdoa(covmat,nsig,'ElementSpacing',d);

Постройте спектр MUSIC.

plot(specang,10*log10(spec))
xlabel('Arrival Angle (deg)')
ylabel('Magnitude (dB)')
title('MUSIC Spectrum')
grid

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

Входные параметры

свернуть все

Ковариационная матрица датчика, заданная как положительно-определенный M с комплексным знаком-by-M матрица. Количество M является числом элементов в массиве ULA. Функция обеспечивает свойство Hermiticity путем усреднения матрицы и ее сопряженного транспонирования.

Типы данных: double
Поддержка комплексного числа: Да

Количество прибывающих сигналов, заданных как положительное целое число. Количество сигналов должно быть меньшим, чем число элементов в массиве ULA.

Пример 2

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

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

Пример: [-40:0.5:50]

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

Расстояние между элементами массива, заданными как положительная скалярная величина с действительным знаком.

Пример: 0.45

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

Выходные аргументы

свернуть все

Направления угла падения, возвращенного как 1 с действительным знаком D вектором, где D является количеством прибывающих сигналов, заданных в nsig. Угловые модули в градусах. Угловые значения находятся в диапазоне, указанном scanangle.

Пространственный спектр, возвращенный как положительный вектор с действительным знаком. Размерность spec равняется размерности scanangle.

Поперечный угол спектра, возвращенного как вектор с действительным знаком. Размерность specang равняется размерности scanangle.

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

Введенный в R2017b