1. Розрахунок аналогових фільтрів-прототипів.
2. Частотні перетворення фільтрів.
Короткі теоретичні відомості та методичні вказівки
Дана Лабораторна робота є продовженням роботи 5, так що відповідні теоретичні відомості та методичні вказівки наведені у попередній роботі.
6.1. Фільтр Баттерворта
Формула для АЧХ фільтра Баттерворта має вигляд:
,
де- частота зрізу (для фільтру-прототипу вона дорівнює 1 рад/с), n - порядок фільтра. Коефіцієнт передачі на нульовій частоті = 1, а на частоті зрізу незалежно від порядку фільтра складає дБ. При АЧХ прагне до 0.
6.2. Розрахунок аналогового фільтра Баттерворта за допомогою функції [z,p,k]=buttap(n)
function Example6_1
[z,p,k]=buttap(5); % нулі та полюси прототипу
plot(p,'x') % графік розташування полюсів
axis equal
axis([-1.5 1.5 -1.5 1.5])
w=0:0.01:5;
[b,a]=zp2tf(z,p,k); % коефіцієнти функції передачі
h=freqs(b,a,w); % комплексний коефіцієнт передачі
figure
plot(w,abs(h)),grid % графік АЧХ
figure
plot(w,unwrap(angle(h))),grid % графік ФЧХ
На екрані характеристики фільтра Баттерворта 5-го порядку.
6.3. Фільтр Чебишева першого роду
АЧХ фільтра Чебишева першого роду має вигляд:
,
Тут - частота зрізу, - поліном Чебишева n-го порядку, n - порядок фільтра, - параметр, що визначає величину пульсації АЧХ в смузі пропускання. Значення параметра і рівень пульсації (в децибелах) пов'язані наступним чином:
При АЧХ фільтра Чебишева першого роду є максимально плоскою. У MATLAB фільтр-прототип Чебишева першого роду розраховується за допомогою функції [z,p,k]=cheb1ap(n,Rp).
function Example6_2
[z,p,k]=cheb1ap(5,0.5); % нулі та полюси прототипу
plot(p,'x') % графік розташування полюсів
axis equal
axis([-1.5 1.5 -1.5 1.5])
w=0:0.01:5; % коефіцієнти функції передачі
[b,a]=zp2tf(z,p,k); % комплексний коефіцієнт передачі
figure
plot(w,abs(h)),grid % графік АЧХ
figure
plot(w,unwrap(angle(h))),grid % графік ФЧХ
На екрані характеристики фільтра Чебишева першого роду 5-го порядку з рівнем пульсацій в смузі пропускання 0,5 дБ.
6.4. Фільтр Чебишева другого роду
Функція передачі фільтра Чебишева другого роду пов'язана з функцією передачі фільтра Чебишева першого роду таким чином:
.
АЧХ фільтра Чебишева другого роду описується так:
.
Тут - частота зрізу, - поліном Чебишева n-го порядку, n - порядок фільтра, - параметр, що визначає величину пульсації АЧХ в смузі пропускання. Значення параметра і рівень пульсації (в децибелах) пов'язані наступним чином:
У MATLAB фільтр-прототип Чебишева другого роду розраховується за допомогою функції [z,p,k]=cheb2ap(n,Rp).
function Example6_3
[z,p,k]=cheb2ap(5,20);
plot(p,'x')
hold on
plot(z,'o')
hold off
axis equal
axis([-2 2 -2 2])
w=0:0.01:5;
[b,a]=zp2tf(z,p,k);
h=freqs(b,a,w);
figure
plot(w,abs(h)),grid
figure
plot(w,unwrap(angle(h))),grid
На екрані характеристики фільтра Чебишева другого роду 5-го порядку з рівнем пульсацій в смузі пропускання 20 дБ.
6.5. Еліптичний фільтр
АЧХ еліптичного фільтра описується наступним чином:
.
Тут - частота зрізу, n - порядок фільтра, Rn (...) - раціональна функція Чебишева n-го порядку, і L - параметри, що визначають величину пульсацій у смугах пропускання і затримування. У MATLAB еліптичний фільтр-прототип розраховується за допомогою функції [z, p, k] = ellipap (n, Rp, Rs).
function Example6_4
[z,p,k]=ellipap(5,0.5,20);
plot(p,'x')
hold on
plot(z,'o')
hold off
axis equal
axis([-1.5 1.5 -1.5 1.5])
w=0:0.01:5;
[b,a]=zp2tf(z,p,k);
h=freqs(b,a,w);
figure
plot(w,abs(h)),grid
figure
plot(w,unwrap(angle(h))),grid
На екрані характеристики еліптичного фільтра 5-го порядку з рівнем пульсацій в смузі пропускання 0,5 дБ та смузі затримування 20 дб.
6.6. Фільтр Бесселя
Функція передачі фільтра Бесселя має наступний вигляд:
Коефіцієнти полінома знаменника розраховуються за такою формулою
У MATLAB фільтр-прототип Бесселя розраховується за допомогою функції [z,p,k]= besselap (n).
function Example6_5
[z,p,k]=besselap(5);
plot(p,'x')
axis equal
axis([-1 1 -1 1])
w=0:0.01:5;
[b,a]=zp2tf(z,p,k);
h=freqs(b,a,w);
figure
plot(w,abs(h)),grid
figure
plot(w,unwrap(angle(h))),grid
На екрані характеристики фільтра Бесселя 5-го порядку.
6.7. Частотні перетворення фільтра
Під частотними перетвореннями фільтрів розуміють такі перетворення передавальної функції, при яких форма частотних характеристик міняється тільки в «горизонтальному» напрямі. Перетворення найчастіше використовуються для перетворення фільтра-прототипу у фільтр заданого виду з необхідними частотами зрізу. Для цього використовуються наведені нижче чотири функції MATLAB. Принцип складання їх імен такий: спочатку йде скорочення 1р, що означає, що вихідним фільтром є ФНЧ (фільтри нижніх частот) (low-pass), потім слідує символ перетворення 2 і в кінці стоїть позначення типу результуючого фільтра:
□ 1р2lр — зміна частоти зрізу ФНЧ (low-pass);
□ lp2hp — перетворення ФНЧ в ФВЧ (high-pass);
□ 1р2bр — перетворення ФНЧ в смуговий фільтр (band-pass);
□ lp2bs — перетворення ФНЧ в режекторний фільтр (band-stop).
Всі ці функції можуть перетворювати фільтри, задані двома способами, - у вигляді коефіцієнтів поліномів чисельника і знаменника функції передачі або в просторі станів. Розрізняються ці два варіанти за кількістю вхідних та вихідних параметрів.
6.8. Зміна частоти зрізу ФНЧ
Зміна частоти зрізу ФНЧ - прототипу зводиться до простого масштабування частотної осі. У MATLAB таке перетворення робиться функцією lp2lp: [b1, a1] = lp2lp (b, a, w0). В якості прикладу розраховується ФНЧ Чебишева першого роду 5-го порядку з частотою зрізу 2 кГц і рівнем пульсації в смузі пропускання 3 дБ.
function Example6_6
[z,p,k]=cheb1ap(5,3); % ФНЧ–прототип
[b,a]=zp2tf(z,p,k); % функція передачі
f0=2e3; % частота зрізу
[b,a]=lp2lp(b,a,2*pi*f0); % ФНЧ з потрібною частотою зрізу
f=0:1:4e3; % вектор частот для розрахунку
h=freqs(b,a,2*pi*f); % частотна характеристика
plot(f/1000,abs(h)),grid % графік АЧХ
axis tight
xlabel('f,kHz')
На екрані результат масштабування частотної осі. Графік АЧХ