Преобразуйте квантованный фильтр в форму разделов второго порядка (SOS)
Hq2 = sos(Hq)
Hq2 = sos(Hq, order)
Hq2 = sos(Hq, order, scale)
Hq2 = sos(Hq)
возвращает квантованный фильтр Hq2
, который имеет разделы второго порядка и структуру dft2
. Используйте те же дополнительные аргументы, используемые в tf2sos
.
Hq2 = sos(Hq, order)
задает порядок разделов в Hq2
, где order
является одной из следующих опций:
'down'
— чтобы заказать разделы так, первый раздел Hq2
содержит полюса, самые близкие к модульному кругу (масштабирование нормы L∞)
'up'
— чтобы заказать разделы так, первый раздел Hq2
содержит полюса, самые дальние от модульного круга (масштабирование нормы L2 и значение по умолчанию)
Hq2 = sos(Hq, order, scale)
также задает желаемое масштабирование усиления и коэффициенты числителя всех разделов второго порядка, где scale
является одной из следующих опций:
'none'
не применять масштабирование (значение по умолчанию)
Inf
применять масштабирование нормы бесконечности
'two'
— применять масштабирование 2-нормы
Hq2
является Системный объект фильтра dsp.BiquadFilter
.
Используйте норму бесконечности, масштабирующуюся в сочетании с заказывающим, чтобы минимизировать вероятность переполнения в реализации фильтра. Рассмотрите использование 2-нормы, масштабирующейся в сочетании с вниз заказывающим, чтобы минимизировать пиковый шум округления.
Когда Hq
является фильтром фиксированной точки, коэффициенты фильтра нормированы так, чтобы значение максимального коэффициента в каждом разделе равнялось 1. Усиление фильтра применяется к первому значению шкалы Hq2
.
sos
использует прямую форму II транспонированный (dft2
) структура, чтобы реализовать фильтры раздела второго порядка.
[b,a]=butter(8,.5); Hq = dfilt.df2t(b,a); Hq.arithmetic = 'fixed'; Hq1 = sos(Hq) Hq1 = FilterStructure: 'Direct-Form II Transposed, Second-Order Sections' Arithmetic: 'double' sosMatrix: [4x6 double] ScaleValues: [0.00927734375;1;1;1;1] OptimizeScaleValues: true PersistentMemory: false