dsp.DyadicSynthesisFilterBank

Восстановите сигналы из поддиапазонов

Описание

The dsp.DyadicSynthesisFilterBank Системная object™ восстанавливает сигналы из поддиапазонов с меньшими полосами пропускания и более низкими скоростями дискретизации. Группа фильтров использует серию фильтров highpass и lowpass конечной импульсной характеристики, чтобы неоднократно восстанавливать сигнал.

Чтобы восстановить сигналы из поддиапазонов с меньшими полосами пропускания и более низкими скоростями дискретизации:

  1. Создайте dsp.DyadicSynthesisFilterBank Объекту и установите его свойства.

  2. Вызывайте объект с аргументами, как будто это функция.

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

пример

dydsyn = dsp.DyadicSynthesisFilterBank возвращает блок синтезирующих фильтров, dydsyn, который восстанавливает сигнал из его поддиапазонов с меньшими полосами пропускания и меньшими скоростями дискретизации.

dydsyn = dsp.DyadicSynthesisFilterBank(Name,Value) возвращает объект банка фильтров диадического синтеза с каждым набором свойств к заданному значению.

Свойства

расширить все

Если не указано иное, свойства являются нетронутыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируются, когда вы вызываете их, и release функция разблокирует их.

Если свойство настраивается, можно изменить его значение в любой момент.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Использование Системных объектов.

Укажите тип фильтра, используемого для определения высокоскоростных и lowpass конечных импульсных характеристик в группе фильтров, как один из Custom, Haar, Daubechies, Symlets, Coiflets, Biorthogonal, Reverse Biorthogonal, или Discrete Meyer. Если вы задаете это свойство равным Custom, а CustomLowpassFilter и CustomHighpassFilter свойства задают коэффициенты фильтра. В противном случае объект использует wfilters (Wavelet Toolbox) для создания фильтров. В зависимости от фильтра, WaveletOrder или может применяться свойство FilterOrder. Список поддерживаемых вейвлеты см. в следующей таблице.

ФильтрОбразец настройки для свойств спецификации связанного фильтраСоответствующий синтаксис функции Wavelet Toolbox™
HaarНичегоwfilters('haar')
DaubechiesH.WaveletOrder = 4wfilters('db4')
SymletsH.WaveletOrder = 3wfilters('sym3')
CoifletsH.WaveletOrder = 1wfilters('coif1')
BiorthogonalH.FilterOrder = '[3/1]'wfilters('bior3.1')
Reverse BiorthogonalH.FilterOrder = '[3/1]'wfilters('rbior3.1')
Discrete MeyerНичегоwfilters('dmey')

В порядок автоматического проектирования вейвлет-основанных фильтров установите продукт Wavelet Toolbox. В противном случае используйте CustomLowpassFilter и CustomHighpassFilter свойства для задания lowpass и highpass конечной импульсной характеристики фильтров.

Задайте вектор коэффициентов lowpass конечной импульсной характеристики в нисходящих степенях z. Используйте полупериодический фильтр, который пропускает полосу, остановленный фильтром, заданным в CustomHighpassFilter свойство. Чтобы идеально восстановить сигнал, разложенный dsp.DyadicAnalysisFilterBank объект, проектируйте фильтры в наборе синтезирующих фильтров, чтобы идеально восстановить выходы набора анализирующих фильтров. В противном случае реконструкция несовершенна. Значения по умолчанию этого свойства задают идеальный фильтр реконструкции для настроек по умолчанию банка фильтров анализа (на основе вейвлета Daubechies третьего порядка).

Зависимости

Это свойство применяется, когда вы устанавливаете Filter свойство к Custom.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Задайте вектор коэффициентов highpass конечной импульсной характеристики filter в нисходящих степенях z. Используйте полупериодический фильтр, который пропускает полосу, остановленный фильтром, заданным в CustomLowpassFilter свойство. Чтобы идеально восстановить сигнал, разложенный dsp.DyadicAnalysisFilterBank объект, проектируйте фильтры в наборе синтезирующих фильтров, чтобы идеально восстановить выходы набора анализирующих фильтров. В противном случае реконструкция несовершенна. Значения по умолчанию этого свойства задают идеальный фильтр реконструкции для настроек по умолчанию банка фильтров анализа (на основе вейвлета Daubechies третьего порядка).

Зависимости

Это свойство применяется, когда вы устанавливаете Filter свойство к Custom.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Задайте порядок вейвлета, выбранного в Filter свойство.

Зависимости

Это свойство применяется, когда вы устанавливаете Filter свойство ортогонального вейвлета: Daubechies (Daubechies экстремальная фаза), Symlets (Daubechies наименее-асимметричный), или Coiflets.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi

Задайте порядок вейвлета для стадии синтезирующего фильтра следующим образом:

  • Первый порядок: '[1/1]', '[1/3]', или '[1/5]'.

  • Второй порядок: '[2/2]', '[2/4]', '[2/6]', или '[2/8]'.

  • Третий порядок: '[3/1]', '[3/3]', '[3/5]', '[3/7]', или '[3/9]'.

  • Четвертый порядок: '[4/4]'.

  • Пятый порядок: '[5/5]'.

  • Шестой порядок: '[6/8]'.

Зависимости

Это свойство применяется, когда вы устанавливаете Filter свойство к Biorthogonal или Reverse Biorthogonal.

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

Задайте количество уровней банка фильтров в виде скалярного целого числа. Асимметричная структура N -level имеет  N + 1 входных поддиапазонов, а симметричная структура N -level - 2N входные поддиапазоны.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Задайте структуру группы фильтров следующим Asymmetric или Symmetric. В асимметричной структуре вход низкочастотного поддиапазона к каждому уровню является выходом предыдущего уровня, в то время как вход высокочастотного поддиапазона к каждому уровню является входом к группе фильтров. В симметрической структуре как низко-, так и высокочастотный поддиапазон, входы к каждому уровню, являются выходами с предыдущего уровня.

Использование

Синтаксис

Описание

пример

y = dydsyn(x) восстанавливает входной параметр конкатенированного поддиапазона x для вывода y. Каждый столбец входа x содержит поддиапазоны для независимого сигнала. Верхние строки содержат высокочастотные поддиапазоны, а нижние - низкочастотные поддиапазоны.

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

расширить все

Вход данных, заданный как вектор-столбец или матрица. Каждый столбец входа x содержит поддиапазоны для независимого сигнала. Верхние строки содержат высокочастотные поддиапазоны, а нижние - низкочастотные поддиапазоны. Количество строк x должно быть кратно 2N, где N - значение NumLevels свойство.

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

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

расширить все

Восстановленный сигнал, возвращенный как вектор-столбец или матрица.

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

Функции объекта

Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем obj, используйте следующий синтаксис:

release(obj)

расширить все

stepЗапуск алгоритма системного объекта
releaseОтпустите ресурсы и допустите изменения в значениях свойств системного объекта и входных характеристиках
resetСброс внутренних состояний Системного объекта

Примеры

свернуть все

Примечание.Этот пример выполняется только в R2016b или более поздней версии. Если вы используете более ранний релиз, замените каждый вызов функции на эквивалентный step синтаксис. Например, myObject (x) становится шагом (myObject, x).

Денуазируйте вход квадратной волны с помощью диадического анализа и банков синтезирующих фильтров.

t = 0:.0001:.0511;
x= square(2*pi*30*t);
xn = x' + 0.08*randn(length(x),1);
dydanl = dsp.DyadicAnalysisFilterBank;

Коэффициенты фильтра соответствуют haar вейвлет.

dydanl.CustomLowpassFilter = [1/sqrt(2) 1/sqrt(2)];
dydanl.CustomHighpassFilter = [-1/sqrt(2) 1/sqrt(2)];
dydsyn = dsp.DyadicSynthesisFilterBank;
dydsyn.CustomLowpassFilter = [1/sqrt(2) 1/sqrt(2)];
dydsyn.CustomHighpassFilter = [1/sqrt(2) -1/sqrt(2)];
C = dydanl(xn);

Выходы поддиапазона.

C1 = C(1:256); C2 = C(257:384); C3 = C(385:512);

Установите более высокие коэффициенты частоты в нуль, чтобы удалить шум.

x_den = dydsyn([zeros(length(C1),1);...
    zeros(length(C2),1);C3]);

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

subplot(2,1,1), plot(xn); title('Original noisy Signal');
subplot(2,1,2), plot(x_den); title('Denoised Signal');

Figure contains 2 axes. Axes 1 with title Original noisy Signal contains an object of type line. Axes 2 with title Denoised Signal contains an object of type line.

Алгоритмы

Этот объект реализует алгоритм, входы и выходы, описанные на Dyadic Synthesis Filter Bank блочных страниц с описанием. Свойства объекта соответствуют параметрам блоков, кроме:

Объект получает данные только как вектор или матрица конкатенированных поддиапазонов.

Введенный в R2012a