Преобразование данных секций второго порядка цифрового фильтра в форму каскадной передаточной функции.
Библиотека
EngeeDSP
Синтаксис
Вызов функции
B,A = sos2ctf(sos) — вычисляет Каскадные передаточные функции второго порядка (Cascaded Transfer Functions, CTF) фильтра, описываемого матрицей секций второго порядка sos.
B,A = sos2ctf(sos,g) — также задает масштабные коэффициенты g для масштабирования коэффициента усиления по секциям передаточной функции системы.
Аргументы
Входные аргументы
#sos —
представление секций второго порядка
матрица
Details
Представление секций второго порядка, заданное как матрица размером , где — количество секций второго порядка. Матрица
представляет собой секции второго порядка функции :
Масштабные коэффициенты, заданные как скаляр или вектор с вещественными значениями, содержащий элементов, где — количество секций второго порядка.
Функция sos2ctf применяет коэффициент усиления к секциям фильтра с помощью функции scaleFilterSections. В зависимости от значения, указанного в аргументе g:
скаляр — функция равномерно распределяет коэффициент усиления по всем секциям фильтра;
вектор — функция применяет первые значений коэффициента усиления к соответствующим секциям фильтра и равномерно распределяет последнее значение коэффициента усиления по всем секциям фильтра.
Выходные аргументы
#B,A —
коэффициенты каскадной передаточной функции
матрицы L × 3
Details
Коэффициенты каскадной передаточной функции, возвращаемые в виде матриц размером на , где — количество секций второго порядка.
В матрицах B и A перечислены коэффициенты числителя и знаменателя каскадной передаточной функции соответственно. Дополнительную информацию см. в разделе Представление цифровых фильтров в формате CTF.
Примеры
Секции второго порядка для каскадной передаточной функции
Details
Преобразуем матрицу секций второго порядка в форму каскадной передаточной функции.
Разбиение цифрового БИХ-фильтра на каскадные секции повышает его численную устойчивость и снижает восприимчивость к ошибкам квантования коэффициентов. Каскадная форма передаточной функции , выраженная через передаточных функций , имеет вид
Представление цифровых фильтров в формате CTF
Details
Укажите аргументы B и A, чтобы получить коэффициенты фильтра. Указав эти выходные аргументы, вы можете проектировать цифровые фильтры в формате CTF для анализа, визуализации и фильтрации сигналов.
Коэффициенты фильтра
Если вы указываете представление коэффициентов числителя и знаменателя в формате CTF, -строчные матрицы и возвращаются в виде
таким образом, что полная передаточная функция фильтра равна
где — порядок числителя фильтра, а — порядок знаменателя.
Для визуализации и анализа фильтров в формате CTF могут быть использованы следующие функции:
Характеристики во временной области — impzlength и impz.
Характеристики в частотной области — freqz, grpdelay, phasedelay, phasez и zerophase.
Функция sos2ctf вычисляет коэффициенты числителя и знаменателя секций каскадной передаточной функции на основе коэффициентов секций второго порядка фильтрующей системы.
Выходные аргументы B и A содержат коэффициенты каскадной передаточной функции второго порядка фильтрующей системы, расположенные в строках.
Каждая строка матриц A и B содержит коэффициенты в каждой секции.
Функция sos2ctf возвращает матрицы B и A размером на , где последние два столбца соответствуют членам и для каждой каскадной секции фильтрующей системы.
Для матрицы секций второго порядка sos и единичного масштабного коэффициента (g = 1) значения для B и A будут следующими:
B = sos[:, 1:3];
A = sos[:, 4:6];
Если вы укажете аргумент g, функция sos2ctf распределит значения масштабных коэффициентов из g по коэффициентам числителя, так что значения для B и A будут следующими:
B = scaleFilterSections(sos[:, 1:3], g);
A = sos[:, 4:6];
Литература
Lyons, Richard G. Understanding Digital Signal Processing. Upper Saddle River, NJ: Prentice Hall, 2004.