Bài tập lớn môn xử lý tín hiệu số - Pdf 22


ĐẠI HỌC QUY NHƠN
oOo

BÀI TẬP LỚN
MÔN HỌC: XỬ LÝ SỐ TÍN HIỆU

ĐỀ TÀI: THIẾT KẾ BỘ LỌC FIR THÔNG CAO
BẰNG PHƯƠNG PHÁP LẤY MẪU TẦN SỐ Người hướng dẫn :
Sinh viên thực hiện :

cấu trúc bộ lọc và phương pháp thiết kế tối ưu. Cấu trúc bộ lọc có thể là: cấu trúc FIR
(bộ lọc số có đáp ứng xung chiều dài xác định) hoặc cấu trúc IIR (bộ lọc số có đáp
ứng xung chiều dài không xác định). Phương pháp thiết kế có thể là: phương pháp cửa
sổ, phương pháp lấy mẫu tần số, hoặc phương pháp xấp xỉ tối ưu,…
Được sự phân công của thầy giáo , trên cơ sở những kiến thức đã học, tôi đã tìm
hiểu bộ lọc FIR theo phương pháp lấy mẫu tần số.
Tôi xin chân thành cám ơn thầy giáo , bạn bè cùng lớp đã tận tình hướng dẫn để
tôi có thể hoàn thành đề tài này. Chắc chắn đề tài sẽ không tránh khỏi những thiếu sót
rất mong được sự góp ý của quý thầy cô và các bạn.
Xin chân thành cảm ơn!

Quy nhơn, tháng 5 năm 2011
Người thực hiện
c) Kết quả 21
TÀI LIỆU THAM KHẢO 22 Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 4

Phần 1. CƠ SỞ LÝ THUYẾT
1.1. Dẫn nhập
Việc thiết kế một bộ lọc số tiến hành theo 3 bước:
 Đưa ra các chỉ tiêu: Trước khi thiết kế một bộ lọc chúng ta cần xác định các chỉ
tiêu. Các chỉ tiêu được xác định bởi các ứng dụng cụ thể khác nhau.
 Tìm các xấp xỉ: Một khi chỉ tiêu đã được xác định, ta sử dụng các khái niệm và

s

w
p

w
s


0
0
|H(e
jw
)|
Decibels
Hình 1.1 Các chỉ tiêu của bộ lọc FIR: các chỉ tiêu tuyệt đối và tương đối

Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 5
Trong đó:
 Band [0, w
p
] được gọi là dải thông, và 
1
là dung sai (gợn sóng) được chấp
nhận trong đáp ứng dải thông lý tưởng.
 Band [w
s
,

] được gọi là dải chắn, và 

0
1
1
2
10
log20 




s
A
(>>1) (1.2)
Các chỉ tiêu trên được đưa ra đối với bộ lọc FIR thông thấp, và tất nhiên đối với các
bộ lọc khác như thông cao HPF (High Pass Filter), thông dải BPF (Band Pass Filter)
đều có thể được định nghĩa tương tự. Tuy nhiên, các tham số thiết kế quan trọng nhất
là các dung sai dải tần và các tần số cạnh-dải (tolerance or ripples and band-edge
frequencies). Bởi vậy, trong phần 1 về cơ sở lý thuyết này chúng ta chỉ tập trung vào
bộ lọc FIR thông thấp. Việc thiết kế cụ thể cho bộ lọc FIR thông dải bằng kỹ thuật cửa
sổ sẽ được phát triển trên cơ sở lọc thông thấp và sẽ được mô tả chi tiết trong phần 2.
Việc thiết kế và thực hiện lọc FIR có những thuận lợi sau đây:
 Đáp ứng pha là tuyến tính.
 Dễ thiết kế do không gặp các vấn đề ổn định (lọc FIR luôn ổn định).
 Việc thực hiện rất hiệu quả.
 Có thể sử dụng DFT để thực hiện
Đáp ứng pha là tuyến tính (linear phase response) mang lại những thuận lợi sau:
 Bài toán thiết kế chỉ gồm các phép tính số học thực chứ không cần phép tính
số học phức.
 Bộ lọc pha tuyến tính không có méo trễ nhóm và chỉ bị trễ một khoảng không
đổi.

else
Mnb
nh
n
0
10
)( (1.4)
Và phương trình sai phân là:
)1Mn(xb)1n(xb)n(xb)n(y
1M10









(1.5)
Đây chính là tích chập tuyến tính của các dãy hữu hạn.
Bậc của bộ lọc là M-1, trong khi chiều dài của bộ lọc là M (bằng với số lượng các
hệ số). Các cấu trúc bộ lọc FIR luôn luôn ổn định, và tương đối đơn giản hơn so với
các cấu trúc bộ lọc IIR. Hơn thế nữa, các bộ lọc FIR có thể được thiết kế để có một
đáp ứng pha tuyến tính và đó là điều cần thiết trong một số ứng dụng.
Chúng ta sẽ xem xét lần lượt các cấu trúc của bộ lọc FIR sau đây:

a. Cấu trúc dạng trực tiếp
Phương trình sai phân được thực hiện bởi một dãy liên tiếp các bộ trễ do không có
đường phản hồi:

-
1

b
2

z
-
1

b
3

z
-
1

b
4

y(n)

x(n)

Hình 1.2 Cấu trúc lọc FIR dạng trực tiếp

Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 7
b. Cấu trúc dạng ghép tầng:
Hàm hệ thống H(z) được biến đổi thành các tích của các khâu bậc 2 với các hệ số
thực. Các khâu này được thực hiện ở dạng trực tiếp và bộ lọc tổng thể có dạng ghép

1bzbzbb)z(H 



K
1k
2
2,k
1
1,k0
)zBzB1(b (1.7)
trong đó







2
M
K
, B
k,1
và B
k,2
là các số thực đại diện cho các hệ số của các khâu bậc

kiện tuyến tính là:
1Mn0,0);n1M(h)n(h








(1.9)
1Mn0,2/);n1M(h)n(h











(1.10)
Xét phương trình sai phân được cho trong phương trình (1.5) với đáp ứng xung đối
xứng trong phương trình (1.9), ta có:
)1Mn(xb)2Mn(xb)1n(xb)n(xb)n(y
0110



1

z
-
1

z
-
1

y(n)

x(n)

B
2,1

B
3,1

b
0

B
1,2

z
-
1










1M
0n
n1M)1M(
1M
0n
n
z)n(hzz)n(h)z(H (1.11)
có (M-1) điểm cực ở gốc (trivial poles) và M-1 điểm không nằm ở vị trí bất kỳ trên
mặt phẳng z. Đáp ứng tần số là:





,e)n(h)e(H
1M
0n
njj
(1.12)

b
0


b
0

z
-
1

b
1

z
-
1

b
2

b
3

y(n)

x(n)

z
-
1

z

Do đó h(n) là đối xứng theo , là chỉ số đối xứng. Có hai kiểu đối xứng:
 M lẻ: Trong trường hợp này,
2
1M 
 là một số nguyên. Đáp ứng xung
được mô tả trong hình 1.5 dưới đây:

 M chẵn: Trong trường hợp này,
2
1M

 không phải là một số nguyên. Đáp
ứng xung được mô tả bằng hình 1.6 dưới đây:

Hình 1.5 Đáp ứng xung đối xứng, M lẻ
Hình 1.6 Đáp ứng xung đối xứng, M chẵn
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 10
Ta cũng có bộ lọc FIR pha tuyến tính loại hai nếu ta yêu cầu đáp ứng pha




j
eH

thoả mãn điều kiện:


)e(H
j


2
,
2
1M



 (1.17)
Điều này có nghĩa rằng đáp ứng xung h(n) là phản đối xứng (antisymmetric). Chỉ
số đối xứng vẫn là
2
1M

 . Một lần nữa chúng ta lại có 2 kiểu, cho M lẻ và M chẵn.
 M lẻ: Trong trường hợp này,
2
1M 
 là một số nguyên. Đáp ứng xung
được mô tả bằng hình 1.7 dưới đây:

Lưu ý rằng mẫu h() tại
2
1M

 phải bằng 0, nghĩa là,
0
2
1M
h 

2
;e)e(H)e(H
)(jj
r
j





(1.18)
trong đó H
r
(e
j
) là hàm đáp ứng độ lớn chứ không phải là hàm đáp ứng biên độ. Đáp
ứng độ lớn là một hàm thực, có thể vừa dương vừa âm, không giống đáp ứng biên độ
luôn luôn dương. Đáp ứng pha kết hợp với đáp ứng biên độ là một hàm không liên tục,
trong khi kết hợp với đáp ứng độ lớn là một hàm tuyến tính liên tục.

 Bộ lọc FIR pha tuyến tính Loại-1 (Type 1): Đáp ứng xung đối xứng, M lẻ
Trong trường hợp này
0


,
2
1M

 là một biến nguyên, và










(1.19)
trong đó:
Hình 1.8 Đáp ứng xung phản đối xứng, M chẵn
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 12

 








2
1M
h0a
với mẫu ở chính giữa (1.20)

 




,
1
M
n
0



, nhưng
2
1M


không phải là một biến nguyên, thì ta có thể chứng tỏ rằng:

 
 
2/1Mj
2/M
1n
j
e
2
1
ncosnb)e(H




 n
2
M
h2nb
với
2
M
, ,2,1n  (1.22)
So sánh (1.21) và (1.18), ta có:

 















2/M
1n
r
2



mà không cần quan tâm
đến b(n) hoặc h(n). Do đó chúng ta không thể sử dụng loại này (h(n) đối xứng, M
chẵn) đối với bộ lọc thông cao hoặc bộ lọc chắn dải.

 Lọc FIR pha tuyến tính Loại-3 (Type 3): Đáp ứng xung phản đối xứng, M lẻ
Trong trường hợp này ta có
2

 ,
2
1M 
 là một biến nguyên,




n1Mhnh




,
1
M
n
0

















2
1M
2
j
2/1M
0n
j
ensinnc)e(H (1.24)
trong đó
 









, ta có


0H
r


mà không cần quan tâm c(n) hoặc h(n).
Hơn thế nữa, je
2
j


, điều đó có nghĩa là



r
jH
là thuần ảo. Do đó, loại bộ lọc này
không thích hợp đối với việc thiết kế bộ lọc thông thấp hoặc thông cao. Tuy nhiên,
điều này thích hợp đối với việc xấp xỉ các bộ vi phân và bộ biến đổi Hilbert số lý
tưởng.

 Lọc FIR pha tuyến tính Loại-4(Type 4):Đáp ứng xung phản đối xứng, M chẵn
Trong trường hợp này
2































2
















2/M
1n
r
2
1
nsinnd)(H
(1.29)
Lưu ý: Tại



, 0)0(H
r

và je

 

Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 14
1.4 Phương pháp thiết kế lấy mẫu tần số :
Theo phương pháp lấy mẫu tần số, đáp ứng tần số yêu cầu H
d
(e
jw
) trước tiên được
lấy mẫu đều ở M điểm cách đều nhau giữa 0 và 2pi :
H(k)= H
d
(e
j2k/M
) k=0,1, M-1
Các mẫu tần số này tạo thành DFT M điểm mà biến đổi nghịch là bộ lọc FIR có bậc
M-1:





1
0
/2
)(
1
)(
M
k

M
k
Mnkj
M
M
n
n
ez
kH
M
z
znhzH
Đáp ứng pha đối với kiểu 1 và 2 :
Đáp ứng pha đối với kiểu 3 và 4

Hình 1.9 mô tả kỹ thuật lấy mẫu tần số :

Từ hình trên ta nhận thấy :
Lỗi xấp xỉ là hiệu của đáp ứng lý tưởng và đáp ứng thực tế bằng không tại các tần số
được lấy mẫu.
0 1 2 3 4 5 6 7
.

1

.

.

.

.

.


























1,,1
2
1
,
)(2
2
1
2
1
,,0,
2
2
1
)(
M
M
k
M
kMM
M
k
M
kM
kH


































kMM
M
k
M
kM
kH




Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 15
Lỗi xấp xỉ ở tất cả các tần số khác phụ thuộc vào hình dạng của đáp ứng tần số lý
tưởng; nghĩa là, đáp ứng tần số lý tưởng càng sắc nét thì lỗi xấp xỉ càng lớn.
Lỗi càng lớn khi ở gần cạnh dải và càng bé khi ở bên trong dải.
- Có hai cách tiếp cận thiết kế :
a. Phương pháp thiết kế đơn giản : sử dụng ý tưởng cơ bản và không đưa ra một
ràng buộc nào về lỗi xấp xỉ, nghĩa là chấp nhận lỗi sinh ra do thiết kế.
Trong phương pháp này ta đặt H(k)= H
d
(e
j2k/M
) k=0,1, M-1 và sử dụng các
công thức để thu được đáp ứng xung h(n). Phương pháp này ít được sử dụng trong
thực tế.
b. Phương pháp thiết kế tối ưu : cố gắng tối thiểu hóa lỗi trong dải chắn bằng cách
thay đổi các giá trị của mẫu trong dải chuyển tiếp.
Trong phương pháp này, chúng ta phải tăng M để tạo ra các mẫu tự do trong dải
chuyển tiếp nghĩa là chúng ta thay đổi các giá trị của chúng để thu được hệ số suy
giảm lớn nhất đối với M và độ rộng dải chuyển tiếp đã cho. Đây là một bài toán tối ưu
hóa và được giải quyết bằng kỹ thuật quy hoạch tuyến tính.


 Suy hao trong dải chắn: A
s

Các đại lượng này có thể được mô tả trên hình 2.1 như sau: Điều kiện: w
s
< w
p
<1
Hoặc bài toán cho các chỉ tiêu 
1
và 
2
ta cũng có thể tính được A
s
và R
p
dựa vào

nhất.
Bước 3. Tìm đáp ứng xung của bộ lọc thông cao cần thiết kế
Đáp ứng xung của bộ lọc thông cao có thể tìm được bằng phép biển đổi DFT
ngược các mẫu hd(n) :





1
0
/2
)(
1
)(
M
k
Mnkj
ekH
M
nh
10



Mn

2.3. Thuật toán và chương trình Matlab
Trong phần này sẽ thực hiện chương trình thiết kế bộ lọc thông cao bằng phương
pháp lấy mẫu tần số. Chương trình sẽ nhận các chỉ tiêu yêu cầu của bộ lọc cần thiết kế,
BEGIN
Nhập các chỉ tiêu
w
s

Rpd và Asd có
thỏa mãn yêu
cầu không?
Yes
No
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 19
b) Chương trình
function [ws wp As Rp]=loc_FIR_thongcao()
fprintf('\n');
fprintf('Nhap vao cac thong so cua bo loc thong cao :');
fprintf('\n');
ws1=input('Nhap 0<ws <1, ws = ');
while((ws1<=0)|(ws1>=1))
ws1=input('Nhap sai, nhap lai 0<ws <1, ws = ');
end
wp1=input('Nhap wp>ws ,0<wp <1, wp = ');
while(((wp1<=0)|(wp1>=1))|(wp1<=ws1))
wp1=input('Nhap sai, nhap lai wp>ws ,0<wp <1, wp = ');
end
As1=input('Nhap As >21, As = ');
while(As1<=21)
As1=input('Nhap sai, nhap lai As>21, As = ');
end
Rp1=input('Nhap 0 < Rp < 1, Rp = ');
while((Rp1<=0)|(Rp1>=1))
Rp1=input('Nhap sai, nhap lai 0 < Rp < 1, Rp = ');
end
ws=ws1;
wp=wp1;
As=As1;

Hrs = [zeros(1,N1),T1op,T2op,ones(1,N2-N1-2),T2op,T1op,zeros(1,M-N2-2)];
Hdr = [0,0,1,1]; wdl = [0,ws,wp,1];
k1 = 0:floor((M-1)/2); k2 = floor((M-1)/2)+1:M-1;
angH = [-alpha*(2*pi)/M*k1, alpha*(2*pi)/M*(M-k2)];
H = Hrs.*exp(j*angH);
h = real(ifft(H,M));
[db,mag,pha,grd,w] = freqz_m(h,1);
[Hr,ww,a,L] = Hr_Type1(h);
subplot(1,1,1);
subplot(2,2,1);plot(wl(1:alpha+1)/pi,Hrs(1:alpha+1),'o',wdl,Hdr);
axis([0,1,-0.1,1.1]); title('Frequency Samples at M=%2.4f',M);
xlabel('Frequency in pi units'); ylabel('Hr(k)')
set(gca,'XTickMode','manual','XTick',[0;ws;wp;1])
set(gca,'XTickLabelMode','manual','XTickLabels',[0;ws;wp; 1])
set(gca,'YTickMode','manual','YTick',[0,T1op,T2op,1]); grid
subplot(2,2,2); stem(l,h); axis([-1,M,-0.4,0.4])
title('Impulse Response'); xlabel('n');ylabel('h(n)');text(M+1,-0.4,'n')
subplot(2,2,3); plot(ww/pi,Hr,wl(1:alpha+1)/pi,Hrs(1:alpha+1),'o');
axis([0,1,-0.1,1.1]); title('Amplitude Response')
xlabel('Frequency in pi units'); ylabel('Hr(w)')
set(gca,'XTickMode','manual','XTick',[0;ws;wp;1])
set(gca,'XTickLabelMode','manual','XTickLabels',[ 0;ws;wp;1])
set(gca,'YTickMode','manual','YTick',[T1op,T2op]); grid
subplot(2,2,4);plot(w/pi,db); axis([0,1,-100,10]); grid
title('Magnitude Response');xlabel('Frequency in pi units'); ylabel('Decibels');
set(gca,'XTickMode','manual','XTick',[0;ws;wp;1])
set(gca,'XTickLabelMode','manual','XTickLabels',[ 0;ws;wp; 1])
set(gca,'YTickMode','Manual','YTick',[-As;0]);
set(gca,'YTickLabelMode','manual','YTickLabels',[As; 0])



TÀI LIỆU THAM KHẢO


[1] Ngô Văn Sỹ, giảng Xử lý Tín hiệu số, Đại học Bách Khoa Đà Nẵng.
[2] Monson H. Hayes (Sách dịch - Tống Văn On), Lý thuyết và Bài tập Xử lý Tín
hiệu số, Nhà xuất bản Lao động xã hội.
[3] Quách Tuấn Ngọc, Xử lý Tín hiệu số, Đại học Bách Khoa Hà Nội.
[4] Nguyễn Quốc Trung (2002), Xử lý Tín hiệu và Lọc số, Nhà xuất bản Khoa học
và Kỹ thuật.
[5] Nguyễn Phùng Quang, Matlab & Simulink dành cho kỹ sư điều khiển tự
động, NXB Khoa Học Kỹ Thuật, 2004.
[6] Vinay K. Ingle & John G. Proalis, Digital Signal Procesing Using MATLAB,
Brooks/Cole Thomson Learning.
[7] Hồ Văn Sung, Thực hành Xử Lý Số Tín Hiệu Trên Máy Tính PC Với
Matlab, NXB Khoa Học Kỹ Thuật, 2005.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status