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