Моделирование цифровой обработки сигналов ЦОС в Matlab. Часть 2. Синтез оптимальных БИХ-фильтров программными средствами Matlab

Алла СОЛОНИНА

Моделирование цифровой обработки сигналов в MATLAB.

Часть 2. Синтез оптимальных БИХ-фильтров программными средствами MATLAB

Основные этапы проектирования цифровых фильтров (КИХ и БИХ) были рассмотрены в [6]. В этой статье автор знакомит читателей с синтезом оптимальных БИХ-фильтров — первым этапом их проектирования.

Свойства БИХ-фильтров

БИХ-фильтр описывается передаточной функцией общего вида:

N-1

— (1) 1+^акг~к к=\

и при (М-1)<(М-1) (по умолчанию) имеет порядок Я = М-1.

Сложность БИХ-фильтра определяется порядком Я передаточной функции (1).

БИХ-фильтры характерны следующими особенностями:

• нелинейной ФЧХ;

• необходимостью проверки на устойчивость.

Задание требований к частотным характеристикам БИХ-фильтров

При синтезе частотно-избирательных БИХ-фильтров с существенно нелинейной ФЧХ последняя обычно не контролируется, и требования задаются к АЧХ. Они не отличаются от требований к АЧХ КИХ-фильт-ров, за тем исключением, что для рассматриваемого далее метода синтеза значение АЧХ в полосе пропускания не превышает единицы. Кроме того, для БИХ-фильтров требования задаются к характеристике затухания — АЧХ (дБ) (см. формулу (6) в [6]) и включают в себя:

• частоту дискретизации /д (Гц);

• граничные частоты полос пропускания (ПП) и полос задерживания (ПЗ), для которых введены условные обозначения:

- / — граничная частота ПП для ФНЧ иФВЧ;

- /к—граничная частота ПЗ для ФНЧ и ФВЧ;

- /у, / — левая и правая граничные частоты ПП для ПФ и РФ;

- /-к, /к — левая и правая граничные частоты ПЗ для ПФ и РФ;

• допустимые отклонения от А

(см. формулу (6) в [6]):

- атах (дБ) — максимально допустимое затухание в ПП;

- яш;п (дБ) — минимально допустимое затухание в ПЗ.

В статье рассматривается синтез оптимальных БИХ-фильтров методом билинейного 2-преобразования на основе аналоговых фильтров-прототипов (АФП).

Идея синтеза БИХ-фильтров на основе АФП возникла из желания воспользоваться давно известными и хорошо себя зарекомендовавшими методами синтеза аналоговых фильтров. Обоснование такой возможности вытекает из следующих положений:

• передаточные функции АФП и БИХ-филь-тров — дробно-рациональные;

• импульсные характеристики АФП и БИХ-фильтров — бесконечные.

Для того чтобы подчеркнуть контраст типа фильтра (аналоговый или цифровой), будем использовать аббревиатуры АФП и ЦФ, по умолчанию подразумевая под ЦФ БИХ-фильтр.

Процедура синтеза БИХ-фильтра

Процедура синтеза ЦФ на основе АФП включает в себя [4]:

1. Задание требований к АЧХ ЦФ.

2. Выбор метода синтеза.

3. Формирование требований к АЧХ АФП.

4. Выбор типа аппроксимирующей функции. Четырем типам аппроксимирующих функций соответствуют четыре разновидности аналоговых (и цифровых) фильтров:

- Баттерворта (Butterwhorth) — с АЧХ, максимально плоской в ПП и монотонной в ПЗ;

- Чебышева I рода (Chebyshov Type I) — с АЧХ, равноволновой в ПП и монотонной в ПЗ;

- Чебышева II рода (Chebyshov Type II) — с АЧХ, максимально плоской в ПП и равноволновой в ПЗ;

- Золотарева - Кауэра (эллиптические фильтры) (Eleptic) — с АЧХ, равноволновой в ПП и ПЗ.

5. Расчет передаточной функции АФП.

6. Преобразование передаточной функции АФП в передаточную функцию ЦФ.

Для лучшего понимания синтеза в MATLAB ЦФ на основе АФП коротко познакомимся с синтезом АФП.

Синтез аналоговых фильтров

Синтез частотно-избирательных АФП Баттерворта, Чебышева I и II рода и Золотарева - Кауэра выполняется соответственно с помощью функций:

[bs,as]=butter

[bs,as]=cheby1

[bs,as]=cheby2

[bs,as]=ellip

Здесь R — порядок АФП; Wn — вектор частот среза в шкале ю = 2nf (рад/с), содержащий один элемент — для ФНЧ и ФВЧ и два — для ПФ и РФ (частотами среза называют частоты, на которых нормированная АЧХ АФП A(f) равна 1/V2«0,707, а A(f) (дБ) — 3 дБ); rp, rs — соответственно максимально и минимально допустимые затухания amax (дБ) в ПП и «min (дБ) в ПЗ для A(f) (дБ); ftype — параметр, указывающий тип избирательности и принимающий значения: 'high' — для ФВЧ; 'stop' — для РФ; по умолчанию (если

значение параметра не задано явно) — для ФНЧ и ПФ; У — признак аналогового фильтра, при его отсутствии по умолчанию подразумевается ЦФ; Ь8, а8 — векторы коэффициентов числителя и знаменателя передаточной функции АФП На(р) в порядке возрастания степеней р; ав(1) = 1.

Выходными параметрами могут быть также нули, полюсы и коэффициент усиления передаточной функции, представленной в виде произведения простейших множителей. Соответствующий формат будет приведен для ЦФ.

Как правило, при синтезе АФП порядок фильтра (Я) и частоты среза (”Шп) заранее неизвестны. Их можно определить по требованиям к АЧХ с помощью следующих функций, соответственно для АФП Баттерворта, Чебышева I и II рода и Золотарева - Кауэра:

[К,'Шп]=ЬиИ:оЫ

[К,'Шп]=сЬеЬ1оЫ

[К,'Шп]=сЬеЬ2оЫ

[К,'Шп]=еШроЫ

Здесь И — минимальный порядок при заданных требованиях, соответствующий оптимальному АФП; Wp, Ws — соответственно векторы граничных частот ПП и ПЗ в порядке их следования слева направо в шкале частот ю = 2п/ (рад/с). Остальные параметры были определены ранее.

Пример 1

Синтезировать оптимальные АФП Баттер-ворта, Чебышева I и II рода и Золотарева -Кауэра по заданным требованиям к АЧХ ФНЧ (см. табл. 3 в [6]). Значения атах = 0,4455 дБ и ятт = 40 дБ (гр и ге) были вычислены в [6] в примере 1:

>> Й=1000; £к=1500;

>> Шр=2.*р1.*Й; Ш8=2.*р1.*£к;

>> гр=0.4455; к=40;

>> [R1,Wn1]=buttord(Wp,Ws,rp,rs,'s');

>> [R2,Wn2]=cheb1ord(Wp,Ws,rp,rs,'s');

>> [R3,Wn3]=cheb2ord(Wp,Ws,rp,rs,'s');

>> [R4,Wn4]=eШpoгd(Wp,Ws,гp,гs,У);

>>

>> [bs2,as2]=cheby1(R2,гp,Wn2,'s');

>> [bs3,as3]=cheby2(R3,гs,Wn3,'s');

>> [bs4,as4]=eШp(R4,гp,гs,Wn4,'s');

Выведем значения порядков R1, R2, R3, и R4 соответственно оптимальных ФНЧ Бат-терворта, Чебышева I и II рода и Золотарева - Кауэра:

>> R=[R1 R2 R3 R4]

R =

15 7 7 5

ЧГц)

f

ЧГц)

f

Рис. 1. АЧХ аналоговых ФНЧ: а) Баттерворта; б) Чебышева I рода; в) Чебышева II рода; г) Золотарева — Кауэра

Наименьший порядок имеет ФНЧ Золотарева - Кауэра.

Построим графики АЧХ аналоговых ФНЧ Баттерворта, Чебышева I и II рода и Золотарева - Кауэра на густой сетке частот (выберем 1000 точек) и выведем их в основной полосе частот [0; /д/2] ЦФ при частоте дискретизации 8000 Гц (для сравнения с ним впоследствии).

Для построения графиков АЧX АФП используем функцию:

Ha=freqs

где Ь8, а8 — коэффициенты числителя и знаменателя передаточной функции АФП; W — вектор, задающий сетку частот в шкале ю = 2 л/ (рад/с).

Выведем значения АЧХ всех АФП в одинаковом диапазоне [0;1] по оси ординат с помощью функции у1іт([0 1]) (рис. 1):

>> %f — густая сетка частот в Гц

>> %W — густая сетка круговых частот в рад/с

>> %oHa1,Ha2,Ha3,Ha4 — передаточные функции АФП Баттерворта,

... Чебышева I и II рода и Золотарева - Кауэра

>> Fs=8000;

>> f=0:((Fs/2)/1000):Fs/2;

>> W=2.*pi.*f;

>> Ha1=freqs(bs1,as1,W); MAG1=abs(Ha1);

>> Ha2=freqs(bs2,as2,W); MAG2=abs(Ha2);

>> Ha3=freqs(bs3,as3,W); MAG3=abs(Ha3);

>> Ha4=freqs(bs4,as4,W); MAG4=abs(Ha4);

>> subplot

Синтез БИХ-фильтров методом билинейного Z-преобразования

Отображение р-плоскости в г-плоскость выполняется в соответствии с формулой билинейного 2-преобразования:

lnz = 2

Z— 1 (Z—1

—+

Z+1

Z+1

и сохранения первого члена.

Формула (2) позволяет представить передаточную функцию ЦФ Н(г) на основе передаточной функции АФП На(р):

т=щр)

р=у—

1+г~1

Используя (2), выражаем г через р:

г = (у+р)/(у-р).

И подставляя г = те’ю и р = ]П, где — обо-

значение оси частот АФП (во избежание путаницы), получаем:

Y+/Q y'2arctg - = Є

У-jn

Р = У

1 —z

1+Z"1 ’

где у = 1/Т, получаемой из стандартного 2-преобразования г = ерТ ^ р = (1/Т)1п2, путем разложения Ыг в ряд Тейлора:

Откуда имеем нелинейные зависимости между частотами АФП и ЦФ:

г. t тТ ♦

^ = Ytg—= ?tg-;

Q Т

m=yarctg— .

Согласно (4), ось частот ] П р-плоскости, как и при стандартном 2-преобразовании, отображается на г-плоскости в единичную окружность (радиус равен единице), однако каждому ее обороту (изменению нормированной частоты на Дю = 2п), а именно: ..., -3п<(в<-п, -п<(в<п, л<Ю<3п, ..., соответствует не отрезок оси, как при стандартном Z-преобразовании, а вся ось ]П (так как зави-

симость между частотами определяется функцией агй£: ..., -ю<^<ю, -ю<^<ю, -TO<Q<<»...

Связь между частотными характеристиками АФП и ЦФ, соответственно И(ёюТ) и Иа(]ю), имеет вид [1, 4]:

' 2л)

a>+m—

V т,

.

При этом частотная характеристика АФП Ha(jQ), бесконечная в шкале частот Q, в шкале частот ( , согласно (б), сжимается в отрезок Д( = ( д, то есть становится финитной. Соответственно, частотная характеристика ЦФ H(ej (T), согласно (7), оказывается равной (с точностью до множителя 1/T) бесконечной сумме копий финитных частотных характеристик АФП длины Дю = юд, сдвинутых друг относительно друга на частоту ( д. Вследствие этого элайсинг (Aliasing) принципиально отсутствует, и АЧX ЦФ и АФП в основной полосе частот [0; юд/2] совпадают (с учетом нелинейной зависимости между частотами).

«Платой» за отсутствие элайсинга, помимо нелинейной зависимости между частотами АФП и ЦФ, будет полное несовпадение их импульсных характеристик и ФЧX.

Метод билинейного 2-преобразования реализуется по-разному, в зависимости от поставленной задачи, а именно:

• Если ЦФ синтезируется на основе имеющегося АФП (копирует его АЧX с учетом нелинейного соотношения между частотами), то в этом случае удобно воспользоваться функцией bilinear следующих основных форматов:

[b,a]=bilinear

[q,p,K]=bilinear

Здесь bs, as — векторы коэффициентов числителя и знаменателя передаточной функции АФП На(р) в порядке возрастания степеней р; ав(1)=1; Fs — частота дискретизации /д (Гц); Рр — необязательный параметр — частота /(Гц), на которой значения АЧХ АФП и ЦФ должны совпадать; Ь, а — векторы коэффициентов числителя и знаменателя передаточной функции ЦФ Н(г) (1) в порядке возрастания отрицательных степеней г, а(1) = 1; ц, р, К — соответственно векторы нулей и полюсов и коэффициент усиления передаточной функции, представленной в виде произведения простейших множителей:

ад-Чїо^'

тренной ранее для АФП, более того, используются те же функции, но без параметра '8':

[Ь,а]=Ьи«ег

[b,a]=cheby1

[Ь,а]=сЬеЬу2

[b,a]=eШp

Здесь R — порядок ЦФ; WDn — вектор нормированных частот среза в шкале / (частотами среза называют частоты, на которых нормированная АЧХ ЦФ А(/) равна 1/^2*0,707, а А(/) (дБ) — 3 дБ), содержащий один элемент для ФНЧ и ФВЧ, равный:

™п(1,=/0 = ^,

где f0 — абсолютная частота среза, и два — для ПФ и РФ, равные:

Лі

WDn(l)=/01 = WDn(l) =f02

Л/2’

. /о2

Л/2;

где г0к, г*к — соответственно к-е нуль и полюс передаточной функции (1), а Ь0 — коэффициент усиления; qs, ps, Ks — аналогичные параметры для передаточной функции АФП.

• Если ЦФ синтезируется непосредственно по заданным требованиям к АЧХ, то в этом случае процедура синтеза подобна рассмо-

где f01, f02 — абсолютные частоты среза; rp, rs — соответственно максимально и минимально допустимые затухания amax (дБ) в ПП и amin (дБ) в ПЗ для A(f) (дБ) (они совпадают с допустимыми отклонениями для АФП); ftype — параметр, указывающий тип избирательности и принимающий значения: 'high' — для ФВЧ; 'stop' — для РФ; по умолчанию (если значение параметра не задано явно) — для ФНЧ и ПФ; b, a — векторы коэффициентов числителя и знаменателя передаточной функции ЦФ (1) в порядке возрастания отрицательных степеней z где a(1)=1.

Примечание. Здесь и далее в обозначениях частот ЦФ добавлена буква “D” от слова “Digital”. Согласно (5-6) зависимость между частотами WDn и Wn нелинейная.

При синтезе ЦФ Баттерворта, Чебышева I и II рода и Золотарева - Кауэра по методу билинейного Z-преобразования свойство оптимальности ЦФ сохраняется: синтезируемый ЦФ, подобно АФП, при заданных требованиях к АЧХ (характеристике затухания) имеет минимальный порядок.

Расчет минимального порядка R и вектора частот среза WDn для ЦФ Баттерворта, Чебышева I и II рода и Золотарева - Кауэра выполняется с помощью тех же функций, что и для АФП, но без параметра 's':

[R,WDn]=buttord

[R,WDn]=cheb1ord

[R,WDn]=cheb2ord

[R,WDn]=ellipord

Здесь WDp, WDs — соответственно векторы граничных нормированных частот ПП и ПЗ в порядке их следования слева направо в шкале /. Остальные параметры были определены ранее.

При синтезе ЦФ с помощью данных функций в MATLAB реализуется алгоритм билинейного Z-преобразования, а именно:

• по требованиям к АЧХ ЦФ автоматически формируются требования к АЧХ АФП путем пересчета граничных частот по формуле (5);

• синтезируется АФП;

• в соответствии с (3) передаточная функция АФП Ha(p) преобразуется в передаточную функцию ЦФ H(z) (1).

Подобно функции bilinear, выходными параметрами функций butter, cheby1, cheby2 и ellip могут быть [q,p,K].

Приведем примеры синтеза оптимальных БИХ-фильтров ФНЧ и ПФ непосредственно по заданным требованиям к АЧХ (дБ) ЦФ.

Пример 2

Заданы требования к АЧХ ФНЧ (табл. 3 и пример 2 в [6]). Значения amax = 0,4455 дБ и «min = 40 дБ (rp и rs) были вычислены в [6] в примере 1. Синтезировать оптимальные БИХ-фильтры Баттерворта, Чебышева I и II рода и Золотарева - Кауэра методом билинейного 2-преобразования:

>> Fs=8000;

>> ft=1000; fk=1500;

>> ft=1000; fk=1500;;

>> [R2,WDn2]=cheb1ord(WDp,WDs,rp,rs);

>> [R3,WDn3]=cheb2ord(WDp,WDs,rp,rs);

>> [R4,WDn4]=ellipord(WDp,WDs,rp,rs);

>> [b1,a1]=butter(R1,WDn1);

>> [b2,a2]=cheby1(R2,rp,WDn2);

>> [b3,a3]=cheby2(R3,rs,WDn3);

>> [b4,a4]=ellip(R4,rp,rs,WDn4);

Выведем рассчитанные значения порядков R1, R2, R3, и R4 соответственно оптимальных ФНЧ Баттерворта, Чебышева I и II рода и Золотарева - Кауэра:

>> R=[R1 R2 R3 R4]

R =

12 7 7 5

Поскольку свойство оптимальности синтезируемых ЦФ сохраняется, их порядки совпадают с порядками соответствующих АФП (переменная R в примере 1).

Построим графики АЧХ БИХ-фильтров ФНЧ Баттерворта, Чебышева I и II рода и Золотарева - Кауэра на густой сетке частот (выберем 1000 точек) в основной полосе [0; /д/2] и одинаковом диапазоне [0;1] по оси ординат, установленном с помощью функции уНш([0 1]). АЧХ рассчитывается с помощью функции (рис. 2):

>> %f — густая сетка частот

>> %Ha1,Ha2,Ha3,Ha4 — передаточные функции АФП Баттерворта, ... Чебышева I и II рода и Золотарева - Кауэра >> Fs=8000;

>> f=0:((Fs/2)/1000):Fs/2;

>> Ha1=freqz(b1,a1,f,Fs); MAG1=abs(Ha1);

>> Ha2=freqz(b2,a2,f,Fs); MAG2=abs(Ha2);

>> Ha3=freqz(b3,a3,f,Fs); MAG3=abs(Ha3);

>> Ha4=freqz(b4,a4,f,Fs); MAG4=abs(Ha4);

>> subplot

и

0,5

1

0 1000 2000 3000 4000 0 1000 2000 3000 4000

f

f

0,5

V

0 1000 2000 3000 4000 0 1000 2000 3000 4000

ПГЦ) f

Рис. 2. АЧХ БИХ-фильтров ФНЧ:

а) Баттерворта; б) Чебышева I рода; в) Чебышева II рода; г) Золотарева — Кауэра

0,5

AJVVi

/ V

0 1000 2000 3000 4000 0 1000 2000 3000 4000

f

«Гц)

0,5

'

'

Рис. 3. АЧХ БИХ-фильтров ПФ:

а) Баттерворта; б) Чебышева I рода; в) Чебышева II рода; г) Золотарева — Кауэра

>> subplot

Пример 3

Заданы требования к АЧХ ПФ (табл. 4 и пример 3 в [6]). Значения атах = 0,4455 дБ и аШш = 40 дБ (гр и ге) были вычислены в [6] в примере 1. Синтезировать оптимальные БИХ-фильтры Баттерворта, Чебышева I и II рода и Золотарева - Кауэра методом билинейного 2-преобразования.

Параметры WDp и WDs представляют собой векторы из двух элементов:

>> Рэ=8000;

>> £к1=1000; Ш=1400; 02=2000; Ас2=2400;

>> Й=[Й1 £12]; £к=[£к1 £к2];

>> WDp=ft./(Fs/2); WDs=£k./(Fs/2);

>> гр=0.4455; к=40;

>> [R1,WDn1]=buttoгd(WDp,WDs,гp,гs);

>> [R2,WDn2]=cheb1oгd(WDp,WDs,гp,гs);

>> [R3,WDn3]=cheb2oгd(WDp,WDs,гp,гs);

>> [R4,WDn4]=eШpoгd(WDp,WDs,гp,гs);

>> [b1,a1]=butteг(R1,WDn1);

>> [b2,a2]=cheby1(R2,гp,WDn2);

>> [b3,a3]=cheby2(R3,гs,WDn3);

>> [b4,a4]=eШp(R4,гp,гs,WDn4);

Выведем рассчитанные значения порядков R1, R2, R3, и R4 соответственно оптимальных ПФ Баттерворта, Чебышева I и II рода и Золотарева - Кауэра:

>> R=[R1 R2 R3 R4]

R =

5 5 tv 4

Наименьший порядок имеет ФНЧ Золотарева - Кауэра.

Графики АЧХ БИХ-фильтров (рис. 3) ПФ Баттерворта, Чебышева I и II рода и Золотарева - Кауэра строятся так же, как для ФНЧ (пример 2).

Анализ БИХ-фильтра

В состав MATLAB входит программа GUI FVTool (Filter Visualization Tool — средства визуализации фильтра), предназначенная для анализа характеристик синтезированных ЦФ в окне Figure : Filter Visualization Tool, обращение к которой производится с помощью функции fvtool:

fvtool

Здесь b, a — векторы коэффициентов передаточной функции БИХ-фильтра.

Литература

1. Ingle V., Proakis J. Digital Signal Processing Using MATLAB. Second Edition — Thomson.

2. Оппенгейм А., Шафер Р. Цифровая обработка сигналов. М.: Техносфера, 2006.

3. Сергиенко А. Б. Цифровая обработка сигналов, 2-е изд. СПб.: ПИТЕР, 2006.

4. Солонина А. И., Улахович Д. А., Арбузов С. М., Соловьева Е. Б. Основы цифровой обработки сигналов. 2-е изд. СПб.: БХВ-Петербург, 2005.

5. Солонина А. И., Арбузов С. М. Цифровая обработка сигналов. Моделирование в MATLAB. СПб.: БХВ-Петербург, 2008.

6. Солонина А. Моделирование цифровой обработки сигналов в MATLAB. Часть 1. Синтез оптимальных (по Чебышеву) КИХ-фильтров программными средствами MATLAB // Компоненты и технологии. 2008. № 11.