Зміст
Вступ
1. Аналіз початкових даних, ідеального та вхідного сигналів
1.1 Аналіз завдання
1.2 Аналіз вхідного сигналу, ідеального сигналу та шуму
2. Обгрунтування вибору фільтрів та алгоритму обробки вхідного сигналу
2.1 Обгрунтування вибору фільтрів
2.2 Послідовне ввімкнення фільтрів
2.2.1 Вибір ФНЧ
2.2.2 Вибір режекторного фільтра
Висновки
Список використаної літератури
Додаток. Лістинг програми при послідовному ввімкненні фільтрів
Вступ
В наш час, коли рівень продуктивності сучасних обчислювальних систем значно виріс, відкривається широке поле для використання цифрової обробки сигналів, зокрема фільтрації. Адже за допомогою цифрових фільтрів можна побудувати фільтр, що має такі характеристики, які важко отримати в звичайних умовах на аналогових компонентах, або взагалі неможливо отримати. При цьому цифрові фільтри можуть значно краще справлятись з завданням.
В даному курсовому проекті проведена спроба отримати такий фільтр теоретично за допомогою програми Scilab.
1 Аналіз початкових даних, ідеального та вхідного сигналів
1.1 Аналіз завдання
Початкові данні для роботи:
1) Тривалість реалізації сигналу, с ........................................…………0.8
2) Сигнали у файлі .......................................................................kasE.MAT
3) Частотні діапазони перешкоди, Гц:
I .......... 0 ... 2
II ........... 43 ... 47
III .....…. 598 ... 602
4) Середнеквадратичне відхилення вихідного сигналу від ідеального не слід перевищувати ..……………………………………..…….....................0.3
5) Аналіз сигналів проводити у пакеті SCILAB.
6) Блок обробки слід реалізовувати на цифрових мікросхемах середньої ступені інтеграції.
1.2 Аналіз вхідного сигналу, ідеального сигналу та шуму
Рис 1. Форма ідеального сигналу
Рис 2 .АЧХ ідеального сигналу
Рис 3. Форма вхідного сигналу та його шум
Рис 4. Збільшений шум
Рис 5. Форма сигналу завади та його АЧХ
Рис 6. АЧХ вхідного сигналу
Рис 7.Збільшені ділянки АЧХ завади
2 Обгрунтування вибору фільтрів та алгоритму обробки вхідного сигналу
2.1 Обгрунтування вибору фільтрів
Аналізуючи АЧХ завади, приходимо до висновку, що необхідно подавити лише ІІ та ІІІ діапазони перешкод. Так, як рівень І діапазону завади значно нижчий в порівнянні з рівнем корисного сигналу, то його впливом можна знехтувати, і не займатись його фільтрацією.
2.2 Послідовне ввімкнення фільтрів
При послідовному ввімкненні фільтрів необхідно, шоб кожен фільтр пропускав всі діапазони частот без ослаблення, крім частот, які необхідно зрізати.
Отже буде використано послідовне ввімкнення 2 фільтрів – ФНЧ та режекторного. ФНЧ буде пропускати вхідний сигнал в діапазоні від 0 Гц до ІІІ діапазону перешкоди. За частоту зрізу можна взяти частоту 150 Гц, оскільки вона знаходиться поза діапазоном корисного сигналу і перед діапазоном ІІІ завади. Режекторний вирізатиме перешкоду в ІІ діапазоні.
Алгоритм роботи фільтру
2.2.1 Вибір ФНЧ.
Порівняємо 4 типи фільтрів: Баттерворта, Чебишева, обернений Чебишева та еліптичний (всі фільтри 4 порядку з частотою зрізу 250 Гц).
1)Фільтр Баттерворта
Рис. 2.2.1. АЧХ та ФЧХ фільтра Баттерворта
Рис. 2.2.2. АЧХ сигналу після фільтрації
Рис. 2.2.3. Сигнал після та до фільтрації
Як бачимо, перешкода ІІІ діапазону відфільтровується повністю. Середньоквадратичне значення похибки між ідеальним та відфільтрованими сигналами дорівнює 0.0745380.
2) Фільтр Чебишева
Рис. 2.2.4. АЧХ та ФЧХ фільтра Чебишева
Рис. 2.2.5. Сигнал після та до фільтрації
Рис. 2.2.6. АЧХ сигналу після фільтрації
Як бачимо, перешкода ІІІ діапазону відфільтровується повністю, фільтр має також меншу крутизну спаду АЧХ, ніж у фільтра Баттерворта.
Середньоквадратичне значення похибки між ідеальним та відфільтрованими сигналами дорівнює 0.0666949.
Обернений фільтр Чебишева
Рис. 2.2.7. АЧХ та ФЧХ фільтра Чебишева
Рис. 2.2.8. Сигнал після та до фільтрації
Рис. 2.2.9. АЧХ сигналу після фільтрації
Як бачимо, перешкода ІІІ діапазону відфільтровується повністю, фільтр має більшу крутизну спаду АЧХ, ніж у фільтра Чебишева.
Середньоквадратичне значення похибки між ідеальним та відфільтрованими сигналами дорівнює 0.0812766.
4) Елліптичний філтр
Рис. 2.2.10. АЧХ та ФЧХ елліптичного фільтра
Рис. 2.2.11. Сигнал після та до фільтрації
Рис. 2.2.12.АЧХ сигналу після фільтрації
Як бачимо, перешкода ІІІ діапазону відфільтровується повністю. Середньоквадратичне значення похибки між ідеальним та відфільтрованими сигналами дорівнює 0.0886725.
Порівнявши фільтри, бачимо, що найменшу похибку між ідеальним та відфільтрованим сигналами дає фільтр Чебышева, який і використаємо в блоці фільтрації.
2.2.2 Вибір режекторного фільтра
Порівняємо 4 типи фільтрів: Баттерворта, Чебишева, обернений Чебишева та еліптичний (всі фільтри 4 порядку, f1= 46,7 Гц, f2=48).
1)Фільтр Баттерворта
Рис. 2.2.13. АЧХ та ФЧХ фільтра Баттерворта
Рис. 2.2.14.Сигнал після та до фільтрації
Рис. 2.2.15.АЧХ сигналу після фільтрації
Як бачимо, перешкода ІІ діапазону відфільтровується майже повністю. Середньоквадратичне значення похибки між ідеальним та відфільтрованими сигналами дорівнює 0.0749562.
2)Фільтр Чебишева
Рис. 2.2.16. АЧХ та ФЧХ фільтра Чебишева
Рис. 2.2.17.Сигнал після та до фільтрації
Рис. 2.2.18. АЧХ сигналу після фільтрації
Як бачимо, перешкода ІІ діапазону відфільтровується майже повністю.
Середньоквадратичне значення похибки між ідеальним та відфільтрованими сигналами дорівнює 0.0749769.
3)Обернений фільтр Чебишева
Рис. 2.2.19. АЧХ та ФЧХ оберненого фільтра Чебишева
Рис. 2.2.20. Сигнал після та до фільтрації
Рис. 2.2.21.АЧХ сигналу після фільтрації
Як бачимо, перешкода ІІ діапазону відфільтровується майже повністю.
Середньоквадратичне значення похибки між ідеальним та відфільтрованими сигналами дорівнює 0.0662035.
4) Елліптичний філтр
Рис. 2.2.22. АЧХ та ФЧХ елліптичного фільтра
Рис. 2.2.23. Сигнал після та до фільтрації
Рис. 2.2.24.АЧХ сигналу після фільтрації
Середньоквадратичне значення похибки між ідеальним та відфільтрованими сигналами дорівнює 0.0681289.
Отже, найменшу похибку між ідеальним та відфільтрованим сигналами дає обернений фільтр Чебишева, також він забезпечує найкращу форму сигналу, найближчу до ідеального, тому цей фільтр використаємо для фільтрації сигналу.
Рис. 2.2.25. АЧХ фільтра, завади та корисного сигналу.
Висновки
В результаті виконання курсового проекту був спроектований цифровий фільтр для очистки сигналу від завади. Було знайдено найбільш оптимальне рішення цієї задачі при послідовному з’єднанні фільтрів. Найменша середньоквадратична похибка дорівнювала 0.0662035. Отримані фільтри можна використовувати, написавши відповідну програму.
Список викорикористаної літератури
В. Дьяконов MatLab. Обработка сигналов и изображений. Специальный справочник. – СПб.:Питер, 2002.
Л. М. Гольденберг, Б.Д.Матюшкин, М.Н.Поляк. Цифровая обработка сигналов:Справочник . М.:Радио и связь, 1985.
http://matlab.exponenta.ru/default.php
Internet
Додаток
Лістінг програми при послідовному ввімкненні фільтрів:
clear all
clc
loadmatfile('kasE.mat')
//scf(1)
//plot(ys)
//xgrid()
//
scf(2)
plot(f(1:n2),amp(1:n2))
xgrid()
//
//scf(3)
//subplot(211), plot(ys), xgrid()
//subplot(212), plot(s_in), xgrid()
//subplot(111)
//yvx=s_in;
//
//scf(4)
//plot(yvx)
//xgrid()
//
//scf(5)
//subplot(211), plot(psi), xgrid()
//subplot(212), plot(f(1:n2),ampsi(1:n2)), xgrid()
//subplot(111)
//
//y=fft(s_in);amp=abs(y);
//scf(6)
//plot(f(5:n2),amp(5:n2))
//xgrid()
N=length(s_in);
T=0.8;
f_discr=N/T;
T_discr=1/f_discr;
frq_s=0:f_discr/2;
ft=frq_s*T_discr;
//fcc=250;
// oshibka mejdu idealnim i vhodnim signalom
err0=0;
for n=1:(N),
err0=err0+(ys(n)-s_in(n))^2;
end
err0=sqrt(err0/n);
//ФНЧ;
www=250/f_discr;
//zz_t=iir(4,'lp','butt',[www www],[0 0]);
zz_t=iir(4,'lp','cheb1',[www www],[0.1 0]);
//zz_t=iir(4,'lp','cheb2',[www www],[0 0.1]);
//zz_t=iir(4,'lp','ellip',[www www],[0.1 0.1]);
sz_t=syslin('d',zz_t);
Hz_t=freq(sz_t.num,sz_t.den,exp(%i*2*%pi*ft));
ampz_t=abs(Hz_t);
phiz_t=atan(imag(Hz_t),real(Hz_t));
scf(10)
subplot(211)
plot2d(frq_s,ampz_t,logflag="ln")
xgrid()
subplot(212)
plot2d(frq_s,phiz_t,logflag="ln")
xgrid()
yf_out=flts(s_in,sz_t);
scf(11)
subplot(211), plot(yf_out), xgrid()
subplot(212), plot(s_in), xgrid()
scf(12)
ach=abs(fft(yf_out));
plot2d(frq_s,ach(1:641)), xgrid()
err1=0;
for n=3:(N-2),
err1=err1+(ys(n-2)-yf_out(n+2))^2;
end
err1=sqrt(err1/n);
//Режекторный фильтр;
www1sr=46.7/f_discr;
www2sr=48/f_discr;
//zz_tsr=iir(4,'sb','butt',[www1sr www2sr],[0.5 0]);
//zz_tsr=iir(4,'sb','cheb1',[www1sr www2sr],[0.5 0]);
zz_tsr=iir(4,'sb','cheb2',[www1sr www2sr],[0 0.5]);
//zz_tsr=iir(4,'sb','ellip',[www1sr www2sr],[0.5 0.3]);
sz_tsr=syslin('d',zz_tsr);
Hz_tsr=freq(sz_tsr.num,sz_tsr.den,exp(%i*2*%pi*ft));
ampz_tsr=abs(Hz_tsr);
phiz_tsr=atan(imag(Hz_tsr),real(Hz_tsr));
scf(13)
subplot(211)
plot2d(frq_s,ampz_tsr,logflag="ln")
xgrid()
subplot(212)
plot2d(frq_s,phiz_tsr,logflag="ln")
xgrid()
yf_out2=yf_out;
yf_out2=flts(yf_out2,sz_tsr);
scf(14)
subplot(211), plot(yf_out2), xgrid()
subplot(212), plot(s_in), xgrid()
err2=0;
for n=4:(N-3),
err2=err2+(ys(n-2)-yf_out2(n+2))^2;
end
err2=sqrt(err2/n);
scf(16)
ach2=abs(fft(yf_out2));
plot2d(frq_s,ach2(1:641)), xgrid()
err3=0;
for n=4:(N-3),
err3=err3+(ys(n-2)-yf_out2(n+2))^2;
end
err3=sqrt(err3/n);
ampz_t_ok=1:641;
for i=1:(length(ampz_t_ok)),
ampz_t_ok(i)=ampz_tsr(i)*ampz_t(i);
end
scf(17)
plot2d(frq_s,ampz_t_ok,logflag="ln")
xgrid()
scf(18)
subplot(311), plot2d(frq_s(1:400),ampz_t_ok(1:400),logflag="ln"),xgrid()
subplot(312), plot2d(f(1:400),ampsi(1:400),logflag="ln"), xgrid()
//subplot(413), plot2d(f(1:400),amp(1:400),logflag="ln"), xgrid()
subplot(313), plot2d(frq_s(1:400),ach2(1:400),logflag="ln"), xgrid(), xgrid()