dsp.DyadicAnalysisFilterBank

Двухместный аналитический набор фильтров

Описание

dsp.DyadicAnalysisFilterBank Система object™ разлагает широкополосный сигнал на набор поддиапазонов с меньшими полосами пропускания и более медленными частотами дискретизации. Системный объект использует серию highpass и КИХ-фильтров lowpass, чтобы обеспечить аппроксимированные разложения частоты полосы октавы входа. Каждый фильтр выход прорежен на коэффициент два. С соответствующими аналитическими фильтрами и древовидной структурой, двухместный аналитический набор фильтров является дискретным вейвлетом преобразовывает (DWT) или дискретным пакетом вейвлета преобразовывает (DWPT).

Получить аппроксимированные разложения частоты полосы октавы входа:

  1. Создайте dsp.DyadicAnalysisFilterBank объект и набор его свойства.

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

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?

Создание

Описание

пример

dydan = dsp.DyadicAnalysisFilterBank создает двухместный аналитический объект набора фильтров, dydan, это вычисляет уровень два дискретных вейвлета преобразовывает (DWT) входа вектор-столбца. Для 2D матричного входа объект преобразовывает столбцы с помощью третьего порядка Daubechies экстремальный вейвлет фазы. Длина входа по первому измерению должна быть кратной 4.

пример

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

Свойства

развернуть все

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

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

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

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

ФильтрУстановка в качестве примераСинтаксис для аналитических фильтров
ХаарN/A[Lo_D,Hi_D]=wfilters('haar');
Daubechies экстремальная фазаWaveletOrder=3;[Lo_D,Hi_D]=wfilters('db3');
Symlets (Daubechies меньше всего - асимметричный)WaveletOrder=4;[Lo_D,Hi_D]=wfilters('sym4');
Coiflets WaveletOrder=1;[Lo_D,Hi_D]=wfilters('coif1');
БиоортогональныйFilterOrder='[3/1]';[Lo_D,Hi_D,Lo_R,Hi_R]=... wfilters('bior3.1');
Биоортогональный реверсFilterOrder='[3/1]';[Lo_D,Hi_D,Lo_R,Hi_R]=... wfilters('rbior3.1');
Дискретный МейерN/A[Lo_D,Hi_D]=wfilters('dmey');

Задайте вектор из КИХ-коэффициентов фильтра lowpass в степенях z-1. Используйте полуленточный фильтр, который передает диапазон частот, зашел в фильтр, заданный в CustomHighpassFilter свойство. Значение по умолчанию задает третий порядок Daubechies экстремальная фаза, масштабирующая (lowpass) фильтр.

Зависимости

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

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

Задайте вектор из highpass КИХ-коэффициентов фильтра в степенях z-1. Используйте полуленточный фильтр, который передает диапазон частот, зашел в фильтр, заданный в CustomLowpassFilter свойство. Значение по умолчанию задает 3-й порядок Daubechies экстремальный вейвлет фазы (highpass) фильтр.

Зависимости

Это свойство применяется, когда вы устанавливаете 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

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

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

Задайте структуру набора фильтров как Asymmetric или Symmetric. Асимметричная структура анализирует только фильтр lowpass выход от каждого уровня. Симметричная структура анализирует highpass, и lowpass фильтруют выходные параметры от каждого уровня. Если аналитические фильтры масштабируют (lowpass) и вейвлет (highpass) фильтры, асимметричная структура является дискретным вейвлетом, преобразовывают, в то время как симметричная структура является дискретным пакетом вейвлета, преобразовывают.

Когда этим свойством является Symmetric, выход имеет 2N поддиапазоны каждый размер M/2N. В этом случае M является длиной входа по первому измерению, и N является значением NumLevels свойство. Когда этим свойством является Asymmetric, выход имеет N +1 поддиапазон. Следующее уравнение дает продолжительность выхода в k th поддиапазон в асимметричном случае:

Mk={M2k1kNM2Nk=N+1

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

Синтаксис

Описание

пример

y = dydan(x) вычисляет разложение поддиапазона входа x и выходные параметры двухместное разложение поддиапазона в y как один конкатенированный вектор-столбец или матрица коэффициентов.

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

развернуть все

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

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

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

развернуть все

Двухместное разложение поддиапазона выходной параметр, возвращенный как вектор-столбец или матрица. Элементы y упорядочены с поддиапазоном самой высокой частоты, сначала сопровождаемым поддиапазонами в уменьшающейся частоте.

Когда TreeStructure установлен в Symmetric, выход имеет 2N поддиапазоны каждый размер M/2N. В этом случае M является длиной входа по первому измерению, и N является значением NumLevels свойство. Когда TreeStructure установлен в Asymmetric, выход имеет N +1 поддиапазон. Следующее уравнение дает продолжительность выхода в k th поддиапазон в асимметричном случае:

Mk={M2k1kNM2Nk=N+1

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

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

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

release(obj)

развернуть все

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

Примеры

свернуть все

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

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

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]);

Постройте сигналы denoised и оригинал.

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

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

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

Входная длина частоты дискретизации 1 кГц 1024

t = 0:.001:1.023; 
x = square(2*pi*30*t);
xn = x' + 0.08*randn(length(x),1);

Асимметричная структура по умолчанию с порядком 3 экстремальный вейвлет фазы

dydan = dsp.DyadicAnalysisFilterBank;
Y = dydan(xn);

Уровень 2 уступает, 3 поддиапазона (два детализируют одно приближение), частота Найквиста составляет 500 Гц

D1 = Y(1:512); % subband approx. [250, 500] Hz 
D2 = Y(513:768); % subband approx. [125, 250] Hz
Approx = Y(769:1024); % subband approx. [0,125] Hz

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

Входная длина частоты дискретизации 1 кГц 1024.

t = 0:.001:1.023; 
x = square(2*pi*30*t);
xn = x' + 0.08*randn(length(x),1);
dydan = dsp.DyadicAnalysisFilterBank('TreeStructure',...
'Symmetric');
Y = dydan(xn);
D1 = Y(1:256); % subband approx. [375,500] Hz
D2 = Y(257:512); % subband approx. [250,375] Hz
D3 = Y(513:768); % subband approx. [125,250] Hz
Approx = Y(769:1024); % subband approx. [0, 125] Hz

Алгоритмы

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

Двухместный аналитический объект набора фильтров всегда конкатенирует поддиапазоны в вектор отдельного столбца для входа вектор-столбца, или в столбцы матрицы для матричного входа. Это поведение соответствует поведению блока, когда вы устанавливаете параметр Output на Single port.

Смотрите также

Объекты

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