exponenta event banner

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-на-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. Каждый массив ячеек описывает один субдикционер. Допустимыми подсловарями являются:

  • Допустимое краткое имя семейства вейвлетов Vavelet 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,..., N − 1

  • 'sin' Синус субдикционный. Sine subdictionary является:

    β k (t) = sin (2ākt) k = 1,2,... N2 0≤t≤1

  • 'cos' Косинусный субдикционный. Субдикционал косинусов

    β k (t) = cos (2ākt) k = 1,2,... N2 0≤t≤1

  • 'poly' Многочлен субдикционный. Полиномиальным субдикционером является:

    pn (t) = tn 1 n = 1,2,... 20 0≤t≤1

  • 'RnIdent' Сдвинутый дельта-субдицион Кронекера. Сдвинутый субдикционал дельты Кронекера:

    β k (n) = δ (n k) k = 0,1,... N

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

'maxerr'

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

100‖R Y ‖

где 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] Кай, Т.Т. и Ван, Л. «Поиск ортогонального согласования для восстановления разреженного сигнала с шумом». IEEE ® Transactions on Information Theory, том 57, 7, 4680-4688, 2011.

[2] Донохо, Д., Элад, М. и Темляков, В. «Стабильное восстановление разреженных избыточных представлений при наличии шума». Транзакции IEEE по теории информации. Том 52, 1, 6-18, 2004.

[3] Маллат, С. и Чжан, З. «Сопоставление занятий с частотно-временными словарями». Транзакции IEEE по обработке сигналов, том 41, 12, 3397-3415, 1993

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

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