EngeeDSP.VariableBandwidthFIRFilter
КИХ-фильтр с переменной полосой пропускания.
| Библиотека |
|
Описание
Чтобы реализовать КИХ-фильтр с переменной полосой пропускания, который выполняет фильтрацию каждого канала входного сигнала, выполните следующие действия:
-
Создайте объект EngeeDSP.VariableBandwidthFIRFilter и установите его свойства.
-
Вызовите объект с аргументами, как если бы это была функция.
Чтобы узнать подробнее о том, как работать с системными объектами, см. Системные объекты Engee.
Синтаксис
Создание
-
vbwFIR = EngeeDSP.VariableBandwidthFIRFilter()возвращает объект КИХ-фильтраvbwFIRс переменной полосой пропускания, который независимо фильтрует каждый канал (столбец) входного сигнала при последовательных вызовах алгоритма. Частоту среза фильтра можно настроить во время операции фильтрации. КИХ-фильтр с переменной полосой пропускания проектируется с использованием оконного метода. -
vbwFIR = EngeeDSP.VariableBandwidthFIRFilter(Name=Value)возвращает объект КИХ-фильтраvbwFIRс указанным свойствомName, установленным на указанное значениеValue. Вы можете указать дополнительные аргументы в виде пары имя-значение в любом порядке (Name1=Value1,…,NameN=ValueN). Неуказанные свойства имеют значения по умолчанию.
Аргументы
Входные аргументы
x —
входной сигнал
вектор | матрица
Details
Входной сигнал, заданный в виде вектора или матрицы. Этот системный объект поддерживает входные данные переменного размера. После блокировки объекта вы можете изменить размер каждого входного канала, но не можете изменить количество каналов.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
Выходные аргументы
y —
отфильтрованный выходной сигнал
вектор | матрица
Details
Отфильтрованный выходной сигнал, возвращаемый в виде вектора или матрицы. Размер, тип данных и комплексность выходного сигнала такие же, как у входного сигнала.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
Свойства
#
FilterOrder —
порядок КИХ-фильтра
30 (по умолчанию) | четный положительный скаляр
Details
Порядок КИХ-фильтра, заданный как четный положительный скаляр.
| Типы данных |
|
#
FilterType —
тип характеристики фильтра
"Lowpass" (по умолчанию) | "Highpass" | "Bandpass" | "Bandstop"
Details
Тип характеристики фильтра, заданный как "Lowpass", "Highpass", "Bandpass" или "Bandstop".
#
CutoffFrequency —
частота среза фильтра
512 (по умолчанию) | положительный скаляр
Details
Частота среза фильтра в Гц или в нормализованных единицах частоты, заданная как положительный скаляр.
Если для свойства NormalizedFrequency установлено значение:
-
false— значение частоты среза указывается в Гц. Значение должно быть меньше половины значения свойства SampleRate. -
true— значение частоты среза указывается в нормализованных единицах частоты. Значение должно быть положительным скаляром меньше1.0.
Зависимости
Чтобы использовать это свойство, установите для свойства FilterType значение Lowpass или Highpass.
| Типы данных |
|
#
Window —
оконная функция
"Hann" (по умолчанию) | "Hamming" | "Chebyshev" | "Kaiser"
Details
Оконная функция для проектирования КИХ-фильтра, заданная как "Hann", "Hamming", "Chebyshev" или "Kaiser".
#
CenterFrequency —
центральная частота фильтра
11025 (по умолчанию) | положительный скаляр
Details
Центральная частота фильтра в Гц или в нормализованных единицах частоты, заданная как положительный скаляр.
Если для свойства NormalizedFrequency установлено значение:
-
false— значение центральной частоты указывается в Гц. Значение должно быть меньше половины значения свойства SampleRate. -
true— значение центральной частоты указывается в нормализованных единицах частоты. Значение должно быть положительным скаляром меньше1.0.
Зависимости
Чтобы использовать это свойство, установите для свойства FilterType значение Bandpass или Bandstop.
| Типы данных |
|
#
Bandwidth —
полоса пропускания фильтра
7680 (по умолчанию) | положительный скаляр
Details
Полоса пропускания фильтра в Гц или в нормализованных единицах частоты, заданная как положительный скаляр.
Если для свойства NormalizedFrequency установлено значение:
-
false— значение полосы пропускания указывается в Гц. Значение должно быть меньше половины значения свойства SampleRate. -
true— значение полосы пропускания указывается в нормализованных единицах частоты. Значение должно быть положительным скаляром меньше1.0.
Зависимости
Чтобы использовать это свойство, установите для свойства FilterType значение Bandpass или Bandstop.
| Типы данных |
|
#
SidelobeAttenuation —
затухание боковых лепестков окна Чебышева
60 (по умолчанию) | положительный скаляр
Details
Затухание боковых лепестков окна Чебышева в дБ, заданное как положительный скаляр.
Зависимости
Чтобы использовать это свойство, установите для свойства Window значение Chebyshev.
| Типы данных |
|
#
NormalizedFrequency —
указание частот в нормализованных единицах
false (по умолчанию) | true
Details
Если вы установите для этого свойства значение:
-
true— частота полосы пропускания фильтра, центральная частота и ширина полосы пропускания фильтра должны быть заданы в нормализованных единицах частоты и их значение должно быть меньше1.0. -
false— частота полосы пропускания фильтра, центральная частота и ширина полосы пропускания фильтра должны быть заданы в Гц. Вы можете указать частоту дискретизации входного сигнала с помощью свойства SampleRate.
| Типы данных |
|
#
SampleRate —
частота дискретизации входного сигнала
44100 (по умолчанию) | положительный скаляр
Details
Частота дискретизации входного сигнала в Гц, заданная как положительный скаляр.
Зависимости
Чтобы использовать это свойство, установите для свойства NormalizedFrequency значение false.
| Типы данных |
|
Алгоритмы
КИХ-преобразования
Details
Все преобразования предполагают наличие фильтра нижних частот длиной .
От фильтра нижних частот к фильтру нижних частот
Рассмотрим идеальный фильтр нижних частот типа «кирпичная стена» с нормированной частотой среза . Выполнив обратное дискретное преобразование Фурье идеальной частотной характеристики и ограничив полученную последовательность длиной , получим импульсную характеристику
-
для :
-
для :
где — вектор окна. Установим коэффициенты фильтра нижних частот на новую частоту среза следующим образом:
-
для :
-
для :
Нет необходимости пересчитывать размер окна каждый раз при настройке частоты среза.
От фильтра нижних частот к фильтру верхних частот
Предположим, что фильтр нижних частот имеет нормированную частоту среза , равную 6 дБ. Фильтр верхних частот с той же частотой среза можно получить, дополнив частотную характеристику фильтра нижних частот:
Взяв обратное дискретное преобразование Фурье от указанной выше характеристики, получим следующие коэффициенты фильтра верхних частот:
-
для :
-
для :
От фильтра нижних частот к полосовому фильтру
Получим полосовой фильтр с центральной частотой , сдвинув частотную характеристику фильтра нижних частот:
Ширина полосы пропускания результирующего полосового фильтра составляет , измеренная между двумя частотами среза полосового фильтра. Эквивалентные коэффициенты полосового фильтра тогда будут следующими:
что можно переписать как
От фильтра нижних частот к заграждающему фильтру
Преобразовать фильтр нижних частот в заграждающий фильтр можно, комбинируя преобразования фильтров верхних частот и полосовых фильтров. Сначала создадим полосовой фильтр, сдвинув частотную характеристику фильтра нижних частот, а затем инвертируем ее, чтобы получить заграждающий фильтр с центральной частотой .
В результате получаются следующие коэффициенты:
-
для :
-
для :
Обобщенное преобразование
Вы можете комбинировать эти преобразования, чтобы преобразовать фильтр нижних частот в фильтр нижних частот, фильтр верхних частот, полосовой фильтр или заграждающий фильтр с произвольными частотами среза.
Например, чтобы преобразовать фильтр нижних частот с частотой среза в фильтр верхних частот с частотой среза , сначала применяется преобразование из фильтра нижних частот в фильтр нижних частот, чтобы получить фильтр нижних частот с частотой среза , а затем применяется преобразование из фильтра нижних частот в фильтр верхних частот, чтобы получить фильтр верхних частот с частотой среза .
Чтобы получить полосовой фильтр с центральной частотой и полосой пропускания , сначала применяется преобразование из фильтра нижних частот в фильтр нижних частот, чтобы перейти от фильтра нижних частот с частотой среза к фильтру нижних частот с частотой среза , а затем применяется преобразование из фильтра нижних частот в полосовой фильтр, чтобы получить желаемый полосовой фильтр. Аналогичный подход можно использовать и для заграждающего фильтра.