exponenta event banner

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 что эквивалентно системе state-space, представленной входными аргументами A, B, C, и D.

Примечание

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

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

SOS = [b01b11b211a11a21b02b12b221a12a22  b0Lb1Lb2L1a1La2L]

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

H (z) =g∏k=1LHk (z) =g∏k=1Lb0k+b1kz−1+b2kz−21+a1kz−1+a2kz−2

[sos,g] = ss2sos(A,B,C,D,iu) задает скаляр iu определяет, какой вход системы state-space 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-norm

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

Примечание

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

sos = ss2sos(...) встраивает общее усиление системы, g, в первом разделе, H1 (z), так что

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

Примечание

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

Примеры

свернуть все

Проектирование фильтра нижних частот Butterworth 5-го порядка с использованием butter функция. Задайте частоту отсечения 0,2δrad/sample. Выражение выходных данных в форме state-space. Преобразование результата state-space в сечения второго порядка. Визуализация частотной характеристики фильтра.

[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, прикрепленной к стенке пружиной единичной упругой постоянной. Датчик измеряет ускорение, а, массы.

Выборка системы производится при 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;

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

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 (λ) масштабирование определяется

    H‖p=[12π∫02π'H (λ) | pdλ] 1/p

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

Ссылки

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

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

[3] Вайдянатхан, П. П. «Надежные структуры цифрового фильтра». Справочник по цифровой обработке сигналов (С. К. Митра и Дж. Ф. Кайзер, ред.). Нью-Йорк: John Wiley & Sons, 1993, chap. 7.

См. также

| | | | |

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