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

zp2ctf

Преобразование параметров фильтра с нулями, полюсами и коэффициентом усиления в каскадную форму передаточной функции.

Библиотека

EngeeDSP

Синтаксис

Вызов функции

  • B,A = zp2ctf(z,p,k) — задает скалярный коэффициент усиления системы.

  • B,A = zp2ctf(___,Name,Value) — задает дополнительные параметры с помощью аргументов типа «имя-значение».

  • ___,gS = zp2ctf(___) — также возвращает общий коэффициент усиления системы.

Аргументы

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

# z,p — нули и полюса системы
векторы

Details

Нули и полюса фильтра, заданные как векторы.

Векторы z и p содержат нулей и полюсов передаточной функции соответственно.

Типы данных

Float64

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

Да

# k — коэффициент усиления системы
1 | скаляр

Details

Коэффициент усиления системы, заданный как вещественный скаляр.

Скаляр представляет собой коэффициент усиления передаточной функции .

Если вы запрашиваете выходной аргумент gS, то функция zp2ctf присваивает значение k аргументу gS.

Типы данных

Float64

Входные аргументы «имя-значение»

Укажите необязательные пары аргументов в виде Name,Value, где Name — имя аргумента, а Value — соответствующее значение. Аргументы типа «имя-значение» должны располагаться после других аргументов, но порядок пар не имеет значения.

Используйте запятые для разделения имени и значения, а Name заключите в кавычки.

# SectionOrder — порядок секций передаточных функций
2 (по умолчанию) | 4

Details

Порядок секций передаточных функций, заданный как 2 или 4. В зависимости от значения, указанного для аргумента SectionOrder, функция zp2ctf возвращает либо каскадную передаточную функцию второго порядка, либо каскадную передаточную функцию четвертого порядка.

  • 2 — функция zp2ctf возвращает матрицы B и A каскадной формы передаточной функции в виде секций второго порядка с тремя столбцами каждая.

  • 4 — функция zp2ctf возвращает матрицы B и A каскадной формы передаточной функции в виде секций четвертого порядка с пятью столбцами каждая.

Типы данных

Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

# Direction — порядок расположения секций передаточной функции
"up" (по умолчанию) | "down"

Details

Порядок расположения секций передаточной функции, заданный как "up" или "down". Функция zp2ctf сортирует строки матрицы A в зависимости от расстояния между полюсами и началом координат.

  • "up" — первая строка матрицы A содержит полюса, ближайшие к началу координат.

  • "down" — первая строка матрицы A содержит полюса, ближайшие к единичной окружности.

Функция zp2ctf сортирует строки матрицы B таким образом, чтобы нули в каждой секции объединялись в пары с ближайшими полюсами, соответствующими строкам матрицы A.

Типы данных

String

# Scale — масштабирование усиления
"none" (по умолчанию) | "inf" | "l2"

Details

Масштабирование усиления, заданное как "none", "inf" или "l2". Функция zp2ctf масштабирует коэффициент усиления и коэффициенты числителя всех секций с помощью функции filternorm в зависимости от значения, указанного для параметра Scale:

  • "none" — без масштабирования;

  • "inf" — масштабирование по бесконечной норме;

  • "l2" — масштабирование по норме L2.

  • Масштабирование по бесконечной норме и норме L2 подходит только для реализаций в прямой форме II и поддерживается только для стабильных систем.

  • Использование масштабирования по бесконечной норме в сочетании с порядком направления "up" минимизирует вероятность переполнения при реализации фильтров. С другой стороны, использование масштабирования по норме L2 в сочетании с порядком направления "down" минимизирует пиковый шум округления.

Типы данных

String

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

# B,A — коэффициенты каскадной передаточной функции
матрица L × 3 (по умолчанию) | матрица L × 5

Details

Коэффициенты каскадной передаточной функции, возвращаемые в виде матриц размером на или на , где — количество секций. Количество столбцов зависит от значения, указанного для аргумента SectionOrder.

В матрицах B и A перечислены коэффициенты числителя и знаменателя каскадной передаточной функции соответственно. Дополнительную информацию см. в разделе Представление цифровых фильтров в формате CTF.

# gS — общий коэффициент усиления системы
скаляр

Details

Общий коэффициент усиления системы, возвращаемый в виде вещественного скаляра.

  • Если указано, что нужно вернуть gS, функция zp2ctf нормализует коэффициенты числителя относительно коэффициента усиления системы k и возвращает общий коэффициент усиления системы в виде gS.

  • Если не указано, что нужно вернуть gS, функция zp2ctf равномерно распределяет коэффициент усиления системы k по всем секциям системы с помощью функции scaleFilterSections.

Дополнительно

Каскадные передаточные функции

Details

Разбиение цифрового БИХ-фильтра на каскадные секции повышает его численную устойчивость и снижает восприимчивость к ошибкам квантования коэффициентов. Каскадная форма передаточной функции , выраженная через передаточных функций , имеет вид

butter ru

Представление цифровых фильтров в формате CTF

Details

Укажите аргументы B и A, чтобы получить коэффициенты фильтра. Вы также можете указать gS, чтобы получить общий коэффициент усиления фильтра. Указав эти выходные аргументы, вы можете проектировать цифровые фильтры в формате CTF для анализа, визуализации и фильтрации сигналов.

Коэффициенты фильтра

Если вы указываете представление коэффициентов числителя и знаменателя в формате CTF, -строчные матрицы и возвращаются в виде

таким образом, что полная передаточная функция фильтра равна

где порядок числителя фильтра, а порядок знаменателя.

Следующие функции могут быть использованы для визуализации и анализа фильтров в формате CTF:

  • Характеристики во временной области — impzlength и impz.

  • Характеристики в частотной области — freqz, grpdelay, phasedelay и phasez.

  • Исследование фильтра — islinphase, ismaxphase и isstable.

Коэффициенты и усиление

Можно указать, что необходимо возвращать коэффициенты и общий коэффициент усиления системы, используя триплет выходных аргументов B,A,gS. В этом случае коэффициенты числителя нормализуются, возвращая матрицы коэффициентов фильтра и коэффициент усиления в виде

так что передаточная функция имеет вид

Данная передаточная функция эквивалентна функции, определенной в разделе Коэффициенты фильтра, где и при и .

Алгоритмы

Функция zp2ctf вычисляет коэффициенты числителя и знаменателя каскадных секций передаточной функции на основе нулей, полюсов и коэффициента усиления фильтра. Для фильтра -го порядка существует возможных комбинаций [1]. Переменная — ближайшее целое число, большее или равное или для секций второго или четвертого порядка соответственно.

Настройте критерии сортировки для объединения нулей и полюсов в пары в каскадных секциях, задав значение для аргумента Direction, чтобы начать с полюсов и нулей, ближайших к началу координат -плоскости ("up"), или ближайших к единичной окружности ("down"). Выполните масштабирование усиления по каскадным секциям, с помощью аргумента Scale. Настройте порядок каскадных секций, установив для аргумента SectionOrder значение 2 или 4, чтобы создать каскадные секции второго или четвертого порядка соответственно.

Выходные аргументы B и A содержат коэффициенты каскадной передаточной функции второго или четвертого порядка фильтра, распределенные по строкам.

  • Каждая строка аргументов B и A содержит список коэффициентов в каждой секции.

    • Функция возвращает первый столбец матрицы A равным 1, следовательно, A(1) = 1, когда A является вектором-строкой.

    • При указании необходимости возвращать gS функция zp2ctf нормализует коэффициенты числителя так, чтобы первый столбец матрицы B был равен 1, и возвращает общий коэффициент усиления системы в виде gS. Таким образом, B(1) = 1, когда B является вектором-строкой.

    • Если не указывать gS как выходной аргумент, функция zp2ctf сначала нормализует коэффициенты числителя так, чтобы первый столбец матрицы B был равен 1, а затем равномерно умножает нормализованные коэффициенты числителя на sgn(gS)*gS^(1/L), так что первый столбец матрицы B будет равен sgn(gS)*gS^(1/L). Таким образом, B(1) = gS, когда B является вектором-строкой.

  • При указании секций второго порядка или игнорировании аргумента SectionOrder, функция zp2ctf возвращает матрицы B и A размером на , где последние два столбца соответствуют членам и для каждой каскадной секции фильтра.

  • При указании секций четвертого порядка, функция zp2ctf возвращает матрицы B и A размером на , где последние два столбца соответствуют членам и для каждой каскадной секции фильтра.

Литература

  1. Lyons, Richard G. Understanding Digital Signal Processing. Upper Saddle River, NJ: Prentice Hall, 2004.