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

sos2cell

Преобразование матрицы секций второго порядка в вектор любого типа.

Библиотека

EngeeDSP

Синтаксис

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

  • cll = sos2cell(sos) — формирует вектор любого типа cll, содержащий коэффициенты системы фильтров, описываемой матрицей секций второго порядка sos.

  • cll = sos2cell(sos,g) — также задает масштабный коэффициент усиления g для добавления в представление вектора любого типа cll системы, указанной в аргументе sos.

Аргументы

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

# sos — представление секций второго порядка
матрица

Details

Представление секций второго порядка, заданное как матрица. Аргумент sos — это матрица размером , где — количество секций второго порядка:

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

Типы данных

Float32, Float64

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

Да

# g — масштабный коэффициент усиления
1 (по умолчанию) | скаляр

Details

Масштабный коэффициент усиления, заданный как скаляр.

Типы данных

Float32, Float64

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

Да

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

# cll — представление секций второго порядка в виде вектора любого типа
вектор типа Any

Details

Представление секций второго порядка, возвращаемое в виде двухэлементного вектора типа Any следующей длины:

  • элементов — если значение аргумента g равно 1 или если оно не задано. Каждый элемент вектора любого типа соответствует секции второго порядка. Например, элемент вектора cll[k] содержит коэффициенты из -й секции матрицы sos.

    cll[k] = [sos(k, 1:3) sos(k, 4:6)]
  • элемент — если значение аргумента g отлично от 1. Первый элемент вектора cll содержит коэффициент усиления, указанный в аргументе g. Каждый последующий элемент вектора любого типа соответствует секции второго порядка. Например, элемент вектора cll[k+1] содержит коэффициенты из -й секции матрицы sos.

    cll[1] = [g 1]
    cll[k+1] = [sos(k, 1:3) sos(k, 4:6)]

Примеры

Вектор секций второго порядка эллиптического фильтра

Details

Создадим эллиптический фильтр нижних частот 4-го порядка с пульсациями в полосе пропускания 0.5 дБ и затуханием в полосе заграждения 20 дБ. Граница полосы пропускания составляет 0.6 от частоты Найквиста. Преобразуем передаточную функцию в матрицу секций второго порядка.

import EngeeDSP.Functions: ellip, tf2sos

b, a = ellip(4, 0.5, 20, 0.6)
m = tf2sos(b, a)

Используем функцию sos2cell для преобразования матрицы размером 2 на 6, полученной с помощью функции tf2sos, в вектор любого типа c размером 1 на 2. Отобразим второй элемент первого элемента вектора c. Убедимся, что он содержит коэффициенты знаменателя первой секции второго порядка матрицы m.

c = sos2cell(m)
compare = [c[1][2]; m[1, 4:6]']
2×3 Matrix{Float64}:
 1.0  0.167735  0.257534
 1.0  0.167735  0.257534