dsp. DyadicAnalysisFilterBank

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

Описание

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

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

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

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

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

Создание

Синтаксис

dydan = dsp.DyadicAnalysisFilterBank
dydan = dsp.DyadicAnalysisFilterBank(Name,Value)

Описание

пример

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

пример

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

Свойства

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

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

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

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

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

ФильтрУстановка в качестве примераСинтаксис для аналитических фильтров
ХаарНет данных[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');
Дискретный МейерНет данных[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

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

Для версий ранее, чем R2016b, используйте функцию step, чтобы запустить алгоритм Системного объекта. Аргументы к step являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.

Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Синтаксис

y = dydan(x)

Описание

пример

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

Примечание: Этот пример запускается только в 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