Преобразуйте квантованный фильтр в форму секций второго порядка (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-нормы
Используйте норму по бесконечности, масштабирующуюся в сочетании с заказывающим, чтобы минимизировать вероятность переполнения в реализации фильтра. Рассмотрите использование 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