tf2sos

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

Описание

пример

[sos,g] = tf2sos(b,a) находит матричный sos в секции второго порядка формируют с усилением g это эквивалентно цифровому фильтру, представленному, переводом функционируют векторы коэффициентов b и a.

[sos,g] = tf2sos(b,a,order) задает порядок строк в sos.

[sos,g] = tf2sos(b,a,order,scale) задает масштабирование усиления и коэффициенты числителя всех секций второго порядка.

sos = tf2sos(___) встраивает полное системное усиление в первый раздел.

Примеры

свернуть все

Спроектируйте 4-й порядок Баттерворта фильтр lowpass с помощью функционального butter. Задайте частоту среза как половину частоты Найквиста. Реализуйте фильтр как секции второго порядка. Проверьте, что эти два представления идентичны путем сравнения их числителей и знаменателей.

[nm,dn] = butter(4,0.5);
[ss,gn] = tf2sos(nm,dn);
numers = [conv(ss(1,1:3),ss(2,1:3))*gn;nm]
numers = 2×5

    0.0940    0.3759    0.5639    0.3759    0.0940
    0.0940    0.3759    0.5639    0.3759    0.0940

denoms = [conv(ss(1,4:6),ss(2,4:6));dn]
denoms = 2×5

    1.0000    0.0000    0.4860    0.0000    0.0177
    1.0000    0.0000    0.4860    0.0000    0.0177

Входные параметры

свернуть все

Коэффициенты передаточной функции в виде векторов. Выразите передаточную функцию в терминах b и a как

H(z)=B(z)A(z)=b1+b2z1++bn+1zna1+a2z1++am+1zm.

Пример: b = [1 3 3 1]/6 и a = [3 0 1 0]/3 задайте третий порядок Фильтр Баттерворта с нормированной частотой на 3 дБ 0.5π рад/выборка.

Типы данных: double

Порядок строк в виде одного из следующего:

  • 'up' — Закажите разделы так первая строка sos содержит полюса, самые дальние от модульного круга.

  • 'down' — Закажите разделы так первая строка sos содержит полюса, самые близкие к модульному кругу.

Типы данных: char

Масштабирование усиления и коэффициентов числителя в виде одного из следующего:

  • 'none' — Не примените масштабирование.

  • 'inf' — Примените масштабирование нормы по бесконечности.

  • 'two' — Примените масштабирование 2-нормы.

Используя норму по бесконечности, масштабирующуюся с 'up'- упорядоченное расположение минимизирует вероятность переполнения в реализации. Используя 2-норму, масштабирующуюся с 'down'- упорядоченное расположение минимизирует пиковый шум округления.

Примечание

Норма по бесконечности и масштабирование 2-нормы подходят только для прямой формы II реализаций.

Типы данных: char

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

свернуть все

Представление секции второго порядка, возвращенное как матрица. sos L-by-6 матрица

sos=[b01b11b211a11a21b02b12b221a12a22b0Lb1Lb2L1a1La2L]

чьи строки содержат числитель и коэффициенты знаменателя bik и aik секций второго порядка H (z):

H(z)=gk=1LHk(z)=gk=1Lb0k+b1kz1+b2kz21+a1kz1+a2kz2.

Полное системное усиление, возвращенное как действительный скаляр.

Если вы вызываете tf2sos с одним выходным аргументом функция встраивает полное системное усиление в первый раздел, H 1 (z), так, чтобы

H(z)=k=1LHk(z).

Примечание

При встраивании усиления в первый раздел при масштабировании прямой формы II структур не рекомендуются и могут привести к ошибочному масштабированию. Чтобы постараться не встраивать усиление, используйте tf2sos с двумя выходными параметрами.

Алгоритмы

tf2sos использует алгоритм с четырьмя шагами, чтобы определить представление секции второго порядка для входной системы передаточной функции:

  1. Это находит полюса и нули системы данными b и a.

  2. Это использует функциональный zp2sos, какие первые группы нули и полюса в комплексно-сопряженные пары с помощью cplxpair функция. zp2sos затем формирует секции второго порядка путем соответствия с полюсом и нулевыми парами согласно следующим правилам:

    1. Совпадайте с полюсами, самыми близкими к модульному кругу с нулями, самыми близкими к тем полюсам.

    2. Совпадайте с полюсами, следующими ближайшими к модульному кругу с нулями, самыми близкими к тем полюсам.

    3. Продолжите, пока все полюса и нули не являются соответствующими.

    tf2sos группы действительные полюса в разделы с действительными полюсами, самыми близкими к ним в абсолютном значении. То же правило содержит для действительных нулей.

  3. Это заказывает разделы согласно близости пар полюса к модульному кругу. tf2sos обычно заказывает разделы с полюсами, самыми близкими к модульному кругу в последний раз в каскаде. Можно сказать tf2sos заказать разделы в обратном порядке путем определения order как 'down'.

  4. tf2sos масштабирует разделы нормой, заданной в scale. Для произвольного H (ω) масштабирование задано

    Hp=[12π02π|H(ω)|pdω]1/p

    где p может быть или ∞ или 2. Смотрите ссылки для получения дополнительной информации о масштабировании. Алгоритм следует за этим масштабированием в попытке минимизировать переполнение или пиковый шум округления в реализациях фильтра фиксированной точки.

Ссылки

[1] Джексон, L. B. Цифровые фильтры и Обработка сигналов. 3-й редактор Бостон: Kluwer Академические Издатели, 1996.

[2] Mitra, S. K. Цифровая обработка сигналов: компьютерный подход. Нью-Йорк: McGraw-Hill, 1998.

[3] Vaidyanathan, P. P. “Устойчивые Структуры Цифрового фильтра”. Руководство для Цифровой обработки сигналов (С. К. Митра и Дж. Ф. Кэйсер, редакторы). Нью-Йорк: John Wiley & Sons, 1993.

Смотрите также

| | | | | |

Представлено до R2006a