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.

Примеры

свернуть все

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

Задайте оптимальные, полноцифровые, образующие луч веса.

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')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Optimal, Hybrid.

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

свернуть все

Входные данные, подлежащие разложению, задаются как комплексная матрица N -by N c.

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

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

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

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

Пример: 5

Зависимости

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

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

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

Пример: 5

Зависимости

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

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

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

свернуть все

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

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

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

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

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

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

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

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

Подробнее о

свернуть все

Гибридные веса формирования луча

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

Ссылки

[1] Ayach, Omar El et al. «Пространственно-разреженное предварительное кодирование в системах MIMO волны миллиметра» IEEE Trans on Wireless Communications. Том 13, № 3, март 2014.

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

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

.
Введенный в R2019b