В этом примере показано, как спроектировать многоступенчатые полудиапазонные БИХ дециматоры.
Подобна конечная импульсная характеристика многоскоростных фильтров, БИХ дециматоры/интерполяторы полуполос могут быть реализованы с использованием эффективных структур полифазы. БИХ полифазы фильтры представляют несколько интересных свойств: им требуется очень небольшое количество умножителей для реализации, они по своей сути стабильны, имеют низкую чувствительность округления шуму и нет циклов предела.
Butterworth и эллиптический БИХ фильтры могут быть разработаны с полуполосой типом отклика дециматора/интерполятора. Кроме того, возможно достичь почти линейного фазового отклика с помощью специализированных алгоритмов проекта БИХ.
Способ измерения вычислительной стоимости фильтра состоит в том, чтобы определить, сколько умножений необходимо вычислить (в среднем) на входную выборку (MPIS). Рассмотрим тематическое исследование количества MPIS: Конечная импульсная характеристика и БИХ для следующих спецификаций фильтра:
Fs = 9.6e3; % Sampling frequency: 9.6 kHz TW = 120; % Transition width Ast = 80; % Minimum stopband attenuation: 80 dB M = 8; % Decimation factor NyquistDecimDesign = fdesign.decimator(M,'Nyquist',M,TW,Ast,Fs);
Способ получить эффективную конечную импульсную характеристику проектов с помощью многоступенчатого многоступенчатого метода. Этот проект результатов в три конечной импульсной характеристики полудиапазонных дециматорах в каскаде. Полудиапазонные фильтры чрезвычайно эффективны, потому что каждый другой коэффициент равен нулю.
MultistageFIRDecim = design(NyquistDecimDesign,'multistage',... 'HalfbandDesignMethod','equiripple','SystemObject',true); cost(MultistageFIRDecim)
ans = struct with fields: NumCoefficients: 69 NumStates: 126 MultiplicationsPerInputSample: 12.8750 AdditionsPerInputSample: 12
Этот метод достигает вычислительных затрат 12,875 MPIS в среднем.
Эллиптические фильтры являются БИХ оптимальных фильтров равновесия. Этот проект приводит к трём полуполосам БИХ в каскаде. Эллиптические проекты обеспечивают наиболее эффективный БИХ полуполосы проектов.
MultistageIIRDecim = design(NyquistDecimDesign,'multistage',... 'HalfbandDesignMethod','ellip','SystemObject',true); cost(MultistageIIRDecim)
ans = struct with fields: NumCoefficients: 11 NumStates: 17 MultiplicationsPerInputSample: 2.5000 AdditionsPerInputSample: 5
Этот метод достигает вычислительных затрат всего 2,5 MPIS в среднем.
Если наложить величину отклики конечной импульсной характеристики и БИХ мультистадийных фильтров, эти два фильтра выглядят очень похожими, и оба отвечают спецификациям.
fvFig = fvtool(MultistageFIRDecim,MultistageIIRDecim,'Color','white'); legend(fvFig, 'Multirate/Multistage FIR Polyphase', ... 'Multirate/Multistage IIR Polyphase')
Закрытие проверки на самом деле показывает, что неравномерности в полосе пропускания БИХ фильтра намного выше, чем у конечной импульсной характеристики фильтра. Таким образом, вычислительная экономия не происходит по цене снижения величины.
fvtool(MultistageFIRDecim,MultistageIIRDecim,'Color','white'); title('Passband Magnitude Response (dB)') axis([0 0.325 -0.0016 0.0016])
Путем изменения структуры, используемой для реализации каждого БИХ полуполосы фильтра, можно достичь почти линейных проектов фазы с помощью БИХ фильтров. Этот проект также приводит к трем полудиапазонным дециматорам в каскаде. Однако каждая полуполоса реализована определенным образом, который включает в себя чистую задержку, соединенную параллельно с фильтром allpass. Это ограничение на реализацию помогает обеспечить квазилинейный фазовый отклик. Это происходит за счет небольшого увеличения вычислительных затрат по сравнению с эллиптическими проектами.
IIRLinearPhaseFilt = design(NyquistDecimDesign,'multistage',... 'HalfbandDesignMethod','iirlinphase','SystemObject',true); cost(IIRLinearPhaseFilt)
ans = struct with fields: NumCoefficients: 25 NumStates: 55 MultiplicationsPerInputSample: 4.3750 AdditionsPerInputSample: 8.7500
Хотя проект не так эффективен, как эллиптический случай, тем не менее, более эффективен, чем использование конечной импульсной характеристики полуполос.
Накладывая групповую задержку трех проектов и ориентируясь на полосу пропускания фильтра (область интереса), мы можем проверить, что последняя схема БИХ достигает квазилинейной фазы (почти плоская задержка группы) в этой области. Напротив, эллиптический фильтр, хотя и более эффективный (и с более низкой задержкой группы в целом), имеет явно нелинейный фазовый отклик.
fvFig = fvtool(MultistageFIRDecim,MultistageIIRDecim,IIRLinearPhaseFilt,... 'Color','white','Analysis','grpdelay'); axis([0 0.6 0 225]) title('Passband Group delay') legend(fvFig, 'Linear-Phase FIR', 'Nonlinear Phase Elliptic IIR',... 'Quasi-Linear Phase IIR')
Полифазные БИХ могут быть реализованы различными способами. Мы уже сталкивались с односкоростным и многократным каскадным альпасом в предыдущих разделах. А теперь возьмем, например, трансформатор Гильберта. Квазилинейный фильтр Гильберта БИХ с шириной перехода 96Hz и максимальной неравномерности в полосе пропускания 0,1 дБ может быть реализован в виде каскадного волнового цифрового фильтра, использующего только 10 MPIS по сравнению с 133 MPIS для конечной импульсной характеристики эквивалента:
HilbertDesign = fdesign.hilbert('TW,Ap',96,.1,Fs); HilbertIIRFilt = design(HilbertDesign,'iirlinphase',... 'FilterStructure','cascadewdfallpass',... 'SystemObject',true); cost(HilbertIIRFilt)
ans = struct with fields: NumCoefficients: 10 NumStates: 33 MultiplicationsPerInputSample: 10 AdditionsPerInputSample: 25
Было доказано, что волновые цифровые фильтры очень устойчивы, даже когда полюса близки к модулю кругу. Они по своей сути стабильны, имеют низкие округления шумовые свойства и не содержат предела циклов. Чтобы преобразовать наш фильтр Гильберта БИХ в представление с фиксированной точкой, мы можем использовать команду realizemdl и Fixed-Point Tool, чтобы выполнить преобразование из плавающей запятой в фиксированную запятую модели Simulink:
realizemdl(HilbertIIRFilt)
БИХ фильтры традиционно считаются намного более эффективными, чем их конечной импульсной характеристикой аналоги, в том смысле, что они требуют гораздо меньшего числа коэффициентов в порядок для соответствия данному набору спецификаций.
Современные конечные импульсные характеристики создания фильтра инструменты, использующие мультират/полифазные методы, преодолели зазор, обеспечивая при этом линейно-фазовую характеристику наряду с хорошей чувствительностью к эффектам квантования и отсутствием проблем устойчивости и предельных циклов при реализации в фиксированной точке.
Однако БИХ-полифазные фильтры пользуются большинством преимуществ, которые имеют КИХ-фильтры, и требуют очень небольшого количества умножителей для их реализации.