zp2sos

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

Описание

пример

[sos,g] = zp2sos(z,p,k) находит матрицу секций второго порядка sos с g усиления это эквивалентно передаточной функции H (z), n нули которой, полюса m и скалярный коэффициент усиления заданы в z, p, и 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(___) встраивает полный коэффициент усиления системы в первый раздел.

Примеры

свернуть все

Разработайте фильтр lowpass 5-го порядка Butterworth с помощью функции 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функция сохраняет эти нули вместе. Эта опция приводит к числителю с коэффициентом середины, равным нулю.

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

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

свернуть все

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

sos=[b01b11b211a11a21b02b12b221a12a22b0Lb1Lb2L1a1La2L]

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

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

Если передаточная функция имеет n нули и m полюса, то L является ближайшим целым числом, большим или равным max (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] Джексон, Л. Б. Цифровые фильтры и обработка сигналов. 3-й ред. Бостон: Kluwer Academic Publishers, 1996.

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

[3] Vaidyanathan, P. P. «Robust Digital Filter Structures». Справочник по цифровой обработке сигналов (С. К. Митра и Дж. Ф. Кайзер, эд.). Нью-Йорк: John Wiley & Sons, 1993.

См. также

| | | | | |

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