wavedec

Описание

пример

[c,l] = wavedec(x,n,wname) возвращает вейвлет 1-D сигнала x на уровне n использование вейвлет- wname. Выход разложения состоит из вектора вейвлет c и вектор бухгалтерии l, который содержит количество коэффициентов по уровням.

Примечание

Для gpuArray входы, поддерживаемые режимы 'symh' ('sym') и 'per'. Если вход является gpuArray, дискретный режим расширения вейвлет, используемый в wavedec по умолчанию является 'symh' если текущий режим расширения не 'per'. Смотрите пример Многоуровневое дискретное вейвлет на графическом процессоре.

[c,l] = wavedec(x,n,LoD,HiD) возвращает разложение вейвлета с помощью заданных lowpass и highpass вейвлета фильтров разложения LoD и HiD, соответственно.

Примеры

свернуть все

Загрузите и постройте график одномерного сигнала.

load sumsin 
plot(sumsin)
title('Signal')

Figure contains an axes. The axes with title Signal contains an object of type line.

Выполните 3-уровневое вейвлет-разложение сигнала, используя вейвлет Daubechies порядка 2. Извлеките коэффициенты грубой шкалы приближения и коэффициенты детализации из разложения.

[c,l] = wavedec(sumsin,3,'db2');
approx = appcoef(c,l,'db2');
[cd1,cd2,cd3] = detcoef(c,l,[1 2 3]);

Постройте график коэффициентов.

subplot(4,1,1)
plot(approx)
title('Approximation Coefficients')
subplot(4,1,2)
plot(cd3)
title('Level 3 Detail Coefficients')
subplot(4,1,3)
plot(cd2)
title('Level 2 Detail Coefficients')
subplot(4,1,4)
plot(cd1)
title('Level 1 Detail Coefficients')

Figure contains 4 axes. Axes 1 with title Approximation Coefficients contains an object of type line. Axes 2 with title Level 3 Detail Coefficients contains an object of type line. Axes 3 with title Level 2 Detail Coefficients contains an object of type line. Axes 4 with title Level 1 Detail Coefficients contains an object of type line.

Обратитесь к разделу Поддержка GPU по версии (Parallel Computing Toolbox), чтобы узнать, какие графические процессоры поддерживаются.

Загрузите шумный сигнал Доплера. Поместите сигнал на графический процессор с помощью gpuArray. Сохраните текущий режим расширения.

load noisdopp
noisdoppg = gpuArray(noisdopp);
origMode = dwtmode('status','nodisp');

Использование dwtmode для изменения режима внутреннего абонента на нулевое заполнение. Получите трехуровневый DWT сигнала на графическом процессоре с помощью db4 вейвлет.

dwtmode('zpd','nodisp')
[c,l] = wavedec(noisdoppg,3,'db4');

Текущий режим расширения zpd не поддерживается для gpuArray вход. Поэтому DWT выполняется вместо этого с помощью sym режим расширения. Чтобы подтвердить это, установите режим внутреннего абонента на sym и возьмите DWT из noisdoppg, затем сравните с предыдущим результатом.

dwtmode('sym','nodisp')
[csym,lsym] = wavedec(noisdoppg,3,'db4');
[max(abs(c-csym)) max(abs(l-lsym))]
ans =

     0     0

Установите текущий режим расширения на per и получите трехуровневый DWT noisdopp. Режим расширения per поддерживается для gpuArray вход. Подтвердите, что результат отличается от sym результаты.

dwtmode('per','nodisp')
[cper,lper] = wavedec(noisdoppg,3,'db4');
[length(csym) ; length(cper)]
ans = 2×1

        1044
        1024

[lsym ; lper]
ans = 2×5

         134         134         261         515        1024
         128         128         256         512        1024

Восстановите режим расширения к исходной настройке.

dwtmode(origMode,'nodisp')

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

свернуть все

Входной сигнал, заданный как вектор.

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

Уровень разложения, заданный как положительное целое число. wavedec не устанавливает ограничение максимального уровня. Использовать wmaxlev для обеспечения того, чтобы коэффициенты вейвлета были свободны от граничных эффектов. Если граничные эффекты не являются проблемой в вашем приложении, хорошим правилом является установка n меньше или равно fix(log2(length(x))).

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

Анализ вейвлета, заданный как вектор символов или строковый скаляр.

Примечание

wavedec Поддержки только Тип 1 (ортогональный) или Тип 2 (биортогональные) вейвлеты. Посмотрите wfilters для получения списка ортогональных и биортогональных вейвлеты.

Вейвлеты Вейвлет-разложения, заданные как пара векторов с четной длиной, действительными значениями. LoD - lowpass разложения, и HiD - фильтр высокочастотного разложения. Длины LoD и HiD должно быть равным. Посмотрите wfilters для получения дополнительной информации.

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

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

свернуть все

Вектор разложения вейвлет, возвращенный как вектор. Вектор бухгалтерии l содержит количество коэффициентов по уровням. Вектор разложения и вектор бухгалтерии организованы как на этой схеме разложения уровня 3.

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

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

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

Алгоритмы

Учитывая s сигнала длины N, DWT состоит не более чем из N шагов log2. Начиная с s, первый шаг производит два набора коэффициентов: коэффициенты приближения cA1 и коэффициенты детализации cD1. Свертка s с lowpass LoD и высокочастотный фильтр HiD, с последующим диадическим десятикратным уменьшением (понижающая дискретизация), приводит к приближению и коэффициентам детализации соответственно.

где

  • - Свертка с фильтром X

  • 2 - Downsample (сохранить четные индексированные элементы)

Длина каждого фильтра равна 2 n. Если N = длина (<reservedrangesplaceholder6>), сигналы <reservedrangesplaceholder5> и <reservedrangesplaceholder4> имеют длину N +, 2 <reservedrangesplaceholder2> −1 и коэффициенты cA1 и cD1 имеют длину

пол(N12)+n.

Следующий шаг разделяет коэффициенты приближения, cA1 в двух частях, используя одну и ту же схему, заменяя s на cA1 и получая cA2 и cD2 и так далее.

Вейвлет-разложение s сигнала, анализируемого на уровне j, имеет следующую структуру: [cAj, cDj,..., cD1].

Эта структура содержит, для j = 3, терминальные узлы следующего дерева:

Ссылки

[1] Daubechies, I. Десять лекций по вейвлетам, серия региональных конференций CBMS-NSF по прикладной математике. Филадельфия, Пенсильвания: СИАМ Эд, 1992.

[2] Mallat, S. G. «A Theory for Multirresolution Signal Decomposition: The Wavelet Representation», IEEE Transactions on Pattern Analysis and Machine Intelligence. Том 11, выпуск 7, июль 1989 года, стр. 674-693.

[3] Meyer, Y. Wavelets and Operators. Перевод Д. Х. Сэлинджера. Кембридж, Великобритания: Cambridge University Press, 1995.

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

..
Представлено до R2006a