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

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

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

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

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

Синтаксис

[sos,g] = zp2sos(z,p,k)
[sos,g] = zp2sos(z,p,k,'order')
[sos,g] = zp2sos(z,p,k,'order','scale')
sos = zp2sos(...)

Описание

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

[sos,g] = zp2sos(z,p,k)

Возвращает матрицу секций второго порядка sos и коэффициент усиления g, которые дают структуру, эквивалентную дискретному фильтру, представленному векторами нулей (z) и полюсов (p) и коэффициентом усиления k. Эти входные параметры задают функцию передачи фильтра, H(z), следующим образом (порядок следования нулей и полюсов неважен):

,

где n и m - длины векторов z и p соответственно, а k - скалярный коэффициент усиления. Нули и полюсы должны быть вещественными или образовывать комплексно-сопряженные пары. Возвращаемая функцией матрица sos содержит L строк и 6 столбцов:

.

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

.

Число строк в матрице sos (L) равно наименьшему целому числу, большему или равному максимальному из значений n/2 и m/2 (то есть рассчитывается как ceil(max(n/2,m/2))).

[sos,g] = zp2sos(z,p,k,'order')

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

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

    [sos,g] = zp2sos(z,p,k,'order','scale')

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

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

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

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

    sos = zp2sos(...)

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

    .

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

    Примеры

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

    [z,p,k] = butter(5,0.2);
    [sos,g] = zp2sos(z,p,k)
    sos =
        1.0000    1.0000         0    1.0000   -0.5095         0
        1.0000    2.0000    1.0000    1.0000   -1.0966    0.3554
        1.0000    2.0000    1.0000    1.0000   -1.3693    0.6926
    g =
        0.0013
    

    Алгоритм

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

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

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

    Сопутствующие функции: cplxpair, filternorm, sos2zp, ss2sos, tf2sos, zp2ss, zp2tf.

    Литература

    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

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