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

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

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

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

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

Синтаксис

[sos,g] = tf2sos(b,a)
[sos,g] = tf2sos(b,a,'order')
[sos,g] = tf2sos(b,a,'order','scale')
sos = tf2sos(...)

Описание

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

[sos,g] = tf2sos(b,a)

Возвращает матрицу секций второго порядка sos и коэффициент усиления g, которые дают структуру, эквивалентную дискретному фильтру, представленному векторами полиномов знаменателя и числителя функции передачи a и b:

.

Матрица sos содержит L строк и 6 столбцов:

.

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

.

[sos,g] = tf2sos(b,a,'order')

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

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

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

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

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

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

    sos = tf2sos(...)

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

    .

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

    Алгоритм

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

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

    Сопутствующие функции: cplxpair, sos2tf, ss2sos, tf2ss, tf2zp, tf2zpk, 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

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