butter
Конструкция фильтра Баттерворта.
| Библиотека |
|
Синтаксис
Вызов функции
-
b,a = butter(n,Wn,ftype)— проектирует цифровой фильтр Баттерворта: фильтр нижних частот, фильтр верхних частот, полосовой или режекторный, в зависимости от значения аргументаftypeи количества элементовWn. Получающиеся конструкции полосового и режекторного фильтров имеют порядок2n.При проектировании БИХ-фильтров с передаточным числом вплоть до 4-го порядка можно столкнуться с численной нестабильностью. Дополнительную информацию о численных проблемах, влияющих на формирование передаточной функции, см. в разделе Передаточные функции и CTF.
-
z,p,k = butter(___,out=3)— проектирует цифровой фильтр Баттерворта и возвращает его нули, полюса и коэффициент усиления. Данный синтаксис может включать любые входные аргументы из предыдущих вариантов. Аргументoutпоказывает, сколько выходных аргументов вернет функция. Если аргументoutне указан, то функция произведет расчет только для двух выходных аргументов.
-
___ = butter(___,"s")— проектирует аналоговый фильтр Баттерворта, используя любой из входных или выходных аргументов в предыдущих синтаксисах.
-
B,A = butter(n,Wn,"ctf")— проектирует цифровой фильтр нижних частот Баттерворта с использованием каскадных передаточных функций второго порядка (Cascaded Transfer Functions, CTF). Функция возвращает матрицы, содержащие полиномиальные коэффициенты знаменателя и числителя передаточной функции фильтра, представленной в виде каскада секций фильтра. Такой подход позволяет создавать БИХ-фильтры с улучшенной численной устойчивостью по сравнению с односекционными передаточными функциями.
-
___ = butter(n,Wn,ftype,"ctf")— проектирует цифровой фильтр Баттерворта нижних частот, верхних частот, полосовой или режекторный фильтр и возвращает представление фильтра в формате CTF. Полученные секции конструкции имеют порядок2(фильтры нижних и верхних частот) или4(полосовые и режекторные фильтры).
Аргументы
Входные аргументы
#
n —
порядок фильтра
целочисленный скаляр
Details
Порядок фильтра, заданный как целочисленный скаляр, меньший или равный 500. Для полосовых и режекторных фильтров аргумент n представляет собой половину порядка фильтра.
| Типы данных |
|
#
Wn —
частота среза
скаляр | двухэлементный вектор
Details
Частота среза, заданная как скаляр или двухэлементный вектор. Частота среза — это частота, на которой амплитудно-частотная характеристика фильтра равна .
-
Если
Wn— скаляр, то функцияbutterпроектирует фильтр нижних или верхних частот с частотой срезаWn.Если
Wn— двухэлементный вектор[w1,w2], гдеw1 < w2, то функцияbutterпроектирует полосовой или режекторный фильтр с нижней частотой срезаw1и и верхней частотой срезаw2. -
Для цифровых фильтров частоты среза должны лежать в диапазоне от
0до1, где1соответствует частоте Найквиста — половине частоты дискретизации или рад/отсчет.Для аналоговых фильтров частоты среза должны быть выражены в радианах в секунду и могут принимать любое положительное значение.
| Типы данных |
|
#
ftype —
тип фильтра
"low" | "bandpass" | "high" | "stop"
Details
Тип фильтра, заданный одним из следующих способов:
-
"low"определяет фильтр нижних частот с частотой срезаWn. Значение"low"является значением по умолчанию для скалярногоWn. -
"high"определяет фильтр верхних частот с частотой срезаWn. -
"bandpass"определяет полосовой фильтр порядка2n, еслиWn— двухэлементный вектор. Значение"bandpass"является значением по умолчанию, еслиWnсостоит из двух элементов. -
"stop"определяет режекторный фильтр порядка2n, еслиWn— двухэлементный вектор.
Входные аргументы «имя-значение»
#
out —
количество выходных аргументов
положительный целочисленный скаляр
Details
Количество выходных аргументов, заданное как положительное целое число. Если аргумент out не задан, функция по умолчанию вернет два выходных аргумента.
Выходные аргументы
#
b,a —
коэффициенты передаточной функции
векторы-строки
Details
Коэффициенты передаточной функции фильтра, возвращаемые в виде векторов-строк. При заданном порядке фильтра n функция возвращает b и a с r отсчетами, где r = n + 1 для фильтров нижних и верхних частот и r = 2 * n + 1 для полосовых и режекторных фильтров.
Передаточная функция выражается через и следующим образом:
-
для цифровых фильтров;
-
для аналоговых фильтров.
| Типы данных |
|
#
z,p,k —
нули, полюса и коэффициент усиления
векторы-столбцы, скаляр
Details
Нули, полюса и коэффициент усиления фильтра, возвращаемые в виде двух векторов-столбцов и скаляра. При заданном порядке фильтра n функция возвращает z и p с r отсчетами, где r = n для фильтров нижних и верхних частот и r = 2 * n для полосовых и режекторных фильтров.
Передаточная функция выражается через , и следующим образом:
-
для цифровых фильтров;
-
для аналоговых фильтров.
| Типы данных |
|
#
A,B,C,D —
представление в пространстве состояний
матрицы
Details
Представление фильтра в пространстве состояний, возвращаемое в виде матриц. Если r = n для фильтров нижних и верхних частот и r = 2n для полосовых и режекторных фильтров, то A равно , B равно , C равно , а D равно .
Матрицы в пространстве состояний связывают вектор состояния , входной сигнал и выходной сигнал посредством одной из следующих систем уравнений.
-
Для цифровых фильтров:
-
Для аналоговых фильтров:
| Типы данных |
|
#
B,A —
коэффициенты каскадной передаточной функции
вектор-строка | матрица
Details
Коэффициенты каскадной передаточной функции (Cascaded Transfer Functions, CTF), возвращаемые в виде вектора-строки или матрицы. B и A — коэффициенты числителя и знаменателя каскадной передаточной функции соответственно.
Размеры B и A: на и на соответственно. Функция возвращает первый столбец матрицы A как 1, таким образом, A(1)=1 когда A — вектор-строка.
-
L— количество секций фильтра. -
m— порядок числителей фильтра. -
n— порядок знаменателей фильтра.
Функция butter возвращает коэффициенты каскадной передаточной функции со следующими параметрами порядка:
-
для фильтров нижних и верхних частот;
-
для полосовых и режекторных фильтров.
Чтобы настроить вычисление коэффициента каскадной передаточной функции, например, установить другой порядок в коэффициентах каскадной передаточной функции или настроить масштабирование усиления, укажите возврат z,p,k, а затем используйте функцию zp2ctf для получения B,A.
|
Дополнительную информацию о формате каскадной передаточной функции и матрицах коэффициентов см. в разделе Возврат цифровых фильтров в формате CTF.
#
gS —
общий коэффициент усиления системы
вещественный скаляр
Details
Общий коэффициент усиления системы, возвращаемый в виде вещественного скаляра.
-
Если указано, что нужно вернуть
gS, функцияbutterнормализует коэффициенты числителя так, чтобы первый столбецBбыл равен1, и возвращает общий коэффициент усиления системы вgS. -
Если не указано, что нужно вернуть
gS, функцияbutterравномерно распределяет коэффициент усиления системы по всем секциям системы с помощью функцииscaleFilterSections.
Дополнительно
Каскадные передаточные функции
Details
Разбиение цифрового БИХ-фильтра на каскадные секции повышает его численную устойчивость и снижает восприимчивость к ошибкам квантования коэффициентов. Каскадная форма передаточной функции в терминах передаточных функций имеет вид
Возврат цифровых фильтров в формате CTF
Details
Укажите аргументы B и A, чтобы вернуть коэффициенты фильтра. Вы также можете указать gS, чтобы вернуть общий коэффициент усиления системы. Указав эти выходные аргументы, вы можете проектировать цифровые фильтры в формате CTF для анализа, визуализации и фильтрации сигналов.
Коэффициенты фильтра
Если вы указываете возврат коэффициентов числителя и знаменателя в формате CTF, -строчные матрицы и возвращаются в виде
таким образом, что полная передаточная функция фильтра равна
где
Следующие функции могут быть использованы для визуализации и анализа фильтров в формате CTF. Характеристики во временной области — impzlength и impz. Характеристики в частотной области — freqz, grpdelay, phasedelay и phasez. Исследование фильтра — islinphase, ismaxphase и isstable.
|
Коэффициенты и усиление
Можно указать, что необходимо возвращать коэффициенты и общий коэффициент усиления системы, используя триплет выходных аргументов B,A,gS. В этом случае коэффициенты числителя нормализуются, возвращая матрицы коэффициентов фильтра и коэффициент усиления в виде
так что передаточная функция имеет вид
Данная передаточная функция эквивалентна функции, определенной в разделе Коэффициенты фильтра, где
Передаточные функции и CTF
Details
Численная нестабильность синтаксиса передаточных функций
В общем случае для проектирования цифровых БИХ-фильтров следует использовать каскадные передаточные функции (синтаксисы "ctf"). При проектировании фильтра с использованием передаточных функций (любой из синтаксисов b,a), могут возникнуть численные неустойчивости. Эти неустойчивости вызваны ошибками округления и могут даже при порядках n вплоть до 4.
Алгоритмы
Фильтры Баттерворта имеют максимально плоскую амплитудно-частотную характеристику (АЧХ) в полосе пропускания и монотонную в целом. Эта гладкость достигается за счет уменьшения крутизны спада. Эллиптические фильтры и фильтры Чебышева обычно обеспечивают более крутой спад для заданного порядка фильтра.
Функция butter использует пятишаговый алгоритм:
-
Она находит полюса, нули и коэффициент усиления прототипа аналогового фильтра нижних частот.
-
Она преобразует полюса, нули и коэффициент усиления в форму пространства состояний.
-
При необходимости она использует преобразование пространства состояний для преобразования фильтра нижних частот в полосовой, высокочастотный или режекторный фильтр с требуемыми ограничениями частоты.
-
Для проектирования цифровых фильтров используется билинейная функция для преобразования аналогового фильтра в цифровой посредством билинейного преобразования с предварительным искажением частоты. Точная настройка частоты позволяет аналоговым и цифровым фильтрам иметь одинаковую амплитуду АЧХ на частотах
Wnилиw1иw2. -
При необходимости она преобразует фильтр пространства состояний обратно в его передаточную функцию или форму нулевого полюса усиления.