Документация Engee

EngeeDSP.VariableBandwidthIIRFilter

БИХ-фильтр с переменной полосой пропускания.

Библиотека

EngeeDSP

Описание

Чтобы реализовать БИХ-фильтр с переменной полосой пропускания, который выполняет фильтрацию каждого канала входного сигнала, выполните следующие действия:

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

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

Чтобы узнать подробнее о том, как работать с системными объектами, см. Системные объекты Engee.

Синтаксис

Создание

  • vbwIIR = EngeeDSP.VariableBandwidthIIRFilter() — возвращает объект БИХ-фильтра vbwIIR с переменной полосой пропускания, который независимо фильтрует каждый канал (столбец) входного сигнала при последовательных вызовах алгоритма. Этот системный объект использует заданную реализацию БИХ-фильтра. Частоту полосы пропускания фильтра можно настроить во время операции фильтрации. БИХ-фильтр с переменной полосой пропускания формируется с использованием эллиптического метода. Фильтр настраивается с помощью спектральных преобразований БИХ на основе фильтров с полным пропусканием.

  • vbwIIR = EngeeDSP.VariableBandwidthIIRFilter(Name=Value) — возвращает объект БИХ-фильтра vbwIIR с заданными свойствами в виде пары Name=Value, где Name — имя свойства, а Value — соответствующее значение. Можно указать несколько пар «имя-значение», порядок пар не имеет значения. Неуказанные свойства сохраняют свои значения по умолчанию.

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

  • y = vbwIIR(x) — фильтрует входной сигнал x и выводит отфильтрованные значения y. Объект БИХ-фильтра с переменной полосой пропускания работает с каждым каналом отдельно, то есть независимо фильтрует каждый столбец входного сигнала при последовательных вызовах алгоритма.

Аргументы

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

x — входной сигнал
скаляр | вектор | матрица

Details

Входной сигнал, заданный как скаляр, вектор или матрица. Этот системный объект поддерживает входные данные переменного размера. После блокировки объекта вы можете изменить размер каждого входного канала, но не можете изменить количество каналов.

Типы данных

Float32, Float64

Поддержка комплексных чисел

Да

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

y — отфильтрованный выходной сигнал
скаляр | вектор | матрица

Details

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

Типы данных

Float32, Float64

Поддержка комплексных чисел

Да

Свойства

# FilterType — тип характеристики фильтра
"Lowpass" (по умолчанию) | "Highpass" | "Bandpass" | "Bandstop"

Details

Тип характеристики фильтра, заданный как "Lowpass", "Highpass", "Bandpass" или "Bandstop".

# FilterOrder — порядок БИХ-фильтра
8 (по умолчанию) | скаляр

Details

Порядок БИХ-фильтра, заданный как положительный целочисленный скаляр.

Типы данных

Int64, Float32, Float64

# PassbandFrequency — частота полосы пропускания фильтра
512 (по умолчанию) | скаляр

Details

Частота полосы пропускания фильтра в Гц или в нормализованных единицах частоты, заданная как положительный скаляр.

Если для свойства NormalizedFrequency установлено значение:

  • false — значение частоты полосы пропускания указывается в Гц. Значение должно быть меньше половины значения свойства SampleRate.

  • true — значение частоты полосы пропускания указывается в нормализованных единицах частоты. Значение должно быть положительным скаляром меньше 1.0.

Зависимости

Чтобы использовать это свойство, установите для свойства FilterType значение Lowpass или Highpass.

Типы данных

Float32, Float64

# CenterFrequency — центральная частота фильтра
11025 (по умолчанию) | скаляр

Details

Центральная частота фильтра в Гц или в нормализованных единицах частоты, заданная как положительный скаляр.

Если для свойства NormalizedFrequency установлено значение:

  • false — значение центральной частоты указывается в Гц. Значение должно быть меньше половины значения свойства SampleRate.

  • true — значение центральной частоты указывается в нормализованных единицах частоты. Значение должно быть положительным скаляром меньше 1.0.

Зависимости

Чтобы использовать это свойство, установите для свойства FilterType значение Bandpass или Bandstop.

Типы данных

Float32, Float64

# Bandwidth — полоса пропускания фильтра
7680 (по умолчанию) | скаляр

Details

Полоса пропускания фильтра в Гц или в нормализованных единицах частоты, заданная как положительный скаляр.

Если для свойства NormalizedFrequency установлено значение:

  • false — значение полосы пропускания указывается в Гц. Значение должно быть меньше половины значения свойства SampleRate.

  • true — значение полосы пропускания указывается в нормализованных единицах частоты. Значение должно быть положительным скаляром меньше 1.0.

Зависимости

Чтобы использовать это свойство, установите для свойства FilterType значение Bandpass или Bandstop.

Типы данных

Float32, Float64

# PassbandRipple — неравномерность полосы пропускания фильтра
1 (по умолчанию) | скаляр

Details

Неравномерность полосы пропускания фильтра в дБ, заданная как положительный скаляр.

Типы данных

Float32, Float64

# StopbandAttenuation — ослабление полосы задерживания фильтра
60 (по умолчанию) | скаляр

Details

Ослабление полосы задерживания фильтра в дБ, заданное как положительный скаляр.

Типы данных

Float32, Float64

# NormalizedFrequency — указание частот в нормализованных единицах
false (по умолчанию) | true

Details

Если вы установите для этого свойства значение:

  • true — частота полосы пропускания фильтра, центральная частота и ширина полосы пропускания фильтра должны быть заданы в нормализованных единицах частоты, а их значения должны быть меньше 1.0.

  • false — частота полосы пропускания фильтра, центральная частота и ширина полосы пропускания фильтра должны быть заданы в Гц. Вы можете указать частоту дискретизации входного сигнала с помощью свойства SampleRate.

Типы данных

Bool

# SampleRate — частота дискретизации входного сигнала
44100 (по умолчанию) | скаляр

Details

Частота дискретизации входного сигнала в Гц, заданная как положительный скаляр.

Зависимости

Чтобы использовать это свойство, установите для свойства NormalizedFrequency значение false.

Типы данных

Float32, Float64

Методы

Общие для всех системных объектов

step!

Запустить алгоритм работы системного объекта

release!

Разрешить изменение значения свойства системного объекта

reset!

Сброс внутренних состояний системного объекта

Алгоритмы

Этот фильтр обеспечивает преобразование частоты. Алгоритм рассчитывает прототип низкочастотного БИХ-фильтра с помощью эллиптического метода по заданным значениям порядка, частоты полосы пропускания, неравномерности в полосе пропускания и затухания в полосе задерживания. Неравномерность в полосе пропускания и затухание в полосе задерживания равны значениям свойств PassbandRipple и StopbandAttenuation. Алгоритм устанавливает частоту полосы пропускания прототипа фильтра равной 0.5. Если свойство FilterType имеет значение "Lowpass" или "Highpass", порядок фильтра равен значению FilterOrder. Если свойство FilterType имеет значение "Bandpass" или "Bandstop", порядок фильтра равен FilterOrder / 2. Прототип представляет собой каскад секций второго порядка с транспонированной прямой формой II (биквадратный фильтр). Прототип фильтра преобразуется в требуемый фильтр с использованием алгоритмов цифрового преобразования частот. Каждая секция второго порядка прототипа преобразуется отдельно. Если FilterType имеет значение "Lowpass" или "Highpass", то результирующий фильтр представляет собой каскад секций второго порядка с транспонированной прямой формой II. Если FilterType имеет значение "Bandpass" или "Bandstop", то результирующий фильтр представляет собой каскад секций четвертого порядка с транспонированной прямой формой II.

Литература

  1. A. G. Constantinides. Spectral transformations for digital filters, Proc. Inst. Elect. Eng. Vol. 117, No. 8, 1970, pp. 1585–1590.