EngeeDSP.NotchPeakFilter
Настраиваемый режекторный и узкополосный БИХ-фильтр второго порядка.
| Библиотека |
|
| Блок |
Описание
Чтобы реализовать режекторный или узкополосный БИХ-фильтр второго порядка, выполните следующие действия:
-
Создайте объект EngeeDSP.NotchPeakFilter и установите его свойства.
-
Вызовите объект с аргументами, как если бы это была функция.
Чтобы узнать подробнее о том, как работать с системными объектами, см. Системные объекты Engee.
Синтаксис
Создание
-
npFilter = EngeeDSP.NotchPeakFilter()возвращает режекторный и узкополосный БИХ-фильтр второго порядка, который независимо фильтрует каждый канал входного сигнала во времени, используя заданную центральную частоту и полосу пропускания3дБ. -
npFilter = EngeeDSP.NotchPeakFilter(Specification="Quality factor and center frequency")указывается добротность (Q-фактор) режекторного или узкополосного фильтра вместо полосы пропускания3дБ. -
npFilter = EngeeDSP.NotchPeakFilter(Specification="Coefficients")указываются значения коэффициентов, которые напрямую влияют на полосу пропускания и центральную частоту, а не параметры проектирования в Гц. Это исключает необходимость тригонометрических вычислений при настройке характеристик. -
npFilter = EngeeDSP.NotchPeakFilter(Name=Value)возвращает режекторный или узкополосный БИХ-фильтр с указанным свойствомName, установленным на указанное значениеValue. Вы можете указать дополнительные аргументы в виде пары имя-значение в любом порядке (Name1=Value1,…,NameN=ValueN). Неуказанные свойства имеют значения по умолчанию.Пример:
npFilter = EngeeDSP.NotchPeakFilter(CenterFrequency=5000,Bandwidth=500)
Использование
-
Yn = npFilter(x)фильтрует каждый канал (столбец) входного сигналаx, создавая выходной сигнал режекторного фильтраYn. -
Yn, Yp = npFilter(x)фильтрует каждый канал (столбец) входного сигналаx, создавая выходной сигнал режекторного фильтраYnи выходной сигнал узкополосного фильтраYp.
Аргументы
Входные аргументы
x —
входной сигнал
вектор | матрица
Details
Входной сигнал, заданный в виде вектора или матрицы.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
Выходные аргументы
Yn —
выходной сигнал режекторного фильтра
вектор | матрица
Details
Выходной сигнал режекторного фильтра, возвращаемый в виде вектора или матрицы.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
Yp —
выходной сигнал узкополосного фильтра
вектор | матрица
Details
Выходной сигнал узкополосного фильтра, возвращаемый в виде вектора или матрицы.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
Свойства
#
Specification —
характеристики фильтра
"Bandwidth and center frequency" (по умолчанию) | "Quality factor and center frequency" | "Coefficients"
Details
Укажите свойства, которые блок использует для проектирования фильтра:
-
"Bandwidth and center frequency"— проектирование фильтра с использованием свойств Bandwidth и CenterFrequency или NormalizedBandwidth и NormalizedCenterFrequency. -
"Coefficient"— проектирование фильтра с использованием свойств BandwidthCoefficient и CenterFrequencyCoefficient. -
"Quality factor and center frequency"— проектирование фильтра с использованием свойств QualityFactor и CenterFrequency или NormalizedCenterFrequency.
#
Bandwidth —
полоса пропускания 3 дБ, в Гц
2205 (по умолчанию) | положительный скаляр
Details
Полоса пропускания 3 дБ фильтра, заданная в виде положительного скаляра в Гц.
Зависимости
Чтобы использовать это свойство, установите для свойства Specification значение "Bandwidth and center frequency", а для свойства NormalizedFrequency значение false.
#
NormalizedBandwidth —
полоса пропускания 3 дБ, в нормализованных единицах
0.1 (по умолчанию) | положительный скаляр меньше 1.0
Details
Полоса пропускания 3 дБ фильтра, заданная в виде положительного скаляра меньше 1.0 в нормализованных единицах.
Если при создании объекта для свойства NormalizedFrequency установлено значение true и не задана полоса пропускания, то объект автоматически установит полосу пропускания по умолчанию в нормализованных единицах частоты, используя частоту дискретизации по умолчанию 44100 Гц.
npFilter = EngeeDSP.NotchPeakFilter(NormalizedFrequency = true)
NotchPeakFilter:
Specification=Bandwidth and center frequency
NormalizedBandwidth=0.1
NormalizedCenterFrequency=0.5
SampleRate=44100
NormalizedFrequency=true
FilterOutput=NotchAndPeak
Если для свойства NormalizedFrequency установлено значение true после создания объекта, то необходимо указать ширину полосы пропускания в нормализованных единицах перед запуском алгоритма объекта.
npFilter = EngeeDSP.NotchPeakFilter()
NotchPeakFilter:
Specification=Bandwidth and center frequency
Bandwidth=2205
CenterFrequency=11025
SampleRate=44100
NormalizedFrequency=false
FilterOutput=NotchAndPeak
Чтобы указать нормализованное значение частоты, установите для свойства NormalizedFrequency значение true и вручную преобразуйте значение частоты в Гц в нормализованное значение, используя половину частоты дискретизации входного сигнала в Гц. Например, если входная частота дискретизации составляет 44100 Гц, то соответствующее значение полосы пропускания в нормализованных единицах равно .
npFilter.NormalizedFrequency = true
npFilter.NormalizedBandwidth = 2205/(44100/2)
npFilter
NotchPeakFilter:
Specification=Bandwidth and center frequency
NormalizedBandwidth=0.1
NormalizedCenterFrequency=0.5
SampleRate=44100
NormalizedFrequency=true
FilterOutput=NotchAndPeak
Зависимости
Чтобы использовать это свойство, установите для свойства Specification значение "Bandwidth and center frequency", а для свойства NormalizedFrequency значение true.
#
CenterFrequency —
центральная частота режекторного или узкополосного фильтра, в Гц
11025 (по умолчанию) | положительный скаляр
Details
Центральная частота фильтра, заданная в виде положительного скаляра в Гц.
Зависимости
Чтобы использовать это свойство, установите для свойства Specification значение "Bandwidth and center frequency", а для свойства NormalizedFrequency значение false.
#
NormalizedCenterFrequency —
центральная частота режекторного или узкополосного фильтра, в нормализованных единицах
0.5 (по умолчанию) | положительный скаляр меньше 1.0
Details
Центральная частота режекторного или узкополосного фильтра, заданная в виде положительного скаляра меньше 1.0 в нормализованных единицах.
Если при создании объекта для свойства NormalizedFrequency установлено значение true и не задана центральная частота, то объект автоматически установит центральную частоту по умолчанию в нормализованных единицах частоты, используя частоту дискретизации по умолчанию 44100 Гц.
npFilter = EngeeDSP.NotchPeakFilter(NormalizedFrequency = true)
NotchPeakFilter:
Specification=Bandwidth and center frequency
NormalizedBandwidth=0.1
NormalizedCenterFrequency=0.5
SampleRate=44100
NormalizedFrequency=true
FilterOutput=NotchAndPeak
Если для свойства NormalizedFrequency установлено значение true после создания объекта, то необходимо указать центральную частоту в нормализованных единицах перед запуском алгоритма объекта.
npFilter = EngeeDSP.NotchPeakFilter()
NotchPeakFilter:
Specification=Bandwidth and center frequency
Bandwidth=2205
CenterFrequency=11025
SampleRate=44100
NormalizedFrequency=false
FilterOutput=NotchAndPeak
Чтобы указать нормализованное значение частоты, установите для свойства NormalizedFrequency значение true и вручную преобразуйте значение частоты в Гц в нормализованное значение, используя половину частоты дискретизации входного сигнала в Гц. Например, если входная частота дискретизации составляет 44100 Гц, то соответствующее значение центральной частоты в нормализованных единицах равно .
npFilter.NormalizedFrequency = true
npFilter.NormalizedCenterFrequency = 11025/(44100/2)
npFilter
NotchPeakFilter:
Specification=Bandwidth and center frequency
NormalizedBandwidth=0.1
NormalizedCenterFrequency=0.5
SampleRate=44100
NormalizedFrequency=true
FilterOutput=NotchAndPeak
Зависимости
Чтобы использовать это свойство, установите для свойства Specification значение "Bandwidth and center frequency" или "Quality factor and center frequency", а для свойства NormalizedFrequency значение true.
#
QualityFactor —
добротность режекторного или узкополосного фильтра
5 (по умолчанию) | положительный скаляр
Details
Добротность (Q-фактор) режекторного или узкополосного фильтра, заданная в виде вещественного положительного скаляра. Добротность определяется как отношение центральной частоты к ширине полосы пропускания. Чем больше добротность, тем уже полоса подавления или пропускания.
Зависимости
Чтобы использовать это свойство, установите для свойства Specification значение "Quality factor and center frequency".
#
SampleRate —
частота дискретизации входного сигнала, в Гц
44100 (по умолчанию) | положительный скаляр
Details
Частота дискретизации входного сигнала, заданная в виде скаляра в Гц.
Зависимости
Чтобы использовать это свойство, установите для свойства Specification значение "Bandwidth and center frequency" или "Quality factor and center frequency", а для свойства NormalizedFrequency значение false.
#
BandwidthCoefficient —
коэффициент пропускной способности
0.726554 (по умолчанию) | вещественный скаляр в диапазоне [−1, 1]
Details
Коэффициент, определяющий полосу пропускания 3 дБ, заданный в виде скаляра в диапазоне от −1 до 1:
-
−1соответствует максимальной полосе пропускания3дБ (одна четвертая частоты дискретизации входного сигнала); -
1соответствует минимальной полосе пропускания (0Гц, т.е. частотно-независимый фильтр).
Зависимости
Чтобы использовать это свойство, установите для свойства Specification значение "Coefficients".
#
CenterFrequencyCoefficient —
коэффициент пропускной способности
0.0 (по умолчанию) | вещественный скаляр в диапазоне [−1, 1]
Details
Коэффициент, определяющий центральную частоту фильтра, заданный в виде скаляра в диапазоне от −1 до 1:
-
−1соответствует минимальной центральной частоте (0Гц); -
1соответствует максимальной центральной частоте (половина частоты дискретизации входного сигнала).
Зависимости
Чтобы использовать это свойство, установите для свойства Specification значение "Coefficients".
#
NormalizedFrequency —
опция задания частот в нормализованных единицах
false (по умолчанию) | true
Details
Опция задания частот в нормализованных единицах:
-
false— значения полосы пропускания и центральной частоты указываются в Гц и должны быть меньше половины значения SampleRate; -
true— значения полосы пропускания и центральной частоты указываются в нормализованных единицах частоты. Значения должны быть положительными скалярами меньше1.0.
Зависимости
Чтобы использовать это свойство, установите для свойства Specification значение "Bandwidth and center frequency" или "Quality factor and center frequency".
#
FilterOutput —
выбор фильтра для вывода данных
"NotchAndPeak" (по умолчанию) | "Notch" | "Peak"
Details
Выбор выходных данных:
-
"NotchAndPeak"— выходной сигнал после прохождения режекторного и узкополосного фильтра; -
"Notch"— выходной сигнал после прохождения режекторного фильтра; -
"Peak"— выходной сигнал после прохождения узкополосного фильтра.
Алгоритмы
Уравнение для проекта узкополосного фильтра выглядит следующим образом:
Уравнение для проекта режекторного фильтра выглядит следующим образом:
В этих уравнениях
где
-
— центральная частота в Гц;
-
— частота дискретизации в Гц;
-
— полоса пропускания
3дБ в Гц.
Обратите внимание, что эти два фильтра дополняют друг друга:
Их можно переписать как
где — частотно-независимый фильтр второго порядка:
Фильтр реализован следующим образом:
На рисунке:
Обратите внимание, что зависит только от центральной частоты, а — только от полосы пропускания 3 дБ.