sos

Преобразуйте в разделы второго порядка

Описание

пример

sysobjsos = sos(sysobj) преобразует БИХ-Систему фильтра дискретного времени object™ в форму секции второго порядка (SOS). sysobjsos выходом является dsp.BiquadFilter Системный объект.

sysobjsos = sos(sysobj,dir_flag) перестраивает секции второго порядка согласно близости до начала координат полюсов разделов.

Примеры

свернуть все

Преобразуйте БИХ-объект фильтра дискретного времени в биквадратный объект фильтра, который содержит соответствующие разделы SOS.

Спроектируйте 10-й порядок Фильтр Баттерворта lowpass с помощью butter функция.

N = 10;
Fc = 0.4;
[b,a] = butter(N,Fc);

Создайте dsp.IIRFilter возразите и присвойте спроектированные коэффициенты Numerator и Denominator свойства объекта.

iir = dsp.IIRFilter('Numerator',b,'Denominator',a)
iir = 
  dsp.IIRFilter with properties:

            Structure: 'Direct form II transposed'
            Numerator: [1x11 double]
          Denominator: [1x11 double]
    InitialConditions: 0

  Show all properties

Используйте sos функционируйте, чтобы преобразовать БИХ-объект фильтра в биквадратный фильтр, который содержит соответствующие разделы SOS.

biquad = sos(iir)
biquad = 
  dsp.BiquadFilter with properties:

                   Structure: 'Direct form II transposed'
             SOSMatrixSource: 'Property'
                   SOSMatrix: [5x6 double]
                 ScaleValues: [6x1 double]
           InitialConditions: 0
    OptimizeUnityScaleValues: true

  Show all properties

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

sMatrix = biquad.SOSMatrix
sMatrix = 5×6

    1.0000    2.0958    1.0984    1.0000   -0.3187    0.0313
    1.0000    2.0576    1.0602    1.0000   -0.3345    0.0826
    1.0000    1.9981    1.0005    1.0000   -0.3695    0.1958
    1.0000    1.9412    0.9436    1.0000   -0.4317    0.3969
    1.0000    1.9073    0.9097    1.0000   -0.5380    0.7410

sValues = biquad.ScaleValues
sValues = 6×1

    0.0005
    1.0000
    1.0000
    1.0000
    1.0000
    1.0000

Чтобы проверить, сравните эти значения со значениями, полученными с помощью tf2sos функция.

[sMatrixfn,g] = tf2sos(b,a)
sMatrixfn = 5×6

    1.0000    2.0958    1.0984    1.0000   -0.3187    0.0313
    1.0000    2.0576    1.0602    1.0000   -0.3345    0.0826
    1.0000    1.9981    1.0005    1.0000   -0.3695    0.1958
    1.0000    1.9412    0.9436    1.0000   -0.4317    0.3969
    1.0000    1.9073    0.9097    1.0000   -0.5380    0.7410

g = 4.9945e-04
isequal(sMatrix,sMatrixfn)
ans = logical
   1

isequal(sValues(1),g)
ans = logical
   1

Входные параметры

свернуть все

БИХ-объект фильтра дискретного времени в виде dsp.IIRFilter Системный объект.

Флаг направления полюса в виде также:

  • 'up' – Первая строка содержит самые близкие началу координат полюса, и последняя строка содержит полюса, самые близкие к модульному кругу.

  • 'down' – Разделы упорядочены в противоположном направлении. Нули всегда соединяются с полюсами, самыми близкими к ним.

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

свернуть все

Объект фильтра раздела второго порядка, возвращенный как dsp.BiquadFilter Системный объект. sos функция преобразует числитель фильтра входа IIR и коэффициенты знаменателя в матрицу SOS и значения шкалы и присваивает эти значения dsp.BiquadFilter объект.

Смотрите также

| | | |

Введенный в R2011a