Разработка БИХ–фильтров с помощью MATLAB



Средство MATLAB Signal Processing Toolbox предлагает много полезных функций для разработки и анализа классических БИХ–фильтров (например, Баттерворта, Чебышева типа I и II, эллиптических фильтров) для данного набора спецификаций (например, граничные частоты полос пропускания и подавления, неравномерность в полосе пропускания и затухание в полосе подавления).

В частности, Toolbox предлагает функции преобразования классических аналоговых фильтров в эквивалентные фильтры дискретного времени.

Напомним, что критичным этапом разработки цифрового БИХ–фильтра является расчет коэффициентов. Для классических цифровых БИХ–фильтров можно следующим образом подытожить действия на этом этапе.

1. Задать дискретный фильтр.

2. Определить подходящий аналоговый фильтр нижних частот, например, с характеристикой Баттерворта, Чебышева типа I, Чебышева типа II или эллиптической характеристикой.

3. Преобразовать аналоговый фильтр–прототип в фильтр нижних частот, верхних частот, полосовой или режекторный.

4. Перевести преобразованный фильтр в эквивалентный фильтр дискретного времени (например, используя метод инвариантного преобразования импульсной характеристики или билинейного z-преобразования).

 

Средство Signal Processing Toolbox предлагает несколько высокоуровневых функций для одновременного или поочередного выполнения этапов 2-4. Приведем, например, синтаксис команды MATLAB для создания фильтра нижних частот, верхних частот, полосового или режекторного фильтра с характеристикой Баттерворта (этапы 1 и 2):

 

[b,a]=butter(N, We, options)

[z,p,k]=butter(N, We, options)

 

Первая команда определяет коэффициенты числителя и знаменателя фильтра Баттерворта дискретного времени N-гo порядка с частотой среза по уровню 3 дБ (или гра­ничной частотой) Wc, нормированной на частоту Найквиста. Коэффициенты числителя и знаменателя фильтра возвращаются в векторы b и a соответственно по возрастающим отрицательным степеням z.

Если опустить слово "options", команда по умолчанию рассчитывает фильтр нижних частот (если Wc является вектором частот, по умолчанию рассчитывается полосо­вой фильтр). Для вычисления коэффициентов фильтра верхних частот и режекторного фильтра нужно соответственно использовать опции "high" и "stop". Для полосовых и режекторных фильтров Wc – это двухкомпонентный вектор, задающий частоты среза (или граничные частоты):

 

Wc = [ωc1 , ωc2],

 

где ωc1 < ω < ωc2 — полоса пропускания (полосовые фильтры) или полоса подавления (режекторные фильтры).

Вторая команда возвращает положения нулей z и полюсов р в и коэффи­циент усиления фильтра к.

Подобные команды существуют и для других классических фильтров. Например, для фильтров Чебышева типа I и типа II и эллиптических фильтров используются команды MATLAB со следующим синтаксисом:

 

[b,a]=chebyl(N,Ар,We,options)

[z,p.k]=chebyl(N,Ap,Wc,options)

[b,a]=cheby2(N,As,Wc,options)

[z,p.k]=cheby2(N,As,Wc,options)

[b,a]=ellip(N,Ap,As,Wc,options)

[z,p.k]=ellip(N,Ap,As,Wc,options)

 

Здесь Ар и As — неравномерность в полосе пропускания и затухание в полосе подавления в децибелах соответственно.

Перечисленные функции позволяют рассчитывать как дискретные, так и аналоговые фильтры. Признаком дискретного расчета служит отсутствие строки `s` в конце списка входных параметров.

Существуют и другие полезные команды, которые можно использовать для выполнения промежуточных задач в процессе вычисления коэффициентов. Например, команды buttord, chebylorc и ellipord можно использовать для определения порядка подходящего фильтра. Параметры подходящих аналоговых фильтров-прототипов нижних частот можно определить с помощью команд butterp, chebylp, cheby2p и ellipp.

 

ЗАДАНИЯ ДЛЯ ВЫПОЛНЕНИЯ

1. Повторить теорию, обосновывающую переход от непрерывных передаточных функций к дискретным передаточным функциям при различных методах аппроксимации.

2. По заданной передаточной функции аналогового фильтра (табл.1) определить передаточные функции дискретных фильтров, используя пакет MATLAB, при разных интервалах дискретности и при разных методах аппроксимации:

2.1. метод инвариантного преобразования импульсной переходной функции;

2.2. метод билинейного преобразования.

3. FDATool. Изобразить диаграмму нулей и полюсов. Получить коэффициенты фильтра. Данные в таблице 2.

4. Сравните инвариантное преобразование им­пульсной характеристики и билинейное z-преобразование с точки зрения

4.1. влияния эффекта Найквиста на амплитудную характеристику, фазовую и групповую задержки;

4.2. распределения диаграмм нулей и полюсов.   

В качестве инструментов при исследовании используйте MATLAB и следующие фильтры. Текст программы на MATLAB для ФНЧ приводится ниже задания (Пример 5). Модернизируйте ее для каждого случая. Данные в таблицах 3-4

1. Фильтр нижних частот.

2. Полосовой фильтр.

 

Пример 5.Фильтр нижних частот

Эллиптический фильтр нижних частот со следующими спецификациями:

    полоса пропускания                           0-1 кГц

    полоса подавления                             3-5 кГц

    неравномерность в полосе пропускания    1 дБ

    затухание в полосе подавления         60 дБ

    частота дискретизации                       10 кГц

 

%Сравнение амплитудной и фазовой характеристик аналогового и эквивалентныхему цифровых фильтров, полученных с помощью билинейного z-преобразования и инвариантного преобразования импульсной характеристики. Диаграмма нулей и полюсов

 

Fs=10000;

FN=Fs/2;

fp=1000;

fs=3000;

wp=fp*2*pi;

ws=fs*2*pi;

Ap=1;

As=60;

%

% Расчет коэффициентов и частотных характеристик

[N, wc]=ellipord(wp, ws, Ap, As,'s'); % Аналоговый фильтр

[B, A]=ellip(N, Ap, As, wc, 's');

[bBZT, aBZT]=bilinear(B,A,Fs); % билинейное z-преобразование

[bIIT,aIIT]=impinvar(B,A,Fs);    % инв. преобразование имп.хар-ки

%

% Расчет частотных характеристик

[Ha, wa]=freqs(B,A);   

[HBZT, fBZT]=freqz(bBZT, aBZT, 512, Fs);

[HIIT, fIIT]=freqz(bIIT, aIIT, 512, Fs); 

%

% Вывод АЧХ

%

figure(1);                  % АЧХ аналогового фильтра

plot(wa/(2*pi), 20*log10(abs(Ha)))

hold on

figure (1);

plot(fBZT, 20*log10(abs(HBZT)), 'r:') % АЧХ билинейное z-преобразование

hold on

figure (1);

plot(fIIT, 20*log10(abs(HIIT)), 'g:') % АЧХ инв. преобразование имп.хар-ки

legend('Analog', 'BZT', 'Imp Invar');

axis([0 10000 -120 0])

ylabel('Magnitude (dB)')

xlabel('Frequency (Hz)')

title('Filter magnitude responses')

hold off;

%

% Вывод ФЧХ

%

figure(2);

plot(wa/(2*pi), angle(Ha)*180/pi)    % Аналоговый фильтр

hold on

figure (2);

plot(fBZT, angle(HBZT)*180/pi, 'r:') % ФЧХ билинейное z-преобразование

hold on

figure(2);

plot(fIIT, angle(HIIT)*180/pi, 'g.') % ФЧХ инв. преобразование имп.хар-ки

legend('Analog', 'BZT','Imp Invar');

axis([0 10000 -360 360])

ylabel('Phase (Degrees)')

xlabel('Frequency (Hz)')

title('Filter Phase Responses')

hold off

%

% Диаграммы нулей и полюсов

%

figure (3);

zplane(bBZT, aBZT)

title('Pole-zero diagram - BZT filter')

figure (4);

zplane(bIIT, aIIT)

xmin=-1; xmax=1; ymin=-1; ymax=1; % Масштабирование z-плоскости

axis([xmin xmax ymin ymax])

title('Pole-zero diagram - impulse invariance filter')

 

Требования к содержанию отчета: составьте отчет в электронном виде, включающий все команды, вводимые в командной строке MATLAB и все полученные графики.

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

 

1. Какие математические преобразования положены в основу определения дискретной передаточной функции методом импульсной переходной характеристики?

2. Какие математические преобразования положены в основу определения дискретной передаточной функции методом билинейного преобразования?

3. Дайте сравнительную характеристику методик определения параметров дискретного фильтра с помощью импульсной переходной характеристики и с помощью билинейного преобразования.

4. В каком диапазоне изменяется цифровая частота при построении логарифмических характеристик дискретных фильтров?

5. Как по цифровой частоте и интервалу дискретности определить круговую частоту?

6. Обоснуйте последовательность шагов, которые следует применить к передаточной функции аналогового фильтра, что бы методом билинейного преобразования получить передаточную функцию дискретного фильтра.

7. Представьте фрагмент программы, позволяющую получить передаточную функцию дискретного фильтра по его аналоговому эквиваленту методом билинейного преобразования.

8. Из каких соображений выбирается граничная частота и как она связана с интервалом дискретности?

9. Как перейти от аналогового фильтра к дискретному фильтру, используя метод импульсной переходной характеристики?

10. Как перейти от аналогового фильтра к дискретному фильтру, используя метод билинейного преобразования

11. В пакете MATLAB представьте фрагмент программы, в которой определяются параметры дискретного фильтра по его аналоговому эквиваленту, использующий метод импульсной переходной функции.

12. В пакете MATLAB представьте фрагмент программы, в которой определяются параметры дискретного фильтра по его аналоговому эквиваленту, использующий метод билинейного преобразования.

13. Что такое эффект Найквиста?

14. Простой способ подавления искажений, вызванных эффектом Найквиста?

15. Перечислите несколько команд MATLAB для разработки БИХ-фильтров.

16. Опишите метод размещения нулей и полюсов.

17. Определите недостатки метода размещения нулей и полюсов.

18. Что нужно сделать, чтобы коэффициенты фильтра при разработке его с помощью метода размещения нулей и полюсов были действительными?

 

 

Таблица 1

 

Вариант Передаточная функция системы
1  
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Таблица 2

Нули и полюсы фильтра

 

Вариант Нули Полюсы
1 -0.5; 0.01 0.32; 0.12; 0
2 0.11; 023 0.57; 0.21; 0.5±0.6i
3 0.12; 0.67;0.07 0.11;0.34±0.34i
4 -0.01; -0.7; 0.03 -0.89; 0.82±0.03i
5 0.5±0.13i; 0.91 0.23; 0.76; 0.5±0.23i
6 0.34; -0.12; 0.12 0.89; 0.82; 0.12
7 0.1±0.55i; 0.4±0.8i 0.33; 0.44; 0.13
8 1.12±0.12i; 0.45; 0.32 0.31±0.7i; 0; 0.24
9 0.77; 0.88 0.05±0.6i;0.7±0.3i
10 0.1±1i;0.9; 0.7 0.7; 0.1; 0.84±0.1
11 0.9±0.i1; 0.45±0.3i; 0.1 0.91±0.9i; 0.45±0.4i; 0
12 0.32±0.3i; 0.5; 0.8 0.75; 0.24; 0.63±0.2i
13 0.64; 0.24; 0.7 0.41; 0.83; 1
14 0.2±1i; 0.74±0.99i 0.43±0.01i; 0.14±1i; 0.1
15 1.24±0.2i; 0.77±0.5i; 1.05 0.99±1i; 0; 0; 0.11±0.51i

 

Таблица 3

Фильтр нижних частот

 

Вариант Полоса пропускания, кГц Полоса подавления, кГц Неравномерность в полосе пропускания, дБ Затухание в полосе подавления, дБ Частота дискретизации, кГц
1 0-2.1 3-5 1 60 10
2 0-1.5 2-4 2 55 8
3 0-2.7 3-5 3 50 10
4 0-2.4 3-4 1 60 8
5 0-1.8 3-5 3 55 10
6 0-3.5 4-5 3 70 10
7 0-1.3 1.8-4 1 60 8
8 0-3.6 4.3-6 2 50 12
9 0-2.6 4-6 3 70 12
10 0-2 3-4 1 50 8
11 0-3 4-6 2 70 12
12 0-2.3 2.8-5 1 65 10
13 0-2.2 3-6 3 60 12
14 0-1.2 2-4 1 50 8
15 0-3.2 4-5 1 70 10

 

Таблица 4

Полосовой фильтр

 

Вариант Полоса пропускания, Гц Неравномерность в полосе подавления, Аs, Дб Неравномерность в полосе пропускания, Ap, Дб Частота дискретизации, Гц
1 200-300 60 1 2000
2 400-800 55 2 2000
3 200-400 50 3 1000
4 400-700 60 1 1600
5 300-500 55 3 1300
6 250-450 70 3 1000
7 100-600 60 1 1400
8 400-1000 50 2 2500
9 100-200 70 3 500
10 500-800 50 1 3000
11 300-600 70 2 1800
12 350-700 65 1 1700
13 150-400 60 3 1000
14 300-600 50 1 1500
15 400-800 70 1 3000

 

 

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

 

1) Айфичер Э.С., Джервис Б.У. Цифровая обработка сигналов: практический подход [Текст]: Пер с анг. – М.: Издательский дом «Вильямс», 2004. – 992с.

2) Сергиенко А.Б. Цифровая обработка сигналов [Текст] – СПб.: Питер, 2002. – 608с.

3) www.matlab.dp.ua [Электронный ресурс]

 


Дата добавления: 2018-04-05; просмотров: 2069; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!