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' - Basic matching pursuit

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

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

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

По умолчанию: 'BMP'

MPDICT

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

Y

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

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

'itermax'

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

По умолчанию: 25

'lstcpt'

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

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

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

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

    ϕk(n)={1Nk=02Ncos(πN(n+12)k)k=1,2,,N1

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

    ϕk(t)=sin(2πkt)k=1,2,N20t1

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

    ϕk(t)=cos(2πkt)k=1,2,N20t1

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

    pn(t)=tn1n=1,2,200t1

  • '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-й итерации.

X

Нормализованный соответствующий словарь преследования. X - N-на-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');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent 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]);

Figure contains an axes. The axes contains an object of type line.

Создайте словарь для соответствия преследования, состоящий из экстремально-фазового вейвлета Daubechies с 2 моментами исчезновения на уровне 2, наименее-асимметричного вейвлета Daubechies с 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]);

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Original Signal, OMP.

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

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

Ссылки

[1] Cai, T.T. and Wang, L. Ортогональная гонка преследования для разреженного восстановления сигнала с шумом. IEEE® Сделки по теории информации, т. 57, 7, 4680-4688, 2011.

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

[3] Mallat, S. and Zhang, Z. «Matching Pursuits with Time-Frequency Dictionary». Транзакции IEEE по обработке сигналов, том 41, 12, 3397-3415, 1993

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

Введенный в R2012a