ss2sos

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

Описание

пример

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

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

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

[sos,g] = ss2sos(A,B,C,D,iu,order) задает обоих индекс ui и порядок строк order.

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

sos = ss2sos(___) встраивает полное системное усиление g в первом разделе. Можно задать входную комбинацию от любого из предыдущих синтаксисов.

Примеры

свернуть все

Спроектируйте пятый порядок Баттерворт фильтр lowpass, задав частоту среза 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 objects. Axes object 1 contains an object of type line. Axes object 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 object. The axes object contains an object of type stem.

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

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

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

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

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

свернуть все

Матрица состояния в виде матрицы. Если система имеет входные параметры p и q выходные параметры и описана переменными состояния n, то A имеет размер n-by-n.

Матрица входа к состоянию в виде матрицы. Если система имеет входные параметры p и q выходные параметры и описана переменными состояния n, то B имеет размер n-by-p.

Матрица выхода к состоянию в виде матрицы. Если система имеет входные параметры p и q выходные параметры и описана переменными состояния n, то C имеет размер q-by-n.

Проходная матрица в виде матрицы. Если система имеет входные параметры p и q выходные параметры и описана переменными состояния n, то D имеет размер q-by-p.

Индексируйте в виде целого числа.

Порядок строк в sosВ виде одного из этих значений:

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

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

Нули соединяются с полюсами, которые являются самыми близкими к ним.

Масштабирование усиления и коэффициентов числителя в виде одного из этих значений:

  • 'none' — Не примените масштабирование.

  • 'inf' — Примените масштабирование нормы по бесконечности.

  • 'two' — Примените масштабирование 2-нормы.

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

Примечание

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

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

свернуть все

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

sos=[b01b11b211a11a21b02b12b221a12a22b0Lb1Lb2L1a1La2L]

чьи строки содержат числитель и коэффициенты знаменателя bik и aik секций второго порядка H (z), которым дают

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

Полное системное усиление, возвращенное как скаляр с действительным знаком.

Если вы вызываете функцию с одним выходным аргументом, функция встраивает усиление в первый раздел, H 1 (z), так, чтобы

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

Примечание

При встраивании усиления в первый раздел при масштабировании прямой формы II структур не рекомендуются и могут привести к ошибочному масштабированию. Чтобы постараться не встраивать усиление, используйте функцию с двумя выходными параметрами: sos и g.

Алгоритмы

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

  1. Найдите полюса и нули системы данными ABC, и D.

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

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

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

    3. Продолжите этот процесс до всех полюсов, и нули являются соответствующими.

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

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

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

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

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

Ссылки

[1] Джексон, цифровые фильтры Лелэнда Б. и обработка сигналов. Бостон: Kluwer академические издатели, 1996.

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

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

Расширенные возможности

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

| | | | |

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