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)

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains an object of type line.

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

свернуть все

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

Пример: [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