wmpalg

Соответствие с преследованием

Синтаксис

YFIT = wmpalg(MPALG,Y,MPDICT)
[YFIT,R] = wmpalg(...)
[YFIT,R,COEFF] = wmpalg(...)
[YFIT,R,COEFF,IOPT] = wmpalg(...)
[YFIT,R,COEFF,IOPT,QUAL] = wmpalg(...)
[YFIT,R,COEFF,IOPT,QUAL,X] = wmpalg(...)
[YFIT,R,COEFF,IOPT,QUAL,X] = wmpalg(...,Name,Value)

Описание

YFIT = wmpalg(MPALG,Y,MPDICT) возвращает адаптивное жадное приближение, YFIT, входного сигнала, Y, в словаре, MPDICT. Адаптивное жадное приближение использует соответствующий алгоритм преследования, MPALG. Словарь, MPDICT, обычно является сверхполным набором векторов, созданных с помощью wmpdictionary.

[YFIT,R] = wmpalg(...) возвращает невязку, R, который является вектором различия между Y и YFIT при завершении соответствующего преследования.

[YFIT,R,COEFF] = wmpalg(...) возвращает коэффициенты расширения, COEFF. Количество коэффициентов расширения зависит от количества итераций в соответствующем преследовании.

[YFIT,R,COEFF,IOPT] = wmpalg(...) возвращает индексы столбца сохраненных атомов, IOPT. Длина IOPT равняется длине COEFF и определяется количеством итераций в соответствующем преследовании.

[YFIT,R,COEFF,IOPT,QUAL] = wmpalg(...) возвращает пропорцию сохраненной энергии сигнала, QUAL, для каждой итерации соответствующего преследования. QUAL является отношением ℓ2 норм в квадрате вектора коэффициентов расширения, COEFF, к ℓ2 нормам в квадрате входного сигнала, Y.

[YFIT,R,COEFF,IOPT,QUAL,X] = wmpalg(...) возвращает нормированный словарь, X. X содержит единичные векторы в ℓ2 нормах, соответствующих столбцам MPDICT.

[YFIT,R,COEFF,IOPT,QUAL,X] = wmpalg(...,Name,Value) возвращает адаптивное жадное приближение с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value.

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

MPALG

Соответствие с алгоритмом преследования как вектор символов или скаляр строки. Действительные доступы:

  • BMP Основное преследование соответствия

  • 'OMP' — Ортогональное преследование соответствия

  • 'WMP' — Слабое ортогональное преследование соответствия

Смотрите соответствие с алгоритмами преследования.

Значение по умолчанию: 'BMP'

MPDICT

Соответствие со словарем преследования. MPDICT является N-by-P матрицей, где N равен длине входного сигнала, Y. Можно создать MPDICT с помощью wmpdictionary. В соответствии с преследованием MPDICT обычно является кадром или сверхполным набором векторов. Можно использовать Пару "имя-значение" 'lstcpt', чтобы задать словарь вместо того, чтобы использовать MPDICT. Если вы задаете значение для 'lstcpt', wmpalg вызывает wmpdictionary.

Y

Сигнал для соответствия с преследованием. Y является 1D, строкой с действительным знаком или вектор-столбцом. Размерность строки MPDICT должна совпадать с длиной Y.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

'itermax'

Положительное целое число, фиксирующее максимальное количество итераций соответствующего алгоритма преследования. Если вы не задаете значение 'maxerr', количество коэффициентов расширения, COEFF, количества индексов вектора словаря, IOPT, и длина вектора QUAL равняется значению 'itermax'.

Значение по умолчанию: 25

'lstcpt'

Массив ячеек массивов ячеек с допустимыми подсловарями. Эта пара "имя-значение" только допустима, если вы не вводите словарь в MPDICT. Каждый массив ячеек описывает один подсловарь. Допустимые подсловари:

  • Допустимый Wavelet Toolbox™ ортогональное или биоортогональное краткое название семейства вейвлетов с номером исчезающих моментов и дополнительного уровня разложения и дополнительного режима. Например, {'sym4',5} обозначает Добечи меньше всего - асимметричный вейвлет с 4 исчезающими моментами на уровне 5 и режиме 'per' расширения по умолчанию. Если вы не задаете дополнительный уровень номера и дополнительный режим, значения по умолчанию уровня разложения к 5 и дополнительный режим к 'per'.

  • Допустимый Wavelet Toolbox ортогональное или биоортогональное краткое название семейства вейвлетов, которому предшествует wp с номером исчезающих моментов и дополнительного уровня разложения и дополнительного режима. Например, {'wpsym4',5} обозначает Добечи меньше всего - асимметричный пакет вейвлета с 4 исчезающими моментами на уровне 5. Если вы не задаете дополнительный уровень номера и дополнительный режим, значения по умолчанию уровня разложения к 5 и дополнительный режим к 'per'.

  • 'dct' Дискретное основание косинусного-преобразования-II. Ортонормированный базис DCT-II:

    ϕk(n)={1Nk=02Nпотому что(πN(n+12)k)k=1,2,,N1

  • Подсловарь Синуса 'sin'. Подсловарь синуса:

    ϕk(t)=sin(2πkt)k=1,2,N2    0t1

  • Подсловарь Косинуса 'cos'. Подсловарь косинуса

    ϕk(t)=потому что(2πkt)k=1,2,N2    0t1

  • Подсловарь Полинома 'poly'. Полиномиальный подсловарь:

    pn(t)=tn1n=1,2,20        0t1

  • 'RnIdent' переключенный Кронекеров подсловарь дельты. Переключенный Кронекеров подсловарь дельты:

    ϕk(n)=δ(nk)k=0,1,N

Если вы используете пару "имя-значение" 'lstcpt', чтобы сгенерировать ваш словарь, можно использовать дополнительный 'addbeg' и пары "имя-значение" 'addend', чтобы добавить и атомы словаря слагаемого. Смотрите wmpdictionary для деталей.

'maxerr'

Массив ячеек, содержащий имя нормы и максимальной относительной погрешности в норме, выраженной как процент. Допустимыми нормами является 'L1', 'L2' и 'Linf'. Относительная погрешность, выраженная как процент,

100RY

где R является невязкой в каждой итерации, и Y является входным сигналом. Например, {'L1',10} устанавливает максимальное приемлемое отношение норм L1 невязки к входному сигналу к 0,10.

Если вы задаете 'maxerr', соответствующее преследование останавливается, когда первое из следующих условий удовлетворено:

  • Количество итераций достигает минимума длины входного сигнала, Y, или 500:
    min(length(Y),500)

  • Относительная погрешность падает ниже процента, который вы задаете с парой "имя-значение" 'maxerr'.

'stepplot'

Количество итераций между последовательными графиками. 'stepplot' требует положительного целого числа. Эта пара "имя-значение" только допустима, когда 'typeplot' равняется 2 или 3 ('movie' или 'stepwise').

'typeplot'

Тип графика произвести во время прогрессии соответствия с преследованием. Действительные доступы для 'typeplot': 0 или 'none', 1 или 'one', 2 или 'movie', 3 или 'stepwise'. Когда 'typeplot' является 'movie' или 'stepwise', обновления графика на основе значения 'stepplot'.

Значение по умолчанию: 0 или 'none'

'wmpcfs'

Фактор оптимальности для слабого ортогонального преследования соответствия. Фактором оптимальности является вещественное число в интервале (0,1]. Эта пара "имя-значение" только допустима, когда MPALG является 'WMP'.

Значение по умолчанию: 0.6

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

YFIT

Адаптивное жадное приближение входного сигнала, Y, в словаре

R

Невязка после соответствия с преследованием останавливается

COEFF

Коэффициенты расширения в словаре. Выбранные атомы словаря, взвешенные коэффициентами расширения, приводят к аппроксимированному сигналу, YFIT.

IOPT

Индексы столбца выбранных атомов словаря. Используя индексы столбца в IOPT с коэффициентами расширения в COEFF, можно сформировать аппроксимированный сигнал, YFIT.

QUAL

Пропорция сохраненной энергии сигнала для каждой итерации в соответствующем преследовании. QUAL является вектором с каждым элементом, равным

||αk||22||Y||22

где αk является вектором коэффициентов расширения после k-th итерация.

X

Нормированный словарь преследования соответствия. X является N-by-P матрицей, где N является длиной входного сигнала, Y. Столбцы X имеют модульную норму.

Примеры

свернуть все

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

Используйте словарь, состоящий из пакетов вейвлета sym4 и основания DCT-II.

load cuspamax;
mpdict = wmpdictionary(length(cuspamax),'LstCpt',...
   {{'wpsym4',2},'dct'});
yfit = wmpalg('OMP',cuspamax,mpdict);
plot(cuspamax,'k'); hold on;
plot(yfit,'linewidth',2); legend('Original Signal',...
    'Matching Pursuit');

Получите коэффициенты расширения в словаре, индексах столбца выбранных атомов словаря и пропорции сохраненной энергии сигнала.

Создайте словарь, состоящий из пакетов вейвлета sym4 и основания DCT-II. Аппроксимируйте сигнал cuspamax со словарем с помощью ортогонального преследования соответствия.

load cuspamax;
mpdict = wmpdictionary(length(cuspamax),'LstCpt',...
    {{'wpsym4',2},'dct'});
[yfit,r,coeff,iopt,qual] = wmpalg('OMP',cuspamax,mpdict);

Этот пример показывает, как определить максимальный номер итераций ортогонального преследования соответствия к 50.

load cuspamax;
lstcpt = {{'wpsym4',1},{'wpsym4',2},'dct'};
mpdict = wmpdictionary(length(cuspamax),'LstCpt',lstcpt);
[yfit,r,coeff,iopt,qual] = wmpalg('OMP',cuspamax,mpdict,...
    'itermax',50);

Этот пример показывает, как допускать субоптимальный выбор в обновлении ортогонального преследования соответствия. Ослабьте требование, чтобы быть 0.8 раза оптимальным присвоением. Постройте результаты пошагово и обновите график каждые 5 итераций.

load cuspamax;
lstcpt = {{'wpsym4',1},{'wpsym4',2},'dct'};
mpdict = wmpdictionary(length(cuspamax),'LstCpt',lstcpt);
[yfit,r,coeff,iopt,qual] = wmpalg('WMP',cuspamax,...
    mpdict,'wmpcfs',0.8, 'typeplot','stepwise','stepplot',3);

Получите соответствующее преследование потребления электричества, измеряемого каждую минуту за 24-часовой период.

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

load elec35_nor;
y = signals(32,:);
plot(y); xlabel('Minutes'); ylabel('Usage');
set(gca,'xlim',[1 1440]);

Создайте словарь для соответствия с преследованием, состоящим из вейвлета экстремальной фазы Добечиса с 2 исчезающими моментами на уровне 2, Добечис меньше всего - асимметричный вейвлет с 4 исчезающими моментами на уровнях 1 и 4, дискретном основании косинусного-преобразования-II и основании синуса.

dictionary = {{'db4',2},'dct','sin',{'sym4',1},{'sym4',4}};
[mpdict,nbvect] = wmpdictionary(length(y),'lstcpt',dictionary);

Реализуйте ортогональное преследование соответствия, чтобы получить приближение сигнала в словаре. Используйте 35 итераций. Постройте результат.

[yfit,r,coef,iopt,qual] = wmpalg('OMP',y,mpdict,'itermax',35);
plot(y); hold on;
plot(yfit,'r'); xlabel('Minutes'); ylabel('Usage');
legend('Original Signal','OMP','Location','NorthEast');
set(gca,'xlim',[1 1440]);

Используя коэффициенты расширения в coef и индексы атома в iopt, создайте приближение сигнала, yhat, непосредственно из словаря. Сравните yhat с yfit, возвращенным wmpalg.

[~,I] = sort(iopt);
X = mpdict(:,iopt(I));
yhat = X*coef(I);
max(abs(yfit-yhat))
ans = 1.7764e-15

Ссылки

[1] Стоимость и страхование, Т.Т. и Ван, L. “Ортогональное Соответствие с Преследованием для Разреженного Восстановления Сигнала с Шумом”. IEEE® Transactions на Теории информации, издании 57, 7, 4680-4688, 2011.

[2] Donoho, D., Elad, M., и Темляков, V. “Стабильных восстановлений разреженных сверхполных представлений в присутствии шума”. Транзакции IEEE на теории информации. Издание 52, 1, 6-18, 2004.

[3] Mallat, S. и Чжан, Z. “Совпадая с Преследованием Словарям Частоты Времени”. Транзакции IEEE на Обработке сигналов, издании 41, 12, 3397-3415, 1993

[4] Tropp, J.A. “Жадность хороша: Алгоритмические результаты для разреженного приближения”. Транзакции IEEE на Теории информации, 50, стр 2231–2242, 2004.

Представленный в R2012a

Для просмотра документации необходимо авторизоваться на сайте