MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем

Обработка сигналов и изображений\Signal Processing Toolbox

Список функций Signal Processing Toolbox: Функции синтеза фильтров

В оглавление \ К следующему разделу \ К предыдущему разделу

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, and D. Преобразуемая система должна быть вещественной и иметь один выходной сигнал. Возвращаемая функцией матрица sos содержит L строк и 6 столбцов:

.

Каждая строка соответствует одной секции второго порядка и содержит коэффициенты числителя bik и знаменателя aik ее функции передачи. Строки матрицы sos совместно с коэффициентом усиления g описывают функцию передачи системы H(z) следующим образом:

.

[sos,g] = ss2sos(A,B,C,D,iu)

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

Варианты синтаксиса

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

и

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

дополнительно позволяют задать порядок следования секций (то есть порядок расположения строк в матрице sos) с помощью строкового параметра 'order', который может принимать следующие значения:

  • 'down' - первыми идут секции, полюсы функций передачи которых расположены ближе всего к единичной окружности.
  • 'up' - первыми идут секции, полюсы функций передачи которых расположены дальше всего от единичной окружности (этот вариант принят по умолчанию).

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

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

    Дополнительно позволяет задать способ масштабирования (то есть выбора коэффициента усиления и масштаба коэффициентов числителей функций передачи отдельных секций) с помощью строкового параметра 'scale', который может принимать следующие значения:

  • 'none' - масштабирования не производится (этот вариант принят по умолчанию).
  • 'inf' - масштабирование производится в соответствии с нормой бесконечного порядка.
  • 'two' - масштабирование производится в соответствии с нормой второго порядка.

    Использование scale = 'inf' в сочетании с order = 'up' минимизирует вероятность переполнения в процессе промежуточных вычислений при практической реализации фильтра. Использование scale = 'two' в сочетании с order = 'down' минимизирует пиковое значение шумов округления.

    Замечание. Указанные способы масштабирования применимы только при реализации секций фильтра в прямой форме (direct-form II).

    sos = ss2sos(...)

    Если при вызове функции указан только один выходной параметр, коэффициент усиления g вводится в числитель функции передачи первой секции фильтра, H1(z), так что

    .

    Замечание. Внедрение общего коэффициента усиления в первую секцию фильтра при масштабировании фильтров, реализованных в прямой форме (direct-form II), не рекомендуется, так как может приводить к непредсказуемым результатам. Чтобы избежать этого, используйте функцию ss2sos с двумя выходными параметрами.

    Примеры

    Найдем представление в виде последовательно включенных секций второго порядка для фильтра нижних частот Баттерворта:

    [A,B,C,D] = butter(5,0.2);
    sos = ss2sos(A,B,C,D)
    sos =
        0.0013    0.0013         0    1.0000   -0.5095         0
        1.0000    2.0008    1.0008    1.0000   -1.0966    0.3554
        1.0000    1.9979    0.9979    1.0000   -1.3693    0.6926
    

    Алгоритм

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

    1. Функция находит нули и полюсы системы исходя из параметров пространства состояния A, B, C и D.
    2. Вызывается функция zp2sos, которая сначала группирует нули и полюсы в комплексно сопряженные пары с помощью функции cplxpair, а затем формирует секции второго порядка, группируя нули и полюсы для них по следующим правилам:
        а) Полюсы, ближайшие к единичной окружности, группируются с нулями, ближайшими к этим полюсам.
        б) Полюсы, ближайшие к единичной окружности (из числа оставшихся полюсов), группируются с нулями (из числа оставшихся нулей), ближайшими к этим полюсам.
        в) Процесс продолжается до исчерпания нулей и полюсов.
      Из вещественных полюсов пары формируются исходя из минимальной разности абсолютных значений полюсов. То же правило применяется к вещественным нулям.
    3. Определяется порядок следования секций исходя из близости пар их полюсов к единичной окружности. По умолчанию функция ss2sos размещает секции в порядке приближения полюсов к единичной окружности. Изменить этот порядок на обратный можно, задав для параметра order значение 'down'.
    4. Производится масштабирование секций в соответствии со значением параметра scale. Для произвольного комплексного коэффициента передачи H() масштабирование определяется нормой, рассчитываемой как
      ,
      где p может принимать значение или 2. Более подробную информацию можно найти в приведенных ссылках на литературу. Назначение масштабирования - уменьшить уровень шума округления или вероятность переполнения при реализации фильтров с использованием арифметики с фиксированной запятой.

    Диагностические сообщения

    Если значение входного параметра iu превышает число входных сигналов системы, функция ss2sos выдает следующее сообщение об ошибке:

    State-space system has only ... inputs.

    Сопутствующие функции: cplxpair, sos2ss, ss2tf, ss2zp, tf2sos, zp2sos.

    Литература

    1. Jackson, L. B., Digital Filters and Signal Processing, 3rd ed., Kluwer Academic Publishers, Boston, 1996, Chapter 11.
    2. Mitra, S. K., Digital Signal Processing: A Computer-Based Approach, McGraw-Hill, New York, 1998, Chapter 9.
    3. Vaidyanathan, P. P., "Robust Digital Filter Structures," Handbook for Digital Signal Processing, S. K. Mitra and J. F. Kaiser, ed., John Wiley & Sons, New York, 1993, Chapter 7.

    В оглавление \ К следующему разделу \ К предыдущему разделу


  • Поиск по сайту:

    Система Orphus

    Яндекс.Метрика