Professional Documents
Culture Documents
b3 Bộ Lọc Fir Và Iir - Sinh Vien
b3 Bộ Lọc Fir Và Iir - Sinh Vien
Nhóm lớp: …..……….… Tiểu nhóm: …..…..….. Ngày thí nghiệm: …….………………..
- Hiểu rõ các bước từ thiết kế đến hiện thực bộ lọc FIR/IIR lên trên một kit DSP.
- Quan sát đáp ứng xung và đáp ứng tần số của bộ lọc.
- Kiểm tra đặc tính (thông thấp, thông cao, thông dải, chắn dải) của bộ lọc.
- Khảo sát ngõ ra của bộ lọc khi ngõ vào là tín hiệu xung vuông.
- Hệ thống lại các lý thuyết đã học.
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 2
3. CƠ SỞ LÝ THUYẾT
Lọc là một trong những hoạt động xử lý tín hiệu quan trọng. Một bộ lọc tương tự hoạt động trên
các tín hiệu liên tục và thường được thực hiện với các linh kiện như khuếch đại thuật toán, các
điện trở và các tụ điện. Một bộ lọc số hoạt động trên tín hiệu thời gian rời rạc và có thể thực hiện
với một bộ xử lý số tín hiệu như họ TMS320C6x. Quá trình lọc bao gồm sử dụng một bộ biến đổi
A/D để nhận tín hiệu vào, xử lý các mẫu vào rồi gửi kết quả ra thông qua một bộ biến đổi D/A.
Các bộ lọc số có rất nhiều ưu điểm so với các bộ lọc tương tự. Các ưu điểm này bao gồm độ tin
cậy cao hơn, độ chính xác cao hơn và ít nhạy với nhiệt độ và tuổi đời. Các đặc tính lọc như tần số
trung tâm, băng thông và loại bộ lọc có thể thay đổi dễ dàng. Một số công cụ có sẵn cho việc thiết
kế và thực hiện các bộ lọc số một cách nhanh chóng trên Matlab® như công cụ SPTool.
3.1. Bộ lọc FIR
Bộ lọc FIR nhân quả bậc M có đáp ứng xung h n h0 , h1 ,, hM (chiều dài đáp ứng xung bằng
N = M + 1). Ngõ ra y n của bộ lọc được xác định theo công thức tích chập:
y ( n ) h ( m) x ( n m ) x ( m ) h ( n m )
m m
Hàm truyền của bộ lọc được xác định từ biến đổi Z của h n như sau:
M
H ( z ) h(n) z n h0 h1 z 1 ... hM z M
n 0
trong đó các hệ số của hàm truyền chính là đáp ứng xung h n của bộ lọc.
Thiết kế bộ lọc FIR chính là thiết kế các hệ số đáp ứng xung. Việc thiết kế này có thể thực hiện sử
dụng nhiều phương pháp, trong đó phương pháp đơn giản nhất là phương pháp cửa sổ. Trong môn
học này, việc thiết kế các hệ số đáp ứng xung này sẽ được thực hiện bởi công SPTool trên Matlab.
Bộ lọc có thể được thực hiện dựa trên hai phương pháp gồm: i) Phương pháp xử lý khối và, ii)
phương pháp xử lý mẫu. Trong môn học này, chúng ta sẽ sử dụng phương pháp xử lý mẫu cho các
bài thí nghiệm.
Đối với phương pháp xử lý mẫu, bộ lọc FIR có thể được thực hiện dạng trực tiếp như sau:
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 3
Nếu chúng ta đặt các biến trạng thái trung gian như sau wi n x n i , i 0,1,, M , giải thuật
xử lý mẫu của bộ lọc trên sẽ được thực hiện bởi lưu đồ sau:
Trong đó các biến trạng thái trung gian ban đầu được khởi tạo wi 0, i 1, 2,, M .
Câu hỏi chuẩn bị 1: Viết chương trình Matlab thực hiện giải thuật xử lý mẫu để thực hiện bộ
lọc FIR có bậc M có ngõ vào x và đáp ứng xung h. Lưu lại với tên
Bai_3_NHOMx_CB_1_FIR.m ./.
Câu hỏi chuẩn bị 2: Sử dụng chương trình Matlab đã viết để xác định ngõ ra của bộ lọc FIR có
đáp ứng xung h n 1, 2, 1,1 và ngõ vào x n 1,1, 2,1, 2, 2,1,1 . Kiểm tra tính chính xác
của chương trình vừa thực hiện bằng cách so sánh kết quả vừa tìm được với kết quả sử dụng
hàm conv trên Matlab. Lưu lại với tên Bai_3_NHOMx_CB_2_FIR.m ./.
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 4
N M
y ( n) b k x ( n k ) a j y ( n j )
k 0 j 1
Dạng phương trình đệ quy này biểu diễn một bộ lọc IIR. Ngõ ra y n ở thời điểm n không chỉ
phụ thuộc vào giá trị ngõ vào hiện tại x n và trong quá khứ x n 1 ,, x n N , mà còn phụ
thuộc vào giá trị các ngõ ra trước đó y n 1 ,, y n M .
Nếu chúng ta giả sử các điều kiện ban đầu đều bằng 0, biến đổi Z phương trình I/O trên sẽ cho
Y ( z ) b0 X ( z ) b1 z 1 X ( z ) b2 z 2 X ( z ) bN z N X (z)
a1 z 1Y ( z ) a 2 z 2Y ( z ) a M z M Y ( z ).
Y ( z ) b 0 b1 z 1 b2 z 2 b N z N N ( z )
H ( z)
X ( z ) 1 a1 z 1 a 2 z 2 a N z N D( z )
trong đó N z và D z biểu diễn đa thức tử số và đa thức mẫu số của hàm truyền. Nhân cả tử và
mẫu số cho z N , H z trở thành:
b 0 z N b1 z N 1 b2 z N 2 b N N
z zi
H ( z)
z a1 z N 1
a2 z N 2
aN
C
i 1 z p i
N
Đây là một hàm truyền với N zero và N cực. Nếu tất cả các hệ số a j 0, j , hàm truyền này trở
thành hàm truyền của một bộ lọc FIR. Chú ý rằng để hệ thống ổn định, tất cả các cực phải nằm
trong vòng tròn đơn vị p j 1, j .
Một bộ lọc IIR có thể được thực hiện theo một trong các dạng cấu trúc sau: i) Dạng trực tiếp 1, ii)
Dạng trực tiếp 2 (chính tắc), iii) Dạng trực tiếp 2 chuyển vị, iv) Dạng nối tiếp các tầng bậc 2 và v)
Dạng song song.
1. Dạng trực tiếp 1
Sơ đồ khối dạng trực tiếp của một bộ lọc IIR được cho như sau
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 5
Có thể thấy rằng khi thực hiện ở dạng này, một bộ lọc bậc M cần dùng 2M khối làm trễ. Điều này
dẫn đến gia tăng chi phí, do đó chúng ta cùng xem xét các dạng khác của bộ lọc IIR trong các tiểu
mục sau.
Câu hỏi chuẩn bị 3: Viết chương trình Matlab thực hiện giải thuật xử lý mẫu dạng trực tiếp để
thực hiện bộ lọc IIR tổng quát có bậc M có tín hiệu ngõ vào x. Lưu lại với tên
Bai_3_NHOMx_CB_3_IIR_Direct.m ./.
2 3 z 1 4 z 3
Câu hỏi chuẩn bị 4: Cho bộ lọc IIR có hàm truyền H z , hãy
1 0.2 z 1 0.3 z 2 0.5 z 4
1. Vẽ sơ đồ khối dạng trực tiếp 1 của bộ lọc. Vẽ đáp ứng tần số của bộ lọc (có thể sử dụng
hàm freqz trên Matlab.) Tìm ngõ ra y(n) khi ngõ vào x(n) = [1, 2, -1, 1].
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 6
2. Sử dụng chương trình Matlab đã viết ở câu hỏi chuẩn bị 3 để xác định ngõ ra của bộ lọc
khi ngõ vào x n 1, 2, 1,1 . Kiểm tra tính chính xác với kết quả tính được ở ý 1. Lưu lại với
tên Bai_3_NHOMx_CB_4_IIR_Direct.m ./.
trong đó D z là mẫu số của hàm truyền bộ lọc IIR, biểu thức biến đổi Z của
X ( z)
Đặt U ( z )
D( z )
ngõ ra có thể viết thành
N z
Y z X z N z U z
D z
U z b0 b1 z 1 b2 z 2 bN z N
X ( z) U ( z) D( z) U ( z)(1 a1z 1 a 2 z 2 a N z N )
Thực hiện phép biến đổi Z ngược đổi với U z và Y z ta thu được
Chúng ta sử dụng biến đổi này để thực hiện dưới dạng sơ đồ khối:
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 7
Khi đặt các biến trạng thái trung gian w j , j 1, 2,, M , giải thuật xử lý mẫu của bộ lọc IIR (dạng
trực tiếp) trên có thể được thực hiện bởi lưu đồ sau:
Câu hỏi chuẩn bị 5: Viết chương trình Matlab thực hiện giải thuật xử lý mẫu dạng chính tắc để
thực hiện bộ lọc IIR tổng quát có bậc M có ngõ vào x. Sau đó tính ngõ ra với các thông số bộ
lọc và ngõ vào như câu hỏi chuẩn bị 4. Lưu lại với tên
Bai_3_NHOMx_CB_5_IIR_Canonical.m ./.
Hình 4. Một ví dụ của bộ lọc IIR dạng trực tiếp 2 chuyển vị.
4. Dạng nối tiếp
Hàm truyền trên có thể được phân tích thành tích các hàm truyền bậc 1 hoặc bậc 2 như sau:
H ( z) C H 1( z)H 2 ( z) H r ( z)
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 8
Sơ đồ khối của một bộ lọc IIR bậc 8 với dạng nối tiếp của K = 4 bộ lọc IIR bậc 2 được cho như
sau
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 9
Các hệ số của bộ lọc IIR dạng nối tiếp (gồm bij , i 0,, L; j 0,1, 2 và a mn , m 0,, L; n 1, 2
với L = K – 1 và K là số tầng nối tiếp của bộ lọc) được viết thành ma trận sos như sau
b00 b01 b02 1 a 01 a 02
sos 10
b b11 b12 1 a11 a12
B A ,
b L 0 b L1 bL 2 1 a L1 a L2
B A
và ma trận các biến trạng thái trung gian được định nghĩa bởi
Nếu đặt các biến trạng thái trung gian như trên hình, giải thuật xử lý mẫu của bộ lọc IIR trên (dạng
nối tiếp K tầng) sẽ được thực hiện bởi lưu đồ sau:
Câu hỏi chuẩn bị 6: Viết chương trình Matlab thực hiện giải thuật xử lý mẫu (dạng nối tiếp) để
thực hiện bộ lọc IIR dạng nối tiếp với K = 5 tầng của các bộ lọc IIR bậc 2 với ma trận hệ số bộ
lọc sos và ma trận trạng thái trung gian W có ký hiệu như trên. (Để thuận tiện sv có thể cho ma
trận sos, tín hiệu ngõ vào x(n) bất kỳ để kiểm tra chương trình.) Lưu lại với tên
Bai_3_NHOMx_CB_6_IIR_Cascade.m ./.
Câu hỏi chuẩn bị 7: Cho bộ lọc IIR có hàm truyền dạng nối tiếp như sau
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 10
3 4 z 1 2 z 2 3 4 z 1 2 z 2
H z 1 2 1 2
1 0.4 z 0.5 z 1 0.4 z 0.5 z
9 4 z 2 4 z 4
,
1 0.84 z 2 0.25 z 4
a. Xác định ma trận hệ số bộ lọc sos (A, B) và ma trận các biến trạng thái trung gian W
đối với bộ lọc trên.
b. Vẽ sơ đồ khối với bộ lọc dạng nối tiếp với các thông số trên.
c. Viết lưu đồ giải thuật xử lý mẫu cho bộ lọc trên.
d. Viết lưu đồ giải thuật xử lý mẫu cho bộ lọc trên.
e. Viết chương trình Matlab thực hiện giải thuật xử lý mẫu trên để tìm ngõ ra của bộ lọc
khi ngõ vào x(n) = [1, 2, -1, 1]. Lưu lại với tên
Bai_3_NHOMx_CB_7_IIR_Canonical.m ./.
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 11
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 12
6. Xác định đặc tính (thông thấp, thông cao, thông dải, chắn dải) của bộ lọc?
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 13
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 14
3. Hãy vẽ cách thực hiện dạng trực tiếp (direct form) của bộ lọc.
4. Hãy vẽ cách thực hiện dạng chính tắc (canonical form) của bộ lọc.
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 15
5. Hãy vẽ cách thực hiện dạng ghép nối tiếp các tầng bậc hai (cascade form) của bộ lọc.
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 16
7. Xác định đặc tính (thông thấp, thông cao, thông dải, chắn dải) của bộ lọc?
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 17
Câu hỏi chuẩn bị (thí nghiệm): sinh viên đọc kỹ tiến trình thí nghiệm để trả lời.
1. Số lượng bộ lọc cần phải thực hiện trong bài thí nghiệm?
2. Các phương pháp thiết kế bộ lọc FIR/IIR dùng MATLAB?
3. Tóm tắt quy trình thiết kế bộ lọc FIR/IIR dùng MATLAB?
4. Các hệ số đáp ứng xung của bộ lọc FIR/IIR dùng trong chương trình DSP được lưu trong
tập tin nào?
5. Tóm tắt quy trình thực hiện bộ lọc FIR/IIR trên kit DSP?
6. Tìm hiểu một số lệnh trong MATLAB liên quan đến xử lý chuỗi để hỗ trợ chuyển đổi kết
quả từ MATLAB sang C dùng cho kit DSP? Viết đoạn chương trình MATLAB hỗ trợ việc
chuyển đổi này?
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 18
Trong phần thí nghiệm này có 3 yêu cầu chính cần phải thực hiện:
1. Thiết kế bộ lọc: Kết quả của phần này là có được đáp ứng xung h n của bộ lọc (Sử dụng
các phương pháp thiết kế bộ lọc sử dụng Matlab).
2. Thực hiện bộ lọc trên phần mềm Matlab: Sử dụng đáp ứng xung h n thu được từ phần
thiết kế, viết chương trình Matlab thực hiện bộ lọc. Chương trình sẽ đọc từng mẫu dữ liệu
ngõ vào và tiến hành xử lý mẫu để tính toán dữ liệu ngõ ra.
3. Kiểm tra bộ lọc đã thực hiện: Trong phần này, chương trình Malab của bộ lọc sẽ được kiểm
tra xem có đáp ứng yêu cầu đặt ra hay không. Chúng ta sẽ tạo mẫu tín hiệu ngõ vào (sử dụng
các chương trình tạo mẫu trong bài 1) và quan sát tín hiệu ngõ ra của bộ lọc khi thay đổi tín
hiệu ngõ vào.
5.1. Các bộ lọc FIR
5.1.1. Bộ lọc FIR chắn dải
Thiết kế, thực hiện và khảo sát bộ lọc FIR chắn dải bằng phương pháp cửa sổ Kaiser với các thông
số sau:
Chiều dài của đáp ứng xung: N = 63 (MATLAB hiển thị bậc bộ lọc bằng 62)
Tần số trung tâm: 2700 Hz
Tần số cắt: 2500 Hz và 2900 Hz
Giá trị của = 4
Tần số lấy mẫu 8000 Hz
Thiết kế bộ lọc dùng MATLAB
1. Khởi động SPTool. Dưới cột Filters, nhấn nút New để mở cửa sổ Filter Designer.
2. Trong giao diện của Filter Designer:
a. Trong text box Filter: Tên bộ lọc được tự đặt (ở đây là filt-x). Tên này có thể thay đổi
sau này.
b. Nhập các thông số thiết kế vào:
Response Type = Bandstop
Design Method = FIR Window
Specify Order: 62
Window: Kaiser, Beta: 4
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 19
Khi thiết kế một bộ lọc FIR như trên, kết quả mà ta cần nhận được sau khi thiết kế là các giá trị
của vector đáp ứng xung h n của bộ lọc thiết kế. Để lấy các giá trị của vector đáp ứng xung, ta
thực hiện như sau:
1. Từ cửa sổ SPTool, chọn File Export… Trong Export list xuất hiện, chọn
Filter: bs2700 [design] rồi nhấn nút Export to workspace
2. Đóng cửa sổ SPTool lại. Một thông báo xuất hiện hỏi có muốn lưu lại phiên làm việc hiện
tại hay không. Nếu muốn lưu lại, chọn Save.
3. Mở cửa sổ Workspace của MATLAB, ta sẽ thấy trong workspace sẽ xuất hiện biến mới là
bs2700. Đây chính là bộ lọc mà ta đã thiết kế trong SPTool và xuất ra workspace của
MATLAB. Biến này được lưu dưới dạng một cấu trúc mô tả bộ lọc đã thiết kế. Nhấn đúp
chuột vào tên biến bs2700 trong workspace, ta sẽ thấy được các field của cấu trúc này.
4. Trong các field này, field tf thể hiện hàm truyền của bộ lọc. Field này cũng là một cấu trúc
gồm 2 field: tf.num và tf.den thể hiện tương ứng các hệ số của đa thức tử số và đa thức mẫu
số. Đối với bộ lọc FIR, hàm truyền chỉ có tử số và các hệ số của tử số chính là đáp ứng xung
của bộ lọc. Do đó, với bộ lọc trên, các giá trị của vector đáp ứng xung được lưu trong
bs2700.tf.num. Trong cửa sổ Array Editor trên, lần lượt nhấn đúp vào field tf rồi nhấn đúp
vào num, ta sẽ thấy các hệ số đáp ứng xung của bộ lọc. Để gán các hệ số này vào một vector
h, trong MATLAB có thể dùng lệnh sau:
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 20
>> h = bs2700.tf.num
Thực hiện ghi nhận lại: Tổng số giá trị là: ……
Ghi nhận lại giá trị đáp ứng xung của bộ lọc vào bảng sau:
(Ghi chú: thực hiện tính h*1e6 trên Matlab và làm tròn giá trị đến hàng đơn vị, ví dụ giá trị
0.001793957 thì làm tròn thành 1793.10-6, và ghi nhận vào bảng 1793 vì đơn vị bảng là 10 6 .)
Đơn vị 10 6
Để thực hiện việc tính toán ngõ ra của bộ lọc, ta có thể sử dụng định nghĩa y (n) h n x n với
h n là đáp ứng xung vừa tìm được sử dụng công cụ sptool ở trên và x n là mẫu tín hiệu ngõ
vào. Do đó có thể sử dụng giải thuật xử lý mẫu để thực hiện bộ lọc.
Chương trình Matlab thực hiện giải thuật xử lý mẫu cho bộ lọc này như sau:
% Matlab code
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 21
1. Sử dụng chương trình vẽ đồ thị Matlab để vẽ đồ thị giá trị đáp ứng xung của bộ lọc.
Chương trình Matlab vẽ đồ thị đáp ứng xung của bộ lọc
2. Sử dụng chương trình Matlab tính FFT của đáp ứng xung và vẽ đồ thị đáp ứng biên bộ và
pha trong miền tần số của bộ lọc.
Chương trình Matlab tính FFT và vẽ đồ thị đáp ứng tần số của bộ lọc
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 22
Thực hiện tính phổ của ngõ vào (x) và ngõ ra (y) của bộ lọc, sau đó vẽ đồ thị phổ biên độ của
ngõ vào và ngõ ra. Nhận xét.
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 23
2. Tạo một mẫu tín hiệu x(n) là tổng của các tín hiệu sine có tần số từ 100 Hz đến 3900 Hz có
bước nhảy 100Hz và tần số lấy mẫu fs = 8000 Hz, sau đó cho tín hiệu xn qua bộ lọc để tính
giá trị ngõ ra y(n). Dùng chương trình Matlab để vẽ phổ biên độ của tín hiệu ngõ vào và ngõ
ra. Giải thích tại sao có dạng phổ này?
Chương trình Matlab thực hiện yêu cầu:
% Matlab code
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 24
Lưu các chương trình Matlab trong mục này với tên Bai_2 _FIR_bs_2700_2900_NHOMx.m
2. Gía trị các hệ số đáp ứng xung của bộ lọc trên SPTool của Matlab:
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 25
3. Đáp ứng biên độ-tần số và pha-tần số của bộ lọc thực hiện trên Matlab:
4. Kiểm tra bộ lọc với ngõ vào tín hiệu sin đa tần có các thành phần tần số 1000 Hz và 1700
Hz:
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 26
5. Kiểm tra bộ lọc với ngõ vào tín hiệu tổng của các tín hiệu sine tần số từ 100 – 3900 Hz:
Chương trình Matlab thực hiện yêu cầu:
% Matlab code
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 27
Lưu các chương trình Matlab trong mục này với tên Bai_2 _FIR_bp_1500_2000_NHOMx.m
2. Gía trị các hệ số đáp ứng xung của bộ lọc thực hiện trên kit DSP:
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 28
3. Đáp ứng biên độ-tần số và pha-tần số của bộ lọc thực hiện Matlab:
4. Kiểm tra bộ lọc với ngõ vào tín hiệu sin đa tần có các thành phần tần số 1000 Hz và 2500
Hz:
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 29
5. Kiểm tra bộ lọc với ngõ vào tín hiệu tổng của các tín hiệu sin tần số 100 – 3900 Hz:
Chương trình Matlab thực hiện yêu cầu:
% Matlab code
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 30
Lưu các chương trình Matlab trong mục này với tên Bai_2 _FIR_hp_2700_2900_NHOMx.m
1.2
0.8
0.6
0.4
0.2
0
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
Hình 6. Đáp ứng tần số của bộ lọc multiband FIR cần thiết kế.
Thiết kế bộ lọc dùng MATLAB
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 31
Bộ lọc mong muốn có 2 dải thông, được biểu diễn bởi 5 dải như sau:
1 0 – 500 0 – 0.1 0
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 32
- Lệnh figure tạo ra một cửa sổ mới và lệnh plot thứ hai vẽ đáp ứng tần số của bộ lọc đã thiết
kế được lên cửa sổ mới này.
Ở đây, kết quả của quá trình thiết kế mà ta cần nhận được chính là các hệ số chứa trong biến cof.
Chúng được sử dụng để viết chương trình Matlab cho bộ lọc cần thực hiện.
1. Đáp ứng tần số của bộ lọc thiết kế dùng MATLAB:
2. Gía trị các hệ số đáp ứng xung của bộ lọc thực hiện trên kit DSP:
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 33
4. Đáp ứng biên độ-tần số và pha-tần số của bộ lọc thực hiện trên kit DSP:
5. Kiểm tra bộ lọc với ngõ vào tín hiệu sin đa tần có các thành phần tần số 500 Hz, 750 Hz
và 1750 Hz:
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 34
6. Kiểm tra bộ lọc với ngõ vào tín hiệu tổng của các tín hiệu sine tần số từ 100 – 3900 Hz:
Chương trình Matlab thực hiện yêu cầu:
% Matlab code
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 35
Lưu các chương trình Matlab trong mục này với tên Bai_2 _FIR_mb_NHOMx.m
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 36
3. Trở về cửa sổ SPTool, trong cột Filters sẽ xuất hiện thêm một dòng filt2 [design]. Đây
chính là bộ lọc vừa thiết kế. Thay đổi tên bộ lọc trên thành bs1750 bằng cách chọn Edit
Name…filt2 [design]. Trong cửa sổ mới xuất hiện, nhập tên mới.
4. Từ cửa sổ SPTool, chọn File Export… Trong Export list xuất hiện, chọn
Filter: bs1750 [design] rồi nhấn nút Export to workspace
5. Đóng cửa sổ SPTool lại. Một thông báo xuất hiện hỏi có muốn lưu lại phiên làm việc hiện
tại hay không. Nếu muốn lưu lại, chọn Save.
6. Mở cửa sổ Workspace của MATLAB, ta sẽ thấy trong workspace sẽ xuất hiện biến mới là
bs1750. Đây chính là bộ lọc mà ta đã thiết kế trong SPTool và xuất ra workspace của
MATLAB. Biến này được lưu dưới dạng một cấu trúc mô tả bộ lọc đã thiết kế. Nhấn đúp
chuột vào tên biến bs1750 trong workspace, ta sẽ thấy được các field của cấu trúc này.
7. Trong các field này, field tf thể hiện hàm truyền của bộ lọc. Field này cũng là một cấu trúc
gồm 2 field: tf.num và tf.den thể hiện tương ứng các hệ số của đa thức tử số và đa thức
mẫu số. Để chuyển các hệ số này sang dạng mỗi tầng bậc hai (second-order section), trong
MATLAB có thể dùng các lệnh sau:
>> [z,p,k] = tf2zp(bs1750.tf.num, bs1750.tf.den) ;
>> sos = zp2sos(z,p,k);
Ma trận sos trong MATLAB như sau:
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 37
trong đó b0i, b1i, b2i là các hệ số tử số hàm truyền của phần bậc 2 thứ i và 1, a1i, a2i là các hệ
số mẫu số của hàm truyền của phần bậc 2 thứ i.
Các phần tử của ma trận sos này sẽ được sử dụng để thực hiện bộ lọc IIR. Ghi nhận các giá trị b
và a vào bảng sau
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 38
2. Kiểm tra bộ lọc với ngõ vào tín hiệu tổng của các tín hiệu sin tần số 100 – 3900 Hz:
Chương trình Matlab thực hiện yêu cầu:
% Matlab code
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 39
Lưu các chương trình Matlab trong mục này với tên Bai_2 _IIR_bs_1700_1800_NHOMx.m
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 40
2. Gía trị các hệ số đáp ứng xung mỗi tầng bậc 2 của bộ lọc thực hiện trên kit DSP:
3. Kiểm tra bộ lọc với ngõ vào tín hiệu sin đa tần có các thành phần tần số 1000 Hz và 1700
Hz:
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 41
4. Kiểm tra bộ lọc với ngõ vào tín hiệu tổng của các tín hiệu sin tần số 100 – 3900 Hz:
Chương trình Matlab thực hiện yêu cầu:
% Matlab code
Lưu các chương trình Matlab trong mục này với tên Bai_2 _IIR_lp_1600_NHOMx.m
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 42
Bậc bộ lọc: 36
Tần số cắt dải chắn: 1600 và 2400 Hz
Độ gợn dải chắn 100 dB.
Tần số lấy mẫu: 8 kHz.
2. Gía trị các hệ số đáp ứng xung mỗi tầng bậc 2 của bộ lọc thực hiện trên kit DSP:
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 43
3. Kiểm tra bộ lọc với ngõ vào tín hiệu sin đa tần có các thành phần tần số 1000 Hz và 2000
Hz:
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 44
4. Kiểm tra bộ lọc với ngõ vào tín hiệu tổng của các tín hiệu sin tần số 100 – 3900 Hz:
Chương trình Matlab thực hiện yêu cầu:
% Matlab code
Lưu các chương trình Matlab trong mục này với tên Bai_2 _IIR_bp_1600_2400_NHOMx.m
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 45
m = [0 0 1 1 0 0 1 1 0 0];
n = 63;
[num, den] = yulewalk(n-1,f,m);
2. Gía trị các hệ số đáp ứng xung mỗi tầng bậc 2 của bộ lọc thực hiện trên kit DSP:
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 46
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 47
3. Kiểm tra bộ lọc với ngõ vào tín hiệu sin đa tần có các thành phần tần số 500 Hz, 750 Hz
và 1750 Hz:
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 48
3. Kiểm tra bộ lọc với ngõ vào tín hiệu tổng của các tín hiệu sin tần số 100 – 3900 Hz:
Chương trình Matlab thực hiện yêu cầu:
% Matlab code
Lưu các chương trình Matlab trong mục này với tên Bai_2 _IIR_mb_NHOMx.m
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 49
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU (EE2016) 50
1. Cho biết cách kiểm tra và một số đặc tính cơ bản của bộ lọc tuyến tính bất biến.
2. Phân loại bộ lọc tuyến tính bất biến dựa vào đáp ứng xung và đáp ứng tần số.
3. Cho biết tên đầy đủ của các thuật ngữ viết tắt sau: FIR, IIR, LPF, HPF, BPF, BSF.
4. Cho biết cách kiểm tra và ý nghĩa các đặc tính nhân quả và ổn định của bộ lọc.
5. Cho biết cách xác định và ý nghĩa bậc của bộ lọc.
6. Trình bày tóm tắt các bước thiết kế một bộ lọc FIR/IIR bằng SPTool của MATLAB. Có mấy
phương pháp thiết kế bộ lọc FIR/IIR trong SPTool? Hãy liệt kê.
7. Hãy phân biệt đặc điểm của đáp ứng tần số của các loại bộ lọc Butterworth, Chebyshev 1,
Chebyshev 2 và Elliptic.
8. Thế nào là một bộ lọc multiband? Thử phác họa đáp ứng tần số của một bộ lọc multiband? Có
thể dùng MATLAB để thiết kế một bộ lọc FIR/IIR multiband hay không?
BỘ MÔN VIỄN THÔNG – ĐẠI HỌC BÁCH KHOA TP. HCM - Lưu hành nội bộ -