zp2sos

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

Описание

пример

[sos,g] = zp2sos(z,p,k) находит матрицу секции второго порядка sos с усилением g это эквивалентно передаточной функции H (z), нули n которого, полюса m и скалярное усиление заданы в zP, и k:

H(z)=k(zz1)(zz2)(zzn)(zp1)(zp2)(zpm).

[sos,g] = zp2sos(z,p,k,order) задает порядок строк в sos.

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

[sos,g] = zp2sos(z,p,k,order,scale,zeroflag) задает обработку действительных нулей, которые являются отрицательными сторонами друг друга.

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

Примеры

свернуть все

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

[z,p,k] = butter(5,0.2);
sos = zp2sos(z,p,k)
sos = 3×6

    0.0013    0.0013         0    1.0000   -0.5095         0
    1.0000    2.0000    1.0000    1.0000   -1.0966    0.3554
    1.0000    2.0000    1.0000    1.0000   -1.3693    0.6926

fvtool(sos)

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

свернуть все

Нули системы в виде вектора. Нули должны быть действительными или прибыть в комплексно-сопряженные пары.

Пример: [1 (1+1j)/2 (1-1j)/2]'

Типы данных: double
Поддержка комплексного числа: Да

Полюса системы в виде вектора. Полюса должны быть действительными или прибыть в комплексно-сопряженные пары.

Пример: [1 (1+1j)/2 (1-1j)/2]'

Типы данных: double
Поддержка комплексного числа: Да

Скалярное усиление системы в виде скаляра.

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

  • Если вы задаете zeroflag как false, функция заказывает те нули согласно близости к полюсам.

  • Если вы задаете zeroflag как true, функция держит те нули вместе. Эта опция приводит к числителю со средним равным нулю коэффициентом.

Типы данных: логический

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

свернуть все

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

sos=[b01b11b211a11a21b02b12b221a12a22b0Lb1Lb2L1a1La2L]

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

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

Если передаточная функция имеет нули n и полюса m, то L является самым близким целым числом, больше, чем или равный макс. (n/2, m/2).

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

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

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

Примечание

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

Алгоритмы

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

  1. Это группирует нули и полюса в комплексно-сопряженные пары с помощью cplxpair функция.

  2. Это формирует секцию второго порядка путем соответствия с полюсом и нулевыми парами согласно следующим правилам:

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

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

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

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

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

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

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

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

Ссылки

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

[2] Mitra, Сэнджит Кумар. Цифровая обработка сигналов: Компьютерный Подход. 3-й редактор Нью-Йорк: Высшее образование McGraw-Hill, 2006.

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

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

| | | | | |

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