Порівняння характеристик аналогового та цифрового фільтрів

Завдання

1. Розрахувати аналоговій фільтр з параметрами, заданими в таблиці згідно з номером варіанта.

2. Побудувати амплітудно-частотну(АЧХ), логарифмічну амплітудно-частотну(ЛАЧХ), логарифмічну фазочастотну(ЛФЧХ) та амплітудно-фазову(АФХ) характеристики розробленого фільтра, діаграми нулів та полюсів.

3. Із застосуванням ПЕОМ здійснити моделювання процесів обробки заданого аналогового сигналу u(t) спроектованим згідно з п. 1 фільтром. Побудувати спектри заданого аналогового сигналу u(t) та сигналу y(t), сформованого в результаті фільтрації.

4. Розрахувати цифровий рекурсивний фільтр з параметрами, заданими в таблиці (згідно з варіантом).

5. Побудувати амплітудно-частотну та логарифмічну амплітудно-частотну характеристики розробленого цифрового фільтра, порівняти її з аналогічною характеристикою аналогового фільтра.

Варіант №13

Тип фільтра

Смуговий

Спосіб реалізації

Чебишева І роду

Розрядність АЦП

12

Межа смуги, рад/сек

Пропускання,

Затримки,

Ліва гілка

Права гілка

Ліва гілка

Права гілка

8442

12940

7914

13468

Мінімальний рівень пульсацій, , дБ

Затухання, , дБ

2

37

Вступ

Стрімкий розвиток електронної цифрової схемотехніки обумовлює розширення її використання в якості апаратної платформи при побудові елементів та систем збору, обробки та передачі інформації. Такі компоненти є невід’ємними складовими сучасних комп’ютеризованих систем управління.

Даний курсовий проект присвячений питанням розробки цифрових елементів систем обробки інформації (зокрема, цифрових фільтрів та їх аналогових прототипів).

Цифровий фільтр – пристрій, який дозволяє перетворити дискретний сигнал x(t) у інший y(t). Це цифрова схема для зміни частотного спектра дискретних сигналів. Цифровий фільтр може бути реалізований як апаратно, так і програмно.

Цифрові фільтри мають ряд переваг над аналоговими:

1) Нечутливість характеристик фільтра до розкидування параметрів елементів, що у нього входять, їх часових та температурних дрейфів;

2) Малі розміри і висока надійність фільтрів, пов’язані з використанням великих інтегральних схем;

3) Легкість зміни параметрів і характеристик цифрового фільтру через модифікацію програми і коефіцієнтів

4) можливість реалізації фільтрів із змінними в процесі роботи параметрами.

Типи фільтрів

Фільтри, що знаходять застосування в обробці сигналів бувають:

    Аналоговими або цифровими;

    Пасивними або активними;

    Лінійними і нелінійними;

    Рекурсивними і не рекурсивними.

Серед безлічі рекурсивних фільтрів окремо виділяють наступні фільтри (за виглядом передаточної функції):

    Фільтри Чебишева;

    Фільтри Бесселя;

    Фільтри Баттерворда;

    Еліптичні фільтри.

По тому, які частоти фільтром пропускаються (затримуються), фільтри поділяють на:

    Фільтри нижніх частот (ФНЧ);

    Фільтри верхніх частот (ФВЧ);

    Смугово-пропускні фільтри (СПФ)

    Смугово-непропускні (режекторні) фільтри (СНФ);

    Фазові фільтри.

В даній роботі буде розглядатись саме фільтр Чебишева, Фільтр Чебишева – один з типів лінійних аналогогових або цифрових фільтрів, особливістю якого є більш круте спадіння амплітудно-частотної характеристики (АЧХ) й суттєві пульсації (фільтр Чебишева ІІ роду), ніж у фільтрів інших типів. Фільтр отримав назву на честь відомого російського математика XIX століття Пафнутія Львовича Чебишева, так як характеристики цього фільтра базуються на багаточленах Чебишева.

Фільтри Чебишева зазвичай застосовуються там де потрібно за допомогою фільтра невеликого порядку забезпечити потрібні характеристики АЧХ, зокрема, добре подавлення частот зі смуги подавлення, і при цьому гладкість АЧХ на частотах смуг пропускання і подавлення не стільки важлива.

Розрізняють фільтри Чебишева І та ІІ роду.

Фільтр Чебишева ІІ роду (інверсний фільтр Чебишева) використовується рідше ніж фільтр Чебишева І роду зважаючи на менш крутий спад АЧХ.

Цифрові фільтри Чебишева

Фільтри Чебишева часто реалізуються у цифровій формі. Для того, щоб від аналогового фільтра перейти до цифрового, треба над кожним каскадом фільтра здійснити білінійне перетворення. Увесь фільтр отримується шляхом послідовного з’єднання каскадів.

1. Розрахунок та дослідження аналогового фільтра

1.1 Визначення порядку аналогового фільтра та його частоти зрізу

Параметри фільтра та його частота зрізу визначаються на основі бажаного вигляду амплітудно-частотної характеристики, параметри якої задаються технічним завданням на проектування (п.1). У нашому випадку параметри бажаної АЧХ задаються відповідними межами – границями смуг пропускання та затримки, мінімальним затуханням та максимальним рівнем пульсацій. Області в яких має лежати бажана АЧХ зображені на рис. 1.

Рис. 1. Бажана АЧХ згідно з ТЗ.

Для визначення порядку та частоти зрізу фільтра застосуємо обчислювальне середовище MatLab

%Початкові дані

Wp1=8442; %Нижня межа смуги пропускання рад/сек

Wp2=12940; %Верхня межа смуги пропускання рад/сек

Ws1=7914; %Нижня межа смуги затримки рад/сек

Ws2=13468; %Верхня межа смуги затримки рад/сек

Rp=2; %Коэфіцієнт пульсацій дБ

Rs=37; %Затухання дБ

[n,Wn]=cheb1ord([Wp1 Wp2],[Ws1 Ws2],Rp,Rs,'s'); % обчислюємо порядок фільтра

За результатами розрахунків маємо:

Порядок фільтра n = 9

Частоти зрізу смугового фільтра Wn = [ 8442 12940]

1.2 Розрахунок фільтра прототипу

Фільтром прототипом надівають ФНЧ із частотою зрізу 1рад/сек.

Змінним параметром при розрахунку фільтра прототипу виступає порядок фільтра. Згідно із ТЗ розрахуємо як фільтр прототип фільтр Чебишева І роду, його АЧХ описується наступною формулою.

У цьому виразі - частота зрізу, - поліном Чебишева n порядку, n - порядок фільтра. Коефіцієнти фільтра прототипу розраховуємо в обчислювальному середовищі MatLab

[z,p,k]=cheb1ap(n,Rp); % визначаємо параметри передавальної ф-ції для фільтру Чебишева 1р.

[b,a]=zp2tf(z,p,k); % отримуємо коефіцієнти передавальної ф-ції

В результаті обчислень маємо:

Коефіцієнт підсилення k = 0.0051

Передаточна функція фільтра:

Побудуємо характеристики фільтра-прототипу за допомогою MatLab:

figure(1);

plot(p,'x') % малюємо діаграму полюсів

hold on;

plot(z,'o')

grid on;

xlabel('Im(z)'); ylabel('Re(z)');

title('Pole diagram');

Рис. 2. Графік нулів і полюсів фільтра прототипу.

Рис. 3. АЧХ фільтра прототипу.

Рис. 4. ФЧХ фільтра прототипу.

1.3 Перетворення частоти зрізу та АЧХ фільтра

Наступним етапом розробки аналогового фільтра є перетворення фільтра прототипу з метою отримання фільтра заданого типу з необхідними частотами зрізу.

Перетворення фільтра прототипу у смуговий фільтр вимагає достатньо складної трансформації частотної вісі. Так, нульова та нескінченна частоти повинні трансформуватись у повинні трансформуватись у нескінченне значення на частотній вісі ФНЧ-прототипа (там, де його коефіцієнт передачі наближається до нуля). Частоти, що відповідають краям смуги пропускання, повинні після перетворення давати значення +1 або -1, рівні частоті зрізу ФНЧ-прототипа. Нарешті перетворення має виконуватись за допомогою дробово-раціональної функції, щоб зберегти дробово-раціональний вигляд передаточної функції.

Переліченим вимогам відповідає наступне перетворення:

Де , , - відповідно верхня і нижня границі полоси пропускання фільтра.

Для проведення перетворення застосуємо середовище MatLab:

% Початкові дані

Wp1=8442; % Нижня межа смуги пропускання рад / сек

Wp2=12940; % Верхня межа смуги пропускання рад / сек

Ws1=7914; % Нижня межа смуги затримки рад / сек

Ws2=13468; % Верхня межа смуги затримки рад / сек

Rp=2; % Коефіцієнт пульсацій дБ

Rs=37; %Затухання дБ

[n,Wn]=cheb1ord([Wp1 Wp2],[Ws1 Ws2],Rp,Rs,'s'); % обчислюємо порядок фільтра

[z,p,k]=cheb1ap(n,Rp); % визначаємо параметри передавальної ф-ції для фільтру Чебишева 1р.

W1=Wn(1);

W2=Wn(2);

W0=sqrt(W1*W2);

Bw=(W2-W1);

[b1 a1]=lp2bp(b,a,W0,Bw); % перетворимо перед. ф-цію прототипу в потрібну

Hrez=tf(b1,a1) % передавальна функція СФ

В результаті обчислень отримуємо передаточну функцію смугового фільтра Чебишева І роду:

Побудуємо характеристики фільтра за допомогою середовища MatLab

[H2,w1]=freqs(b1,a1,1000);

figure(4); %---АЧХ СФ

plot(w1,abs(H2));

axis([0 20000 0 1.2]);

xlabel('w'); ylabel('Amplitude');

title('AFC of bandpass filter');

grid on

figure(5); %---ФЧХ СФ

plot(w1,unwrap(angle(H2)));

axis([0 20000 -30 5]);

title('PFC of bandpass filter');

grid on

xlabel('w'); ylabel('Phase');

figure(6);

pzmap(Hrez);

Рис. 7. діаграма нулів та полюсів передаточної функції фільтра.

Рис. 5. АЧХ смугового фільтра Чебишева І роду.

Рис. 6. ФЧХ смугового фільтра Чебишева І роду.

Рис. 7. АЧХ фільтра в порівнянні з бажаною АЧХ.

1.4 Моделювання роботи фільтра

Щоб перевірити правильність розрахунків промоделюємо роботу фільтра у середовищі MatLab. Для моделювання використаємо тестовий сигнал що складається з трьох гармонічних сигналів різної частоти, фази та амплітуди.

%----------------- Формування вихідного сигналу --------------------------%

k1=3;

k2=16;

k3=12;

phi1=pi;

phi2=pi/4;

phi3=pi/2;

W1=6000;

W2=10976;

W3=24387;

dt=1e-5;

T1=2*pi/W1;

t=0:dt:20*T1;

[p,k]=size(t);

sign_freq=[W1 W2 W3];

sign_phase=[phi1 phi2 phi3];

sign_koeff=[k1 k2 k3];

Analog_sign=0;

for i=1:3

Analog_sign=Analog_sign+sign_koeff(i).*sin(sign_freq(i).*t+sign_phase(i));

end;

% Моделювання обробки аналогового сигналу

figure(7);

lsim(Hrez,Analog_sign,t);

grid on

axis([0 0.02 -40 40]);

Input signal

Рис. 8. Вхідний та вихідний сигнали.

1.5 Побудова спектрів вхідного та вихідного сигналів

Побудуємо спектри вхідного та вихідного сигналів. Для побудови спектрів використаємо алгоритм неперервного перетворення Фур’є.

Для дійсних функцій ряд Фур’є часто означається, як ряд по синусах та косинусах, аргументи яких обираються в такий спосіб, аби на відрізку означення функції вкладалась ціла кількість періодів. Легко зрозуміти, що перелік таких синусів та косинусів вичерпується множинами та , де n є довільним натуральним числом, а для може приймати також значення 0.

%------------------------- Побудова спектрів ---------------------------%

[y,x]=lsim(Hrez,Analog_sign,t);

a0=dt*sum(Analog_sign)/T1;

for i=1:k

ak(i)=(2*dt/T1)*sum(Analog_sign.*cos(t*i*W1));

bk(i)=(2*dt/T1)*sum(Analog_sign.*sin(t*i*W1));

end;

Ak=sqrt(ak.^2+bk.^2);

k1=1:i; % номера відліків

W0=k1*W1; % масштабовані відліки

Wn=zeros(1,50); % завдання розміру вектора відліків

Wn=0:W0:50*W0; % заповнення вектора відліків (перші 50 елементів вектора W0)

Akn=zeros(1,50); % завдання розміру вектора амплітуд з урахуванням а0

Akn(1,1:50)=Ak(1,1:50); %заполнение вектора амплитуд

out_sign=y';

for i=1:k

ak_out(i)=(2*dt/T1)*sum(out_sign.*cos(t*i*W1));

bk_out(i)=(2*dt/T1)*sum(out_sign.*sin(t*i*W1));

end;

a0_out=dt*sum(out_sign)/T1;

Ak_out=sqrt(ak_out.^2+bk_out.^2);

Akn_out=zeros(1,50);% завдання розміру вектора амплітуд з урахуванням a0

Akn_out(1,1:50)=Ak_out(1,1:50);%заполнение вектора амплитуд

figure;

hold on

stem(Wn,[a0 Akn],'ro');

stem(Wn,[a0_out Akn_out],'b+');

xlabel('w'); ylabel('Magnitude');

axis([0 150000 0 70]);

hold off

grid on

Рис. 9. Спектри вхідного та вихідного сигналу.

2. Розрахунок та дослідження цифрового фільтра

2.1 Визначення порядку та частоти зрізу цифрового фільтра

Як і у випадку проектування аналогових фільтрів для визначення порядку цифрових фільтрів та їх частоти зрізу можна скористатися функціями пакета Communication середовища MatLab.

Згідно з теоремою Котельникова частота дискретизації має бути принаймні вдвічі більшою ніж максимальна частота сигналу. Для моделі фільтра використаємо частоту , де - частота дискретизації, - верхня межи смуги затримки.

% Початкові дані

Wp1=8442; % Нижня межа смуги пропускання рад / сек

Wp2=12940; % Верхня межа смуги пропускання рад / сек

Ws1=7914; % Нижня межа смуги затримки рад / сек

Ws2=13468; % Верхня межа смуги затримки рад / сек

Rp=2; % Коефіцієнт пульсацій дБ

Rs=37; %Затухання дБ

Wd=Ws2*4 % Частота дискретизації рад / сек

Wpz=[Wp1/Wd Wp2/Wd]

Wsz=[Ws1/Wd Ws2/Wd]

[n,wn]=cheb1ord (Wpz, Wsz, Rp, Rs);

В результаті розрахунків маємо:

Мінімальний порядок фільтра n=9.

Частоти зрізу (відносні) Wn = [0.1567 0.2402]

2.2 Визначення коефіцієнтів фільтра та отримання передаточної функції

Для визначення коефіцієнтів фільтра використаємо середовище MatLab, при цьому можливості MatLab дозволяють виключити етап розрахунку фільтра прототипу і одразу визначити коефіцієнти фільтра згідно з ТЗ.

Wp1z=Wp1/Wd

Wp2z=Wp2/Wd

[b,a]=cheby1(n,Rp,[Wp1z Wp2z]);

Hrz=tf(b,a,1/(Wd*2*pi))

В результаті розрахунків отримуємо:

Вектор коефіцієнтів чисельника

b = 1.0e-008 * [0.0053 0 -0.0480 0 0.1920 0 -0.4481 0 0.6721 0 -0.6721 0 0.4481 0 -0.1920 0 0.0480 0 -0.0053]

a = 1.0e+004 * [0.0001 -0.0014 0.0102 -0.0462 0.1510 -0.3780 0.7496 -1.2033 1.5843 -1.7234 1.5525 -1.1555 0.7054 -0.3486 0.1365 -0.0409 0.0088 -0.0012 0.0001]

Передаточна функція фільтра:

Побудуємо характеристики отриманого фільтра за допомогою MatLab.

[b,a]=cheby1(n,Rp,[Wp1z Wp2z]);

[H,W]=freqz(b,a,'whole');

figure;

plot (W,abs(H));grid on;

Hrz=tf(b,a,1/(Wd*2*pi))

figure;

pzmap(Hrz)

Рис. 10 Діаграма нулів та полюсів фільтра.

Рис. 11 АЧХ смугового фільтра.

Рис. 12. ФЧХ смугового фільтра.

2.3 Моделювання роботи дискретного фільтра

Щоб перевірити правильність розрахунків промоделюємо роботу дискретного фільтра у середовищі MatLab. Для моделювання використаємо тестовий сигнал що складається з трьох гармонічних сигналів різної частоти, фази та амплітуди.

%-----------------Формирование исходного сигнала--------------------------%

k1=10;

k2=9;

k3=12;

phi1=pi;

phi2=pi/4;

phi3=pi/2;

W1=6000;

W2=10976;

W3=24387;

sign_freq=[W1 W2 W3];

sign_phase=[phi1 phi2 phi3];

sign_koeff=[k1 k2 k3];

Fs=Wd/(2*pi);

td=0:1/Fs:0.1;

Signal_digital=0;

for i=1:3

Signal_digital=Signal_digital+sign_koeff(i).*sin(sign_freq(i).*td);

end;

wdd=2*pi*Fs;

wd_mod=0:wdd/2/15671:wdd/2;

Sd_in=fft(Signal_digital);

Signd_out=filter(b,a,Signal_digital);

Sd_out=fft(Signd_out);

figure

hold on

plot(td(1,1:700), Signal_digital(1,1:700),'g-');

plot(td(1,1:700), Signd_out(1,1:700),'b-')

hold off;

grid on;

axis([0 0.08 -35 35]);

xlabel('t, c');

ylabel('Amplitude');

title ('Filtered and NOT filtered signals');

Рис. 13. Вхідний та вихідний сигнали.

2.4 Побудова спектрів вхідного та вихідного сигналів

Побудуємо спектри вхідного та вихідного сигналів. Для побудови ряду використаємо дискретне перетворення Фур’є. Припустимо, що у нас задано функцію дискретної змінної на рівномірній гратці, тобто задані значення функції fk для скінченної послідовності значень аргументу xk = kh – таблиця функції {fk; kh; k = 0::N} . Тут за допомогою позначено крок гратки – відстань між сусідніми вузлами. Перетворення Фур’є такої функції можна означити, як суму

Наведені вище міркування про властивості значень нескінченного ряду Фур’є свідчать про недоцільність використання суми з кількох членів, більшою за кількість вузлів гратки. Можна також зауважити, що сума з більшою кількістю членів містила б більше інформації про функцію, ніж є в таблиці значень функції. Звичайно ж, обидва ці міркування не є доведеням можливості використання саме такої кількості членів – необхідно побудувати правило обчислення коефіцієнтів суми Фур’є і довести існування єдиного набору таких коефіцієнтів для функції дискретної змінної.

Для дійсних функцій і особливо при використанні програмних засобів, що не підтримують комплексних чисел, може бути доцільним використання дійсної форми перетворення Фур’є поданням функції у вигляді ряду по синусах та косинусах:

Для побудови спектрів використаємо середовище MatLab

k1=10;

k2=9;

k3=12;

phi1=pi;

phi2=pi/4;

phi3=pi/2;

W1=6000;

W2=10976;

W3=24387;

sign_freq=[W1 W2 W3];

sign_phase=[phi1 phi2 phi3];

sign_koeff=[k1 k2 k3];

Fs=Wd/(2*pi);

td=0:1/Fs:0.1;

Signal_digital=0;

for i=1:3

Signal_digital=Signal_digital+sign_koeff(i).*sin(sign_freq(i).*td);

end;

wd_mod=0:Wd/1000:Wd/2;

Sd_in=fft(Signal_digital);

Signd_out=filter(b,a,Signal_digital);

Sd_out=fft(Signd_out);

if size(wd_mod,2)<size(Sd_in,2)

dim=size(wd_mod,2);

else

dim=size(Sd_in,2);

end

figure;

plot(wd_mod(1,1:dim),abs(Sd_in(1,1:dim)),wd_mod(1,1:dim),abs(Sd_out(1,1:dim)));

grid on;

legend('Input signal','Output signal');

xlabel('Frequency');

ylabel('Amplitude');

title ('Amplitude spectrum signals before and after filtration by the digital filter');

Рис. 14. Спектри вхідного та вихідного сигналів.

Висновки

У результаті виконання курсового проекту «Проектування аналогових та цифрових фільтрів» я набув навичок у розробці аналогових та цифрових фільтрів, формуванні математичних моделей на основі перетворень Лапласа та z-перетворення, побудові та порівняльному аналізі частотних характеристик цифрових та аналогових фільтрів, застосуванні перетворення Фур’є до спектрального аналізу сигналів, застосуванні методики трансформації узагальненого фільтра нижніх частот до конкретного типу фільтра (ФВЧ, СФ, РФ) при різних способах їх реалізації (фільтри Баттерворта, Чебишева першого та другого роду, а також еліптичний фільтр).

В ході виконання курсового проекту була створена програма на мові середовища MatLab для моделювання роботи аналогового та цифрового смугового фільтра Чебишева ІІ роду, виконано моделювання та побудова графіків амплітудно-частотних характеристик(АЧХ), фазочастотних характеристик (ФЧХ) і діаграм нулів і полюсів.