ss2sos

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

Синтаксис

[sos,g] = ss2sos(A,B,C,D)
[sos,g] = ss2sos(A,B,C,D,iu)
[sos,g] = ss2sos(A,B,C,D,'order')
[sos,g] = ss2sos(A,B,C,D,iu,'order')
[sos,g] = ss2sos(A,B,C,D,iu,'order','scale')
sos = ss2sos(...)

Описание

ss2sos преобразует представление пространства состояний данного цифрового фильтра в эквивалентное представление секции второго порядка.

[sos,g] = ss2sos(A,B,C,D) находит матрицу sos в форме секции второго порядка с усилением g что эквивалентно системе в пространстве состояний, представленной входным параметрам A, B, C, и D.

Примечание

Входная система в пространстве состояний должна быть с одним выводом и с реальным.

sos является матрицей L -by-6

sos=[b01b11b211a11a21b02b12b221a12a22b0Lb1Lb2L1a1La2L]

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

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

[sos,g] = ss2sos(A,B,C,D,iu) задает скалярное iu который определяет, какой вход системы в пространстве состояний A, B, C, D используется в преобразовании. Значение по умолчанию для iu равен 1.

[sos,g] = ss2sos(A,B,C,D,'order') и

[sos,g] = ss2sos(A,B,C,D,iu,'order') задайте порядок строк в sos, где 'order' является

  • 'down', чтобы упорядочить разделы так, чтобы первая строка sos содержит полюса, ближайшие к модулю кругу

  • 'up', чтобы упорядочить разделы так, чтобы первая строка sos содержит полюса, наиболее удаленные от модуля круга (по умолчанию)

Нули всегда в паре с ближайшими к ним полюсами.

[sos,g] = ss2sos(A,B,C,D,iu,'order','scale') задает требуемое масштабирование коэффициентов усиления и числителя всех секций второго порядка, где 'scale' является

  • 'none', чтобы не применять масштабирование (по умолчанию)

  • 'inf', для применения нормы по бесконечности

  • 'two', для применения 2-норма масштабирования

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

Примечание

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

sos = ss2sos(...) встраивает общий коэффициент усиления системы, g, в первом разделе, H 1 (z), так что

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

Примечание

Внедрение коэффициента усиления в первый раздел при масштабировании структуры II прямой формы не рекомендуется и может привести к изменению масштаба. Чтобы избежать встраивания усиления, используйте ss2sos с двумя выходами.

Примеры

свернуть все

Разработайте фильтр lowpass 5-го порядка Butterworth с помощью butter функция. Задайте частоту среза 0.2π рад/образец. Выразите выход в форме пространства состояний. Преобразуйте результат пространства состояний в секции второго порядка. Визуализируйте частотную характеристику фильтра.

[A,B,C,D] = butter(5,0.2);
sos = ss2sos(A,B,C,D)
sos = 3×6

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

freqz(sos)

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

Одномерное дискретное время система состоит из модуля массы, m, прикрепленный к стене пружиной модуль упругой константы. Датчик измеряет ускорение, a, массы.

Система дискретизируется в Fs=5 Гц. Сгенерируйте 50 временных выборок. Определите интервал дискретизации Δt=1/Fs.

Fs = 5;
dt = 1/Fs;
N = 50;
t = dt*(0:N-1);

Генератор может быть описан уравнениями пространства состояний

x(k+1)=Ax(k)+Bu(k),y(k)=Cx(k)+Du(k),

где x=(rv)T - вектор состояния, r и v являются соответственно положением и скоростью массы и матриц

A=(cosΔtsinΔt-sinΔtcosΔt),B=(1-cosΔtsinΔt),C=(-10),D=(1).

A = [cos(dt) sin(dt);-sin(dt) cos(dt)];
B = [1-cos(dt);sin(dt)];
C = [-1 0];
D = 1;

Система возбуждается модулем импульсом в положительном направлении. Используйте модель пространства состояний, чтобы вычислить временную эволюцию системы, начиная с полностью нулевого начального состояния.

u = [1 zeros(1,N-1)];

x = [0;0];
for k = 1:N
    y(k) = C*x + D*u(k);
    x = A*x + B*u(k);
end

Постройте график ускорения массы как функции времени.

stem(t,y,'filled')

Figure contains an axes. The axes contains an object of type stem.

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

sos = ss2sos(A,B,C,D);
yt = sosfilt(sos,u);
stem(t,yt,'filled')

Figure contains an axes. The axes contains an object of type stem.

Результат одинаковый в обоих случаях.

Алгоритмы

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

  1. Он находит полюса и нули системы, заданные A, B, C, и D.

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

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

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

    3. Продолжайте, пока все полюсы и нули не будут совпадать.

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

  3. Он упорядочивает секции согласно близости пар полюсов к модулю кругу. ss2sos обычно упорядочивает участки с полюсами, ближайшими к модулю кругу, последними в каскаде. Вы можете сказать ss2sos чтобы упорядочить разделы в обратном порядке путем определения 'down' флаг.

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

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

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

Ссылки

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

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

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

См. также

| | | | |

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