exponenta event banner

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(___) встраивает общее усиление системы в первый раздел.

Примеры

свернуть все

Проектирование фильтра нижних частот Butterworth 4-го порядка с использованием функции 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+b2z−1+⋯+bn+1z−na1+a2z−1+⋯+am+1z−m.

Пример: 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'-ordering минимизирует вероятность переполнения в реализации. Использование масштабирования 2-norm с 'down'- упорядочение минимизирует пиковый шум округления.

Примечание

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

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

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

свернуть все

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

SOS = [b01b11b211a11a21b02b12b221a12a22  b0Lb1Lb2L1a1La2L]

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

H (z) =g∏k=1LHk (z) =g∏k=1Lb0k+b1kz−1+b2kz−21+a1kz−1+a2kz−2.

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

При звонке tf2sos с одним выходным аргументом функция встраивает общее системное усиление в первый раздел, H1 (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 (λ) масштабирование определяется

    H‖p=[12π∫02π'H (λ) | pdλ] 1/p

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

Ссылки

[1] Джексон, Л. Б. Цифровые фильтры и обработка сигналов. 3-я редакция Boston: Kluwer Academic Publishers, 1996.

[2] Митра, С. К. Цифровая обработка сигналов: компьютерный подход. Нью-Йорк: Макгроу-Хилл, 1998.

[3] Вайдянатхан, П. П. «Надежные структуры цифрового фильтра». Справочник по цифровой обработке сигналов (С. К. Митра и Дж. Ф. Кайзер, ред.). Нью-Йорк: John Wiley & Sons, 1993.

См. также

| | | | | |

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