[Báo cáo] Bài tập lớn Xử lý tín hiệu số: Thiết kế bộ lọc FIR
1. Trường Đại Học Bách Khoa Hà Nội
Viện Điện Tử - Viễn Thông
====o0o====
BÀI TẬP LỚN
Xử lý số tín hiệu
Giáo viên hướng dẫn: Th.s Dương Tấn Nghĩa
Sinh viên thực hiện : Hà Xuân Anh 20111108
Nguyễn Mạnh Thế 20112240
Nguyễn Văn Ngữ 20111915
Hà Nội, 8/2014
2. Thiết kế bộ lọc FIR bằng phương pháp cửa sổ
2
Mục Lục
I. Giới thiệu đề tài : ...........................................................................................3
II. Lý thuyết :.....................................................................................................4
1. Phân loại bộ lọc lý tưởng dựa trên đáp ứng tần số:.....................................4
2. Các chỉ tiêu kỹ thuật :...............................................................................7
3. Các loại cửa sổ thông dụng :.....................................................................7
a) Cửa sổ chữ nhật :.....................................................................................7
b) Cửa sổ Hanning :.....................................................................................9
c) Cửa sổ Hamming :.................................................................................10
d) Cửa sổ Blackman:..................................................................................10
4. Quy trình thiết kế :.................................................................................11
III. Chương trình matlab : ..................................................................................13
1. Thông thấp :.........................................................................................13
2. Thông cao :............................................................................................14
3. Thông dải :............................................................................................15
4. Chắn dải :..............................................................................................16
IV. Kết luận :.....................................................................................................17
V. Tài liệu tham khảo :......................................................................................18
3. Thiết kế bộ lọc FIR bằng phương pháp cửa sổ
3
I. Giới thiệu đề tài :
Trong xử lý tín hiệu và lọc số , mảng thiết kế bộ lọc số có vai trò quan trọng và
được nghiên cứu nhiều nhất. Chúng được nghiên cứu và phát triển với mục đích có
thể mô phỏng các bộ lọc tương tự trên máy tính điện tử. Các bộ lọc số là hệ thống
dùng làm biến dạng sự phân bố tần số của các thành phận của một tín hiệu theo các
chỉ tiêu đã cho. Có 2 loại bộ lọc số :FIR (Finite – duration Impulse Response
system) hệ thống có đáp ứng xung chiều dài hữu hạn và IIR (Infinite – duration
Impulse ResponseSystem) hệ thống có đáp ứng xung chiều dài vô hạn.
Thiết kế bộ lọc FIR có nhiều phương pháp khác nhau trong đó phương pháp cửa sổ
là phương pháp đơn giản và phổ biến nhất.
4. Thiết kế bộ lọc FIR bằng phương pháp cửa sổ
4
II. Lý thuyết :
1. Phân loại bộ lọc lý tưởng dựa trên đáp ứng tần số:
a) Bộ lọc thông thấp :
Đáp ứng tần số:
|𝐻(𝑒𝑗𝜔
)| = {
1 − 𝜔𝑐 ≤ 𝜔 ≤ 𝜔𝑐
0 𝜔 𝑐ò𝑛 𝑙ạ𝑖
(−𝜋 ≤ 𝜔 ≤ 𝜋)
Đáp ứng xung :
ℎ 𝑑( 𝑛) =
1
2𝜋
∫ 𝐻(𝑒𝑗𝜔
)𝑒𝑗𝜔𝑛
𝑑𝜔
𝜋
−𝜋
=
1
2𝜋
∫ 𝑒𝑗𝜔𝑛
𝑑𝜔
𝜔 𝑐
−𝜔 𝑐
=
1
2𝜋
(
𝑒𝑗𝜔𝑛
𝑗𝑛
) |
𝜔𝑐
−𝜔𝑐
=
sin( 𝜔𝑐 𝑛)
𝜋𝑛
b) Bộ lọc thông cao:
Đáp ứng tần số :
|𝐻(𝑒𝑗𝜔
)| = {
1 {
−𝜋 ≤ 𝜔 ≤ 𝜔𝑐
𝜔𝑐 ≤ 𝜔 ≤ 𝜋
0 𝜔 𝑐ò𝑛 𝑙ạ𝑖
5. Thiết kế bộ lọc FIR bằng phương pháp cửa sổ
5
Đáp ứng xung :
ℎ 𝑑( 𝑛) =
1
2𝜋
∫ 𝐻(𝑒𝑗𝜔
)𝑒𝑗𝜔𝑛
𝑑𝜔
𝜋
−𝜋
=
1
2𝜋
∫ 𝑒𝑗𝜔𝑛
𝑑𝜔
𝜋
−𝜋
−
1
2𝜋
∫ 𝑒𝑗𝜔𝑛
𝑑𝜔
𝜔 𝑐
−𝜔 𝑐
= 𝛿( 𝑛) −
sin( 𝜔𝑐 𝑛)
𝜋𝑛
c) Bộ lọc thông dải :
Đáp ứng tần số :
|𝐻(𝑒𝑗𝜔
)| = {
1 {
−𝜔𝑐2 ≤ 𝜔 ≤ −𝜔𝑐1
𝜔𝑐1 ≤ 𝜔 ≤ 𝜔𝑐2
0 𝜔 𝑐ò𝑛 𝑙ạ𝑖
(−𝜋 ≤ 𝜔 ≤ 𝜋)
Đáp ứng xung :
7. Thiết kế bộ lọc FIR bằng phương pháp cửa sổ
7
2. Các chỉ tiêukỹ thuật :
Đối với bộ lọc thông thấp :
[0, 𝜔 𝑝] – Dải thông : {
𝜔 𝑝: 𝑇ầ𝑛 𝑠ố 𝑑ớ𝑖 ℎạ𝑛 𝑑ả𝑖 𝑡ℎô𝑛𝑔
𝛿1:Độ 𝑔ợ𝑛 𝑠ó𝑛𝑔 ở 𝑑ả𝑖 𝑡ℎô𝑛𝑔
[ 𝜔𝑠, 𝜋] – Dải chắn : {
𝜔𝑠: 𝑇ầ𝑛 𝑠ố 𝑑ớ𝑖 ℎạ𝑛 𝑑ả𝑖 𝑐ℎắ𝑛
𝛿2: Độ 𝑔ợ𝑛 𝑠ó𝑛𝑔 ở 𝑑ả𝑖 𝑐ℎắ𝑛
[𝜔𝑠, 𝜔 𝑝] − Dải chuyển tiếp (quá độ)
Độ gợn dải thông Rp = −20log10(1 − 𝛿1)
Độ suy hao dải chặn :As = −20log10( 𝛿2)
3. Các loại cửa sổ thông dụng :
a) Cửa sổ chữ nhật :
𝜔( 𝑛) = {
1 0 ≤ 𝑛 ≤ 𝑀 − 1
0 𝑛 𝑐ò𝑛 𝑙ạ𝑖
8. Thiết kế bộ lọc FIR bằng phương pháp cửa sổ
8
𝑊(𝑒𝑗𝜔
) = [
sin(
𝜔𝑀
2
)
sin(
𝜔
2
)
] 𝑒−𝑗𝜔
𝑀−1
2
9. Thiết kế bộ lọc FIR bằng phương pháp cửa sổ
9
b) Cửa sổ Hanning :
𝜔( 𝑛) = {
0.5 − 0.5cos (
2𝜋𝑛
𝑀 − 1
) 0 ≤ 𝑛 ≤ 𝑀 − 1
0 𝑛 𝑐ò𝑛 𝑙ạ𝑖
10. Thiết kế bộ lọc FIR bằng phương pháp cửa sổ
10
c) Cửa sổ Hamming :
𝜔( 𝑛) = {
0.54− 0.46cos (
2𝜋𝑛
𝑀 − 1
) 0 ≤ 𝑛 ≤ 𝑀 − 1
0 𝑛 𝑐ò𝑛 𝑙ạ𝑖
d) Cửa sổ Blackman:
11. Thiết kế bộ lọc FIR bằng phương pháp cửa sổ
11
𝜔( 𝑛) = {
0.42− 0.5cos (
2𝜋𝑛
𝑀 − 1
) + 0.08cos (
4𝜋𝑛
𝑀 − 1
) 0 ≤ 𝑛 ≤ 𝑀 − 1
0 𝑛 𝑐ò𝑛 𝑙ạ𝑖
4. Quy trình thiết kế :
Nhập thông số đầu vào
fprintf('Chon bo loc n');
mode=input('1: Thong thap, 2: Thong cao,3: Thong dai, 4: Chan dai - ');
fprintf('Thong so bo loc n');
d1=input('Do gon song: ');
d2=d1;
if (mode==1)||(mode==2)
pf=input('passband frequency: ');
sf=input('stopband frequency: ');
wc=(pf+sf)/2;
D=sf-pf;
elseif (mode==3)||(mode==4)
pf1=input('passband frequency 1: ');
sf1=input('stopband frequency 1: ');
pf2=input('passband frequency 2: ');
sf2=input('stopband frequency 2: ');
wc1=(pf1+sf1)/2;
wc2=(pf2+sf2)/2;
D=sf1-pf1;
end
fs=3000;
As=20*log(d1);
Chọn loại cửa sổ và tính bậc của bộ lọc
if (As>-30)
fprintf('Chon cua so Chu nhat');
window=1;
n=ceil(4*pi/D);
end
if((As>-49)&&(As<-30))
fprintf('Chon cua so Hanning');
window=2;
n=ceil(8*pi/D);
end
if((As>-63)&&(As<-49))
fprintf('Chon cua so Hamming');
window=3;
n=ceil(8*pi/D);
end
if(As<-63)
fprintf('Chon cua so Blackman');
window=4;
n=ceil(12*pi/D);
12. Thiết kế bộ lọc FIR bằng phương pháp cửa sổ
12
end
if (rem(n,2)==0)
m=n+1;
else
m=n;
end
fprintf('nBac cua bo loc %0.0f n',m);
Tính đáp ứng xung của cửa sổ
w=zeros(m,1);
if window==1
for i=1:1:m
w(i)=1;
end
elseif window==2
for i=0:1:(m-1)
w(i+1)=0.5*(1-cos(2*pi*i/(m-1)));
end
elseif window==3
for i=0:1:(m-1)
w(i+1)=0.54-0.46*cos(2*pi*i/(m-1));
end
elseif window==4
for i=0:1:(m-1)
w(i+1)=0.42659-0.49656*cos(2*pi*i/(m-1))+ 0.076849*cos(4*pi*i/(m-
1));
end
end
Tính đáp ứng xung lý tưởng
a=(m-1)/2;
hd=zeros(m-1,1);
if mode==1
for i=0:1:(m-1)
hd(i+1)=sin(wc*(i-a))/(pi*(i-a));
end
hd(a+1)=wc/pi;
elseif mode==2
for i=0:1:(m-1)
hd(i+1)=-sin(wc*(i-a))/(pi*(i-a));
end
hd(a+1)=1-wc/pi;
elseif mode==3
for i=0:1:(m-1)
hd(i+1)=sin(wc2*(i-a))/(pi*(i-a))-sin(wc1*(i-a))/(pi*(i-a));
end
hd(a+1)=wc2/pi-wc1/pi;
elseif mode==4
for i=0:1:(m-1)
hd(i+1)=-sin(wc2*(i-a))/(pi*(i-a))+sin(wc1*(i-a))/(pi*(i-a));
end
hd(a+1)=1-wc2/pi+wc1/pi;
end
13. Thiết kế bộ lọc FIR bằng phương pháp cửa sổ
13
Tính w(n)*hd(n)
b1=hd.*w;
h=b1';
Hiển thị
[db,w1] = freqz_m(h,[1]);
delta_w = 2*pi/1000;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
n = [0:1:m-1];
%plot
figure; stem(n,hd);
axis([0,m-1,-0.1,0.8]);
title('Day dap ung xung cua bo loc ly tuong');
xlabel('n'); ylabel('hd(n)');
%
figure; stem(n,w);
axis([0,m-1,0,1.1]);
title('Day ham cua so');
xlabel('n'); ylabel('w(n)');
%
figure; stem(n,h);
axis([0,m-1,-0.1,0.8]);
title('Ham do lon tuyet doi cua dap ung tan so');
xlabel('n'); ylabel('h(n)');
%
figure;
plot(w1/pi,db); grid; hold on;
plot(-w1/pi,db); grid;
axis([-1,1,-100,10]);
title('Ham do lon tuong doi(dB) cua dap ung tan so');
xlabel('frequency in pi units'); ylabel('Decibels');
III. Chương trình matlab :
1. Thông thấp :
14. Thiết kế bộ lọc FIR bằng phương pháp cửa sổ
14
2. Thông cao :
15. Thiết kế bộ lọc FIR bằng phương pháp cửa sổ
15
3. Thông dải :
16. Thiết kế bộ lọc FIR bằng phương pháp cửa sổ
16
4. Chắn dải :
17. Thiết kế bộ lọc FIR bằng phương pháp cửa sổ
17
IV. Kết luận :
Bộ lọc số FIR có các đặc điểm sau :
Thuận lợi :
1) Có khả năng thực hiện bộ lọc pha tuyến tính , tín hiệu qua dải thông
của bộ lọc sẽ xuất hiện chính xác ở đầu ra với độ trễ đã cho.
2) Nhiễu tính toán khá nhỏ.
Khó khăn :
1) Bậc của bộ lọc khác cao để nhận được bộ lọc có cùng chỉ tiêu kỹ thuật
so với các bộ lọc khác.
2) Với phương pháp cửa sổ : tỷ số giữa biên độ đỉnh trung tâm và đỉnh
thứ cấp đầu tiên thay đổi rất ít theo M vì vậy tỷ số này thường đặc
trưng cho cửa sổ.
Loại cửa sổ Búp chính Búp chính/búp phụ −20log10 𝛿tại đỉnh
Chữ nhật
4𝜋
𝑀
-13dB -21dB
Hanning
8𝜋
𝑀
-32dB -44dB
Hamming
8𝜋
𝑀
-43dB -53dB
Blackman
12𝜋
𝑀
-58dB -74dB
18. Thiết kế bộ lọc FIR bằng phương pháp cửa sổ
18
V. Tài liệu tham khảo :
1. Bài giảng Xử lý tín hiệu số - TS.ĐặngQuang Hiếu
2. Digital Signal Processing Using Matlab – John G G Proakis
3. Một số tài liệu khác trên internet