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]

чьи строки содержат числитель и коэффициенты знаменателя bik и aik разделов второго порядка 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 с двумя выходными параметрами.

Примеры

свернуть все

Разработайте 5-й порядок Баттерворт lowpass фильтр с помощью функции 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    2.0010    1.0010    1.0000   -1.0966    0.3554
    1.0000    1.9974    0.9975    1.0000   -1.3693    0.6926

freqz(sos)

Одномерное дискретное время колеблющаяся система состоит из модульной массы, 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=(потому чтоΔtsinΔt-sinΔtпотому чтоΔt),B=(1-потому чтоΔ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')

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

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

Результатом является то же самое в обоих случаях.

Алгоритмы

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] Джексон, Л. Б. Диджитэл Филтерс и Обработка сигналов. 3-й Эд. Бостон: Kluwer Академические Издатели, 1996, парень. 11.

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

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

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

| | | | |

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