ompdecomp

Анализируйте сигнал с помощью ортогонального преследования соответствия

Описание

[coeff,dictatom,atomidx,errnorm] = ompdecomp(X,dict) вычисляет матрицы разложения coeff и dictatom из X сигнала. Продукт матриц разложения, dictatom x coeff, аппроксимирует X. Атомы в dictatom выбраны из dict. atomidx индексы в dict соответствие dictatom. errnorm ошибка разложения. Разложение основано на алгоритме ортогонального преследования соответствия (OMP), который минимизирует норму Фробениуса ||Xdictatom x coeff||.

пример

[coeff,dictatom,atomidx,errnorm] = ompdecomp(X,dict,'MaxSparsity',nm) также задает максимальную разреженность nm.

[coeff,dictatom,atomidx,errnorm] = ompdecomp(X,dict,'NormWeight',wts) минимизирует взвешенную норму Фробениуса ||wts1/2 (Xdictatom x coeff)|| использование весов wts.

Примеры

свернуть все

Учитывая ряд оптимального, полно-цифрового, beamforming веса для ULA с 8 элементами, разлагают веса на продукт аналога и цифровые beamforming веса. Примите, что система имеет две цепи РФ. Покажите, что объединенные веса достигают подобной производительности как оптимальных весов.

Задайте оптимальное, полно-цифровое, beamforming веса.

wopt = steervec((0:7)*0.5,[20 -40]);

Создайте словарь держащихся векторов.

stvdict = steervec((0:7)*0.5,-90:90);

Выполните разложение весов с помощью OMP. Установите максимальную разреженность на два.

[wbb,wrf,wdictidx,normerr] = ompdecomp(wopt,stvdict,'MaxSparsity',2);

Сравните диаграммы направленности, выведенные из оптимальных весов и гибридных весов. График показывает что разложение wopt в wrf и wbb почти точно.

plot(-90:90,abs(sum(wopt'*stvdict)),'-', ...
    -90:90,abs(sum((wrf*wbb)'*stvdict)),'--','LineWidth',2)
xlabel('Angles (degrees)')
ylabel('Amplitude')
legend('Optimal','Hybrid')

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

свернуть все

Входные данные, которые будут анализироваться, заданные как N с комплексным знаком-by-Nc матрица.

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

Словарь атомов, заданных как матрица с комплексным знаком. Функция использует подмножество атомов из словаря, чтобы создать данные.

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

Максимальная разреженность разложения, заданного как положительное целое число. Разложение останавливается когда разреженность nm достигается.

Пример 5

Зависимости

Используйте этот аргумент с синтаксисом, задающим 'MaxSparsity'.

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

Веса нормы, используемые OMP, чтобы минимизировать взвешенную норму Фробениуса ||wts1/2 x (Xdictatom x coeff)||, заданный как N с комплексным знаком-by-N матрица.

Пример 5

Зависимости

Используйте этот аргумент с синтаксисом, задающим 'NormWeight'.

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

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

свернуть все

Коэффициенты базисных атомов, возвращенных как N s-by-Nc матрица. Строки представляют коэффициенты для соответствующих атомов в dictatom. N s представляет количество атомов, выбранных из словаря, и является мерой разреженности сигнала.

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

Базисные атомы сигнала, возвращенные как N-by-Ns матрица. Столбцы являются атомами, формирующими основание сигнала. Эти атомы являются подмножеством словаря, заданного в dict. N s представляет количество выбранных атомов и является мерой разреженности сигнала.

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

Индексы атомов выбрали из словаря dict, возвращенный как вектор-строка длины-Ns, где dict(:,atomidx) = dictatom.

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

Норма ошибки разложения, возвращенной как неотрицательный скаляр.

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

Больше о

свернуть все

Гибридные веса Beamforming

В контексте гибрида beamforming, coeff аргумент представляет цифровые веса. dictatom представляет аналоговые веса и dict набор держащихся векторов, которые могут использоваться в качестве аналоговых весов.

Ссылки

[1] Ayach, Омар Эль и др. "Пространственно Разреженное Предварительное кодирование в Волне Миллиметра Системная Сделка IEEE" MIMO на Радиосвязях. Издание 13, № 3, март 2014.

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2019b