Документация Engee

scaleFilterSections

Страница в процессе разработки.

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

Библиотека

EngeeDSP

Синтаксис

Вызов функции

  • Bg = scaleFilterSections(B, g) — масштабирует секции коэффициентов числителя B каскадной передаточной функции, представленной с помощью Каскадные передаточные функции (CTF), применяя масштабные значения g.

Аргументы

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

# B — коэффициенты числителя каскадной передаточной функции без масштабирования
матрица

Details

Коэффициенты числителя каскадной передаточной функции (CTF) без масштабирования, заданные в виде матрицы:

  • Количество строк в B равняется , где — количество секций каскадного фильтра.

  • Количество столбцов в B равняется , где — порядок секции.

  • Если вы укажете B в виде вектора, то scaleFilterSections будет обрабатывать B как матрицу, определяя количество секций и порядок числителя в зависимости от размера вектора:

    • Вектор-строка — функция обрабатывает B как односекционную передаточную функцию с порядком числителя , где — количество столбцов. Каждый -й столбец B соответствует коэффициенту числителя.

    • Вектор-столбец — функция обрабатывает B как -секционную передаточную функцию со скалярными числителями. Каждая строка B соответствует числителю в каждой соответствующей секции.

Типы данных

Float64

Поддержка комплексных чисел

Да

# g — масштабные значения
скаляр | вектор

Details

Масштабные значения, заданные как вещественный скаляр или вектор длины , где — количество секций CTF:

  • Если g скаляр, то функция равномерно распределяет масштабное значение по всем секциям фильтра.

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

Типы данных

Float64

Поддержка комплексных чисел

Нет

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

# Bg — матрица масштабированных коэффициентов числителя CTF
матрица

Details

Масштабированные коэффициенты числителя CTF, возвращаемые в виде матрицы того же размера, что и B.

Подробную информацию см. в разделе Алгоритмы.

Типы данных

Float64

Поддержка комплексных чисел

Да

Дополнительно

Каскадные передаточные функции (CTF)

Details

Разделение цифрового БИХ-фильтра на каскадные секции повышает его численную устойчивость и снижает восприимчивость к ошибкам квантования коэффициентов. Каскадная форма передаточной функции через передаточных функций имеет вид:

filtfilt ru

Алгоритмы

Details

Функция scaleFilterSections масштабирует матрицу B с помощью скаляра или вектора g и возвращает Bg в виде одного из следующих значений:

  • Если g — скаляр:

    L = size(B, 1)
    gL = (abs(g))^(1/L)
    Bg = B * gL
    Bg[L, :] = sign(g) * Bg[L, :]
  • Если g — вектор с отсчетами, заданными секциями:

    L = size(B, 1)
    gS = g[end]
    gL = (abs(gS))^(1/L)
    gl = g[1:end-1]
    Bg = B .* gl[:] * gL
    Bg[L, :] = sign(gS) * Bg[L, :]

Литература

  1. Lyons, Richard G. Understanding Digital Signal Processing. Upper Saddle River, NJ: Prentice Hall, 2004.