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 это эквивалентно системе в пространстве состояний, представленной входными параметрами ABC, и 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 это определяет который вход системы в пространстве состояний ABCD используется в преобразовании. Значение по умолчанию для 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    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. Это находит полюса и нули системы данными ABC, и 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] Джексон, L. B. Цифровые фильтры и Обработка сигналов. 3-й Эд. Бостон: Kluwer Академические Издатели, 1996, парень. 11.

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

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

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

| | | | |

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