cÁc bÀi thÍ nghiỆm cho mÔn hỌc xỬ lÝ tÍn hiỆu sỐ 2
Post on 20-Jul-2016
52 Views
Preview:
DESCRIPTION
TRANSCRIPT
MỤC LỤCLỜI NÓI ĐẦU............................................................................................................1
CHƯƠNG I.................................................................................................................2
GIỚI THIỆU VỀ MÔN HỌC XỬ LÝ TÍN HIỆU SỐ 2............................................2
1.1. Đề cương môn học xử lý tín hiệu số 2.............................................................2
1.2. Các bài thí nghiệm đề xuất cho môn học.........................................................4
1.2.1. Bài 1: Vẽ đáp ứng tần số của hệ thống......................................................4
1.2.2. Bài 2: Thiết kế bộ lọc FIR.........................................................................8
1.2.3. Bài 3: Thiết kế bộ lọc IIR........................................................................20
1.3. Kết luận chương.............................................................................................34
CHƯƠNG II..............................................................................................................35
CÔNG CỤ SỬ DỤNG ĐỂ XÂY DỰNG CÁC BÀI THÍ NGHIỆM.......................35
2.1. Giới thiệu về Matlab......................................................................................35
2.1.1. Khởi động................................................................................................35
2.1.2. Tiện ích trợ giúp......................................................................................37
2.1.3. Thoát khỏi MATLAB.............................................................................37
2.2. M – FILE........................................................................................................38
2.2.1. Lập trình dạng script file.........................................................................38
2.2.2. Lập trình dạng function...........................................................................41
2.3. Đồ họa với MATLAB....................................................................................43
2.3.1. Vẽ đồ thị bằng hàm plot..........................................................................43
2.3.2. Hệ trục tọa độ (axis), cửa sổ vẽ (figure), đồ thị con (subplot)................46
2.4. Kết luận chương.............................................................................................47
CHƯƠNG III............................................................................................................48
XÂY DỰNG CHƯƠNG TRÌNH THỰC HÀNH.....................................................48
3.1. Bài 1: Vẽ đáp ứng tần số của hệ thống...........................................................49
3.2. Bài 2: Thiết kế bộ lọc FIR..............................................................................55
3.2.1. Tham số thiết kế......................................................................................55
3.2.1. Lựa chọn..................................................................................................59
3.3. Bài 3: Thiết kế bộ lọc IIR...............................................................................63
3.3.1. Tham số thiết kế......................................................................................64
3.3.2. Lựa chọn..................................................................................................68
3.4. Bài 4: Mô phỏng việc lọc tín hiệu sử dụng bộ lọc FIR hoặc IIR...................71
3.4.1. Tạo tín hiệu ngẫu nhiên...........................................................................72
3.4.2. Thiết kế bộ lọc và lọc tín hiệu.................................................................72
3.4.3. Menu lựa chọn.........................................................................................74
3.5. Kết luận chương.............................................................................................78
KẾT LUẬN...............................................................................................................79
TÀI LIỆU THAM KHẢO.........................................................................................80
DANH MỤC HÌNH ẢNH
Hình 1.1. Đồ thị của với các giá trị bậc khác nhau....................................24
Hình 1.2. Đồ thị của bộ lọc Butterworth....................................................25
Hình 1.3. Đồ thị của bộ lọc chebyshev -1..................................................28
Hình 2.1. Giao diện MATLABg sau khi được khởi động........................................36
Hình 2.2. Cửa sổ Editor............................................................................................38
Hình 2.3. Kết quả đồ thị y1.......................................................................................44
Hình 2.4. Kết quả đồ thị y2.......................................................................................44
Bảng 2.1. Bảng kiểu nét và ký hiệu đánh dấu...........................................................45
Hình 3.1. Giao diện chương trình thực hành............................................................48
Hình 3.2. Giao diện bài 1..........................................................................................49
Hình 3.2. Giao diện bài 1: Vẽ đáp ứng tần số của hệ thống.....................................49
Hình 3.3. Giao diện tham số thiết kế bài 1................................................................50
Hình 3.4. Giao diện khung hiển thị của bài 1...........................................................51
Hình 3.5. Mục lựa chọn của menu thứ nhất..............................................................52
Hình 3.6. Mục kết quả của menu thứ nhất................................................................53
Hình 3.7. Kết quả đáp ứng biên độ của hệ thống ví dụ 1..........................................54
Hình 3.8. Kết quả đáp ứng pha của hệ thống ví dụ 1................................................54
Hình 3.9. Giao diện bài 2: Thiết kế bộ lọc FIR.........................................................55
Hình 3.10. Giao diện tham số thiết kế bài 2..............................................................55
Hình 3.11. Mục lựa chọn loại đáp ứng.....................................................................56
Hình 3.12. Mục lựa chọn phương pháp thiết kế.......................................................56
Hình 3.13. Mục lựa chọn loại cửa sổ........................................................................56
Hình 3.14. Đáp ứng biên độ của bộ lọc số thông thấp lý tưởng...............................57
Hình 3.15. Đáp ứng biên độ của bộ lọc số thông cao lý tưởng.................................57
Hình 3.16. Đáp ứng biên độ của bộ lọc thông dải lý tưởng......................................57
Hình 3.17. Đáp ứng biên độ của bộ lọc số chắn dải lý tưởng...................................57
Hình 3.18. Giao diện tham số thiết kế chứa mục tần số cắt thấp, cao......................58
Hình 3.19. Nút lựa chọn trên thanh menu thứ nhất...................................................60
Hình 3.20. Các lựa chọn kết quả với phương pháp lấy mẫu tần số..........................60
Hình 3.21. Các lựa chọn kết quả với phương pháp cửa sổ.......................................61
Hình 3.22. Kết quả thiết kế bộ lọc ở ví dụ 2.............................................................62
Hình 3.23. Đáp ứng biên độ của bộ lọc được thiết kế ở ví dụ 3...............................63
Hình 3.24. Hệ số bộ lọc thiết kế ở ví dụ 3................................................................63
Hình 3.25. Giao diện bài 3: Thiết kế bộ lọc IIR.......................................................63
Hình 3.26. Giao diện tham số thiết kế bộ lọc IIR.....................................................64
Hình 3.27. Mục lựa chọn loại đáp ứng của bộ lọc....................................................64
Hình 3.28. Mục lựa chọn loại bộ lọc tương tự..........................................................65
Hình 3.29. Đáp ứng tần số của bộ lọc thông thấp.....................................................65
Hình 3.30.. Đáp ứng tần số của bộ lọc thông cao.....................................................65
Hình 3.31. Đáp ứng tần số bộ lọc thông dải.............................................................66
Hình 3.32. Đáp ứng tần số bộ lọc chắn dải...............................................................66
Hình 3.33. Nút lựa chọn của thanh menu thứ nhất...................................................68
Hình 3.34. Nút kết quả của thanh menu thứ nhất.....................................................69
Hình 3.35. Đáp ứng biên độ của bộ lọc Butterworth ở ví dụ 4.................................70
Hình 3.36. Bậc và tần số cắt của bộ lọc Butterworth ở ví dụ 4................................70
Hình 3.37. Hệ số của bộ lọc Butterworth ở ví dụ 4..................................................71
Hình 3.38. Giao diện bài 4........................................................................................71
Hình 3.39. Phần tạo tín hiệu ngẫu nhiên...................................................................72
Hình 3.40. Giao diện phần thiết kế bộ lọc và lọc tín hiệu.........................................72
Hình 3.41. Giao diện ví dụ lọc tín hiệu âm thanh.....................................................73
Hình 3.42. Nút lựa chọn của thanh menu thứ nhất...................................................74
Hình 3.43. Tín hiệu ngẫu nhiên ở ví dụ 5.................................................................75
Hình 3.44. Kết quả ví dụ 5 lọc theo miền tấn số.......................................................76
Hình 3.45. Kết quả lọc tín hiệu theo miền tần số ở ví dụ 5......................................76
Hình 3.46. Ví dụ về lọc tín hiệu âm thanh................................................................77
Hình 3.47. Kết quả ví dụ lọc tín hiệu âm thanh........................................................77
LỜI NÓI ĐẦU
Với xu hướng số hóa các hệ thống thông tin hiện nay, việc xử lý tín hiệu
số ngày càng trở nên quan trọng với khả năng xử lý thông tin một cách ưu việt.
Về mặt lịch sử các bộ lọc số đã tạo ra một ngành được nghiên cứu nhiều nhất
trong xử lý số tín hiệu. Chúng đã được phát triển và nghiên cứu 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ử. Chúng cho phép tạo ra
các hiệu quả lớn và tối ưu hóa các tham số của bộ lọc trước các sự thực hiện lớn
lao của chúng.
Xử lý tín hiệu số 2 là môn học nghiên cứu về một số vấn đề lý thuyết xử
lý tín hiệu nâng cao như xử lý đa vận tốc, lọc số nhiều nhịp và một số kiến thức
thực hiện về xử lý tín hiệu số như các kỹ thuật thiết kế bộ lọc số FIR, IIR, bộ xử
lý tín hiệu số DSP TMS320C3X. Một trong những nội dung chính của môn học
là thiết kế bộ lọc FIR và IIR, môn học đã đưa ra cơ sở lý thuyết xây dựng 2 loại
bộ lọc trên bằng nhiều phương pháp khác nhau.
Dưới sự hướng dẫn của thầy giáo Đỗ Huy Khôi, trên cơ sở những kiến
thức đã học em lựa chọn đề tài: “Xây dựng các bài thí nghiệm cho môn học xử
lý tín hiệu số 2” với mục đích mô phỏng được kết quả thiết kế các bộ lọc số FIR
và IIR bằng các phương pháp khác nhau để có một cái nhìn trực quan hơn về các
phương pháp thiết kế hai loại bộ lọc trên. Nội dung đồ án gồm 3 chương:
Chương I: Giới thiệu về môn học xử lý tín hiệu số 2
Chương II: Công cụ sử dụng để xây dựng các bài thí nghiệm
Chương III: Xây dựng chương trình thực hành.
Em đã cố gắng tập hợp những kiến thức có được trong quá trình học tập,
từ các nguồn tài liệu được cung cấp một cách ngắn gọn đầy đủ nhất. Nhưng vì
thời gian có hạn, cùng với sự hạn chế về kiến thức cũng như ngoại ngữ nên trong
đồ án không thể tránh khỏi thiếu sót. Em rất mong nhận được những đóng góp và
chỉ bảo của các thầy cô giáo cùng các bạn.
1
Thái Nguyên, tháng 6 năm 2013
2
CHƯƠNG I
GIỚI THIỆU VỀ MÔN HỌC XỬ LÝ TÍN HIỆU SỐ 2
1.1. Đề cương môn học xử lý tín hiệu số 2
Mô tả môn học:
Xử lý tín hiệu số 2 là môn học nghiên cứu về một số vấn đề lý thuyết xử
lý tín hiệu nâng cao như xử lý đa vận tốc, lọc số nhiều nhịp và một số kiến thức
thực hiện về xử lý tín hiệu số như các kỹ thuật thiết kế bộ lọc số FIR, IIR, bộ xử
lý tín hiệu số DSP TMS320C3X.
Mục tiêu môn học:
- Người học phải nắm vững được các phương pháp thiết kế các bộ lọc số
loại FIR và IIR.
- Người học phải nắm được lọc số nhiều nhịp và một số ứng dụng của nó.
- Xây dựng, phát triển một số ứng dụng của xử lý tín hiệu số như các ứng
dụng xử lý nén, triệt nhiễu, nhận dạng, tổng hợp âm thanh, tiếng nói, xử lý tín
hiệu siêu âm, rada,...
Nội dung môn học:
Chương 1: Một số vấn đề cơ bản
1.1. Phương trình sai phân và lọc số
1.2. Phương trình sai phân và hàm truyền đạt
1.3. Mặt phẳng z, điểm không, điểm cực và tính ổn định
1.4. Đáp ứng tần số của bộ lọc số
1.5. Các bộ lọc cơ bản
1.6. Thực thi các bộ lọc số
2
Chương 2: Thiết kế bộ lọc FIR
2.1. Dạng của bộ lọc
2.2. Phương pháp biến đổi Fourier
2.3. Phương pháp cửa sổ
2.4. Phương pháp lấy mẫu tần số
Chương 3: Thiết kế bộ lọc IIR
3.1. Các tính chất của bộ lọc
3.2. Các phương pháp tổng hợp bộ lọc IIR từ bộ lọc tương tự.
3.3. Tổng hợp các bộ lọc tương tự.
3.4. Biến đổi tần số
3.5. Bài tập cuối chương
3.6. Thiết kế bộ lọc FIR và IIR trên phần mềm Matlab.
Chương 4: Lọc số nhiều nhịp
4.1. Mở đầu
4.2. Thay đổi nhịp lấy mẫu
4.3. Bộ lọc biến đổi nhịp lấy mẫu
4.4. Phân hoạch nhiều pha
4.5. Cấu trúc nhiều pha của bộ lọc biến đổi nhịp lấy mẫu
4.6. Một vài ứng dụng của hệ thống lọc số nhiều nhịp
Chương 5: Họ DSP thông dụng TMS 320C3X
5.1. Cấu trúc chung
5.2. Bộ xử lý trung tâm
5.3. DSK C3X board
5.4. Module phát triền TMS320C30
3
5.5. Các chương trình ứng dụng
5.5. Xây dựng, phát triển một số ứng dụng của xử lý tín hiệu số.
1.2. Các bài thí nghiệm đề xuất cho môn học
1.2.1. Bài 1: Vẽ đáp ứng tần số của hệ thống
Chúng ta biết rằng trong miền n, một hệ thống tuyến tính bất biến được
đặc trưng bởi đáp ứng xung h(n) của nó hoặc được đặc trưng bởi phương trình sai
phân tuyến tính hệ số hằng, nhưng việc phân tích hệ thống nhiều khi gặp những
bất tiện như là tích chập, cách giải phương trình sai phân, xét độ ổn định…Để
giải quyết những khó khăn trong miền n chúng ta sẽ chuyển cách biểu diễn hệ
thống sang miền Z, cụ thể ta đưa ra khái niệm hàm truyền đạt của hệ thống.
Trước hết ta tiến hành so sánh quan hệ giữa đầu vào, đầu ra và đáp ứng
xung trong miền n sau đó chuyển sang miền Z được thể hiện dưới bảng sau:
h(n)y(n)x(n)
h(n) = IZT[H(Z)]
H(Z)Y(Z)X(Z)
Y(Z) = X(Z).H(Z)
X(Z) = ZT [x(n)]
H(Z) = ZT[h(n)]
Y(Z) = ZT[y(n)]
H(Z) =
Bảng 1.1. So sánh quan hệ giữa đầu vào, ra, đáp ứng xung trong miền n và miền z.
Hàm truyền đạt của một hệ thống rời rạc chính là biến đổi Z của đáp ứng
xung và được ký hiệu là :
H(Z) = ZT[h(n)] (1.1)
4
H(Z) = (1.2)
Quan hệ giữa đầu vào - đầu ra của một hệ thống rời rạc tuyến tính bất biến
và nhân quả được cho bởi phương trình sai phân sau đây:
(1.3)
Lấy biến đổi Z các thành phần của phương trình này ta có:
(1.4)
Sử dụng các tính chất tuyến tính và tính chất trễ của biến đổi Z ta được:
(1.5)
= (1.6)
= (1.7)
Từ đây ta rút ra quan hệ giữa hàm truyền đạt với các hệ số và
của phương trình sai phân như sau:
(1.8)
Nếu = 1 ta có:
5
(1.9)
Đáp ứng tần số của hệ thống
Chúng ta biết rằng đáp ứng xung của hệ thống tuyến tính bất biến
chính là đáp ứng (hay đáp ứng ra) của hệ thống với kích thích (hay kích thích
vào) .
Bây giờ chúng ta đặt đầu vào kích thích với
: Tần số
Vậy đáp ứng ra của hệ thống sẽ được tính như sau:
Đặt
Vậy ta có:
Với được gọi là đáp ứng tần số của hệ thống
Đáp ứng tần số của hệ thống chính là biến đổi Fourier của đáp ứng xung:
là hàm biến số phức của tần số , ta có thể biểu diễn nó dưới dạng
sau đây:
= Re +jIm (1.10)
6
Hoặc:
(1.11)
(1.12)
Ở đây:
gọi là đáp ứng tần số của biên độ hay gọi tắt là đáp ứng biên độ
của hệ thống.
gọi là đáp ứng tần số của pha hay gọi tắt là đáp ứng pha của hệ
thống.
Quan hệ giữa đáp ứng biên độ và đáp ứng pha với phần thực
và phần ảo của là:
(1.13)
(1.14)
Biến đổi Fourier của dãy x(n) chính là biến đổi Z với :
(1.15)
Như vậy từ một hệ thống cho dưới dạng phương trình sai phân tuyến tính
hệ số hằng ta có thể xác định được hàm truyền đạt của hệ thống H(z) trong miền
z. Từ hàm truyền đạt của hệ thống xác định được đáp ứng tần số của hệ thống
bằng công thức chuyển đổi sau:
7
(1.16)
8
Do đó ta có:
(1.17)
Quan hệ trên cho thấy rằng việc phân bố tần số của biên độ và pha của tín
hiệu vào được biến dạng bởi hệ thống tùy thuộc vào dạng của đáp ứng tần
số . Chính dạng của đã xác định việc suy giảm hoặc khuếch đại
các thành phần tần số khác nhau. Hệ thống tương ứng với này được gọi
là bộ lọc.
Dựa vào đáp ứng tần số của một hệ thống ta có thể biết được đặc tính lọc
của hệ thống đó như thế nào, thuộc loại gì. Do đó bài một đi xây dựng chương
trình vẽ đáp ứng tần số của hệ thống dựa vào hàm truyền đạt của hệ thống đã cho
để làm sáng tỏ lý thuyết và có những kết luận chính xác về hệ thống đã cho.
1.2.2. Bài 2: Thiết kế bộ lọc FIR
Bộ lọc FIR được đặc trưng bởi đáp ứng xung có chiều dài hữu hạn, tức là
h(n) chỉ khác không trong một khoảng có chiều dài hữu hạn N (từ 0 đến N -1).
Bộ lọc số có đáp ứng xung có chiều dài hữu hạn được đặc trưng bởi hàm
truyền đạt sau đây:
Tức là: L[h(n)] = [0, N-1] = N.
Với bộ lọc FIR, H(z) chỉ có các điểm cực tại gốc tọa độ của mặt phẳng z
và luôn nằm trong vòng tròn đơn vị cho nên hệ thống luôn ổn định. Một thuận lợi
khác đối với bộ lọc FIR là do chiều dài của h(n) hữu hạn nên nếu h(n) là không
nhân quả, tức là h(n) ≠ 0 với n < 0 thì ta có thể đưa nó về nhân quả bằng cách
9
chuyển về gốc tọa độ giá trị đầu tiên khác không của h(n) mà vẫn đảm bảo
không thay đổi.
Cái lợi cơ bản nhất của bộ lọc FIR là khi tính toán theo bộ lọc pha tuyến
tính. Tức là chúng ta có thể gia công bộ lọc FIR bằng cách coi đáp ứng tần số
của nó có pha tuyến tính. Do đó, 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, bởi vì chúng ta đã biết chính xác
đáp ứng pha của nó.
Giả sử h(n) là đáp ứng xung của bộ lọc FIR xác định với các mẫu n = 0, 1,
… N-1, tức là: L[h(n)] = [0,N-1] = N
Hàm truyền đạt của bộ lọc FIR:
(1.18)
Đáp ứng tần số:
(1.19)
Hoặc là:
(1.20)
(1.21)
Ta thấy rằng là tuần hoàn với chu kỳ , tức là:
Nếu h(n) là thực thì theo tính chất của biến đổi Fourier đối với tín hiệu rời
rạc ta có:
Hoặc:
10
Vậy ta có thể nói:
: Là hàm chẵn (đối xứng).
: Là hàm lẻ (phản đối xứng).
Do là tuần hoàn với chu kỳ , do đó chúng ta chỉ nghiên cứu
và trong khoảng (hoặc ) và trường hợp đặc
biệt nếu h(n) là thực thì là hàm chẵn và là hàm lẻ trong khoảng
một chu kỳ, vì vậy ta chỉ cần nghiên cứu trong khoảng từ .
Chúng ta biết rằng khi cho các chỉ tiêu kỹ thuật của bộ lọc thực tế thì cho
theo , nhưng theo cách biểu diễn pha lại bất tiện vì có thể
lấy giá trị âm hoặc dương nhưng bao giờ cũng lấy giá trị dương. Vì vậy
để đảm bảo thuận lợi cho việc thiêt kế bộ lọc FIR pha tuyến tính chúng ta sẽ
dùng cách biểu diễn dưới dạng độ lớn và pha :
Với bộ lọc FIR ta luôn đặt được điều kiện pha tuyến tính, điều này có
nghĩa đáp ứng pha - tần số là một hàm số bậc nhất theo tần số , tương đương
với thực hiện việc trễ hàm đáp ứng xung ở miền thời gian. Khi một hệ thống có
pha tuyến tính, trễ nhóm (group delay) là một hằng số, thì có ưu điểm là các
thành phần tần số khác nhau của tín hiệu tại đầu vào có cùng thời gian trễ như
nhau sau khi cho qua hệ thống tại đầu ra. Hàm đáp ứng pha - tần số của bộ lọc
FIR có dạng như sau:
(1.22)
(1.23)
Với α, β là các hằng số, là hàm thực.
Việc nghiên cứu các phương pháp thiết kế bộ lọc FIR tức là nghiên cứu
các phương pháp tính toán các hệ số của bộ lọc, các hệ số sau khi tính toán này ta
11
gọi là các hệ số có giá trị liên tục, tức là chưa được lượng tử hóa và mã hóa ra mã
nhị phân.
Trong đồ án này chỉ nghiên cứu các phương pháp tổng hợp bộ lọc số FIR
pha tuyến tính, bởi vì pha tuyến tính có rất nhiều ưu điểm và vì vậy được ứng
dụng rộng rãi.
Các hệ số h(n) của bộ lọc phải được tính toán sao cho bộ lọc thỏa mãn
được các chỉ tiêu kỹ thuật đã đề ra theo yêu cầu của các nhiệm vụ kỹ thuật cụ thể.
Các chỉ tiêu kỹ thuật này thông thường được cho trong miền tần số, tức là cho
theo đáp ứng tần số. Đáp ứng tần số này phải gần đúng một hàm đã cho, và phải
nằm trong một giới hạn được xây dựng bởi các chỉ tiêu kỹ thuật của bộ lọc số. Để
thực hiện bộ lọc dễ dàng hơn, với giá thành rẻ hơn thì số phần tử của bộ lọc phải
là ít nhất, và để giảm thời gian tính toán trong quá trình lọc thì một bộ lọc tốt
nhất sẽ là bộ lọc có bậc nhỏ nhất.
Có ba phương pháp chính để thiết kế bộ lọc số FIR như sau:
a. Phương pháp thiết kế bằng biến đổi Fourier
Như đã biết, đáp ứng tần số của mạch lọc số tuần hoàn với chu kỳ bằng
tốc độ lấy mẫu fs, và bất kỳ một hàm tuần hoàn nào cũng đều có thể khai triển
được thành chuỗi Fourier của hàm số mũ phức. Do vậy, trong trường hợp tổng
quát, đáp ứng tần số mong muốn của mạch lọc số FIR cũng có thể biểu diễn được
dưới dạng chuỗi Fourier:
(1.24)
Trong đó h(n) là đáp ứng xung của mạch lọc mong muốn, được xác định
từ:
(1.25)
(1.26)
12
Nếu thay z = vào biểu thức (1.24) ta sẽ thu được hàm truyền của mạch
lọc số là:
(1.27)
Nhưng hàm truyền này có đáp ứng xung vô hạn. Vậy để hàm truyền có
đáp ứng xung hữu hạn thì phải tiến hành cắt bớt đáp ứng xung có độ dài vô hạn
và sau đó nhân đáp ứng xung có chiều dài hữu hạn thu được với thừa số trễ
để thu được đáp ứng xung nhân quả:
(1.28)
Một cách tổng quát phương pháp này gồm những bước sau:
- Bước 1: Tính
- Bước 2: Xác định
- Bước 3: Xác định hàm truyền đạt của bộ lọc.
Như vậy chúng ta đã thu được mạch lọc nhân quả nhờ nhân với thừa số
trễ. Sự biến điệu này không làm thay đổi đáp ứng biên độ của mạch lọc. Tuy
nhiên sự cắt xén đột ngột chuỗi Fourier gây ra các dao động trong dải thông và
dải chặn. Các dao động này là do sự hội tụ chậm của chuỗi Fourier ở các điểm
gián đoạn. Hiệu ứng này được gọi là hiện tượng Gibb. Các dao động Gibb này có
thể giảm bớt bằng cách nhân các hệ số của đáp ứng xung mong muốn với các
hàm cửa số thích hợp.
b. Phương pháp cửa sổ
Từ đáp ứng tần số mong muốn với các chỉ tiêu tương ứng, ta lấy
biến đổi Fourier ngược để có đáp ứng xung :
13
, (1.29)
Nói chung, thu được sẽ có chiều dài vô hạn và không nhân quả, ta
không thể thực hiện được trong thực tế. Vì vậy, hệ thống phải được sửa lại thành
nhân quả và buộc phải hạn chế chiều dài của ). Phương pháp đơn giản là cắt
bỏ từ giá trị n = N-1 và thu được bộ lọc FIR có chiều dài N. Sự "cắt ngọn"
này tương đương với phép nhân với một hàm cửa sổ (window). Hàm cửa sổ
này được định nghĩa như sau:
(1.30)
Như vậy, đáp ứng xung của bộ lọc FIR trở thành:
(1.31)
Gọi là biến đổi Fourier của cửa sổ w(n), từ tính chất nhân của biến
đổi Fourier, ta thu được đáp ứng tần số của bộ lọc như sau:
(1.32)
Các bước chính của phương pháp cửa sổ:
- Bước 1: Chọn 4 chỉ tiêu kỹ thuật của bộ lọc số: .
- Bước 2: Xác định đáp ứng xung của mạch lọc lý tưởng.
- Bước 3: Chọn loại cửa sổ.
- Bước 4: Nhân với cửa sổ để có đáp ứng xung của mạch lọc:
- Bước 5: Thử lại trong miền tần số: .
Nếu không thỏa mãn các chỉ tiêu kỹ thuật, ta tăng N và quay trở lại thực
hiện từ bước 2.
14
Có một số loại cửa sổ phổ biến:
Cửa sổ chữ nhật
Hàm cửa sổ chữ nhật như sau:
(1.33)
Như vậy ta thấy rằng cửa ổ chữ nhật chính là
dãy chữ nhật .
Cửa sổ này sẽ dùng để hạn chế chiều dài của h(n) lý tưởng có pha tuyến
tính. Cửa sổ là đối xứng, tâm đối xứng nằm tại (N lẻ). Vậy
trong miền tần số sẽ có pha tuyến tính là . Khi và
đều có cùng pha tuyến tính là thì trong miền n h(n) và
sẽ có cùng tâm đối xứng tại (N lẻ). Như vậy ta có:
(1.34)
Tức là:
(1.35)
15
Trong miền tần số cửa sổ phổ được tính như sau:
(1.36)
Với:
Hai tham số đặc trưng cho cửa sổ chữ nhật là:
- Bề rộng của đỉnh trung tâm: .
- Tỷ số của biên độ của đỉnh thứ cấp đầu tiên và biên độ của đỉnh trung
tâm: .
Cửa sổ tam giác
Với mục đích giảm biên độ các đỉnh thứ cấp của cửa sổ chữ nhật ,
chúng ta chọn một cửa sổ khác có dạng tam giác cân, gọi là cửa sổ tam giác.
Trong miền n cửa sổ tam giác được định nghĩa như sau:
(1.37)
Trong miền ta có:
(1.38)
16
Với:
12sin( )2 2( ) [ ]
1 sin2
jT N
N
A eN
1( )2
N
Đối với cửa sổ tam giác, hai tham số chính đặc trưng cho cửa sổ trong
miền tần số là:
- Bề rộng của đỉnh trung tâm của cửa sổ tần số phổ được tính
như sau:
Khi N lớn thì được tính gần đúng như sau:
- Tỷ số giữa biên độ của đỉnh trung tâm và đỉnh thứ cấp đầu tiên :
So sánh với cửa sổ chữ nhật:
- do đó bề rộng của dải quá độ khi thiết kế bộ lọc số dùng cửa
sổ tam giác sẽ lớn hơn dùng cửa sổ chữ nhật.
- do đó biên độ của độ gợn sóng ở cả dải thông và dải chắn sẽ nhỏ
hơn khi dùng cửa sổ chữ nhật.
Cửa sổ Hamming
Cửa sổ Hamming được định nghĩa như sau:
(1.39)
Hai tham số chính đặc trưng cho cửa sổ Hanning trong miền tần số có giá
trị như sau:
17
Cửa sổ Hanning
Cửa sổ Hanning được định nghĩa như sau:
(1.40)
Hai tham số chính đặc trưng cho cửa sổ Hanning trong miền tần số có giá
trị như sau:
So sánh với cửa sổ tam giác ta thấy rằng:
- , do đó bề rộng của dải quá độ khi thiết kế bộ lọc số
dùng cửa sổ tam giác, cửa sổ Hanning và cửa sổ Hamming là như nhau.
- , do đó biên độ của độ gợn sóng ở cả dải thông và dải
chắn sẽ nhỏ nhất khi thiết kế bằng cửa sổ Hamming.
Cửa sổ Blackman
Cửa sổ Blackman được định nghĩa như sau:
(1.41)
Hai tham số chính đặc trưng cho cửa sổ Blackman trong miền tần số như
sau:
và
18
Rõ ràng luôn có sự đánh đổi giữa tính chất hẹp của dải chuyển tiếp và tính
gợn sóng ở dải thông và dải chắn. Các loại cửa sổ làm giảm hiệu ứng gợn sóng ở
dải thông và dải chắn luôn có xu hướng làm cho bề rộng của dải chuyển tiếp tăng
lên.
Dưới đây là bảng tổng kết các thông số về độ rộng dải chuyển tiếp và độ
suy giảm dải chắn tối thiểu đối với từng loại cửa sổ:
Tên cửa sổĐộ rộng dải chuyển tiếp Độ suy giảm dải
chắn tối thiểuXấp xỉ Chính xác
Chữ nhật 21dB
Tam giác 25dB
Hanning 44dB
Hamming 53dB
Blackman 74dB
Bảng 1.2. Các thông số về độ rộng dải chuyển tiếp và độ suy giảm dải chắn tối thiểu đối
với từng loại cửa sổ.
Để bù cho độ suy giảm dải chắn thấp và giảm hiện tượng Gibb thì phải
đánh đổi lấy dải chuyển tiếp có độ rộng lớn hơn hay cần độ dài đáp ứng xung N
lớn hơn nếu muốn duy trì dải chuyển tiếp có độ rộng không đổi và đương nhiên
là bộ lọc sẽ có thiết kế phức tạp hơn.
19
c. Phương pháp lấy mẫu tần số
Trong phương pháp cửa sổ mà chúng ta đã xét ở trên có hạn chế là với
cùng một chỉ tiêu kỹ thuật thì thường chiều dài của bộ lọc N lớn hơn là chiều dài
cần thiết để thỏa mãn chỉ tiêu đã cho.
Việc tìm ra cửa sổ để giảm hiện tượng Gibbs cũng không phải là đơn giản.
Và khi dạng cửa sổ trong miền n rất phức tạp, thì việc khảo sát trong miền tần số
sẽ gặp nhiều khó khăn.
Ý tưởng: Xuất phát từ biến đổi Fourier rời rạc DFT người ta quy chiếu từ
đáp ứng tần số sang miền rời rạc k H(k) qua biến đổi Fourier rời rạc.
Xuất phát từ đáp ứng xung h(n) chúng ta sẽ biến đổi Fourier rời rạc để
được H(k) tương ứng với các hệ số của biến đổi DFT. Chúng ta thu được H(k) =
bằng việc lấy mẫu tần số tại các giá trị k cách đều nhau trên miền tần số.
(1.42)
Với n = 0, 1,…N-1.
Bộ lọc FIR pha tuyến tính, chiều dài 2N+1. Ta có:
(1.43)
Với: n = 0, 1, …, 2N, K= 0, 1, …, 2N.
Tần số lấy mẫu của bộ lọc tại:
Tóm lại phương pháp thiết kế này có thể thực hiện qua 3 bước:
- Bước 1: Cho chiều dài bộ lọc là 2N+1, xác định các tần số lấy mẫu trong
khoảng [0, π] theo biểu thức: và H(k) tương ứng.
- Bước 2: Tính các hệ số của bộ lọc là:
20
với n =0, 1, …., N.
- Bước 3: Sử dụng tính đối xứng để xác định các hệ số còn lại theo biểu
thức:
h(n)=h(2N-n) với n = N+1,…..2N
1.2.3. Bài 3: Thiết kế bộ lọc IIR
Bộ lọc IIR được đặc trưng bởi đáp ứng xung có chiều dài vô hạn, tức là
h(n) khác không trong một khoảng vô hạn từ 0 đến .
Ở đây chúng ta nghiên cứu các bộ lọc số IIR thực hiện được về mặt vật lý,
tức là các bộ lọc số là ổn định và nhân quả.
Tính nhân quả được đảm bảo nếu đáp ứng xung h(n) của bộ lọc thỏa mãn
điều kiện sau đây:
h(n) =0 với n<0
Tính ổn định được đảm bảo bởi đáp ứng xung h(n) của bộ lọc thỏa mãn
điều kiện ổn định sau:
Hàm truyền đạt của một bộ lọc số IIR có dạng sau đây:
(1.44)
Nếu =1 ta có:
21
(1.45)
Có nhiều phương pháp thiết kế bộ lọc số IIR nhưng với mục đích là tìm ra
các hệ số của bộ lọc số IIR sao cho thỏa mãn các chỉ tiêu kỹ thuật của bộ lọc
trong miền liên tục đối với .
Các phương pháp thiết kế tổng hợp bộ lọc IIR có thể chia ra làm hai loại
chính:
- Loại thứ nhất là chuyển từ việc thiết kế các bộ lọc tương tự sang bộ lọc
số, tức là chúng ta phải thiết kế các bộ lọc tương tự trước, sau đó dùng các
phương pháp chuyển đổi tương đương một cách gần đúng giữa miền tương tự và
miền số để thu được bộ lọc số. Phương pháp thứ nhất này được sử dụng rộng rãi
nhất.
- Loại thứ hai là các phương pháp tìm ra các thủ tục tối ưu hóa nhờ sự
tham gia của máy tính điện tử. Các phương pháp này là tìm kiếm các cách tối
thiểu hóa sai số của việc xấp xỉ các chỉ tiêu kỹ thuật của bộ lọc cần thiết kế bằng
một bộ lọc khác có thể thực hiện được các tiêu chuẩn gần đúng. Loại thứ hai này
ít được dùng.
Trong phạm vi đồ án này chúng ta sẽ nghiên cứu các phương pháp thuộc
loại thứ nhất vì nó đơn giản và độ chính xác là chấp nhận được.
Loại thứ nhất gồm có ba bước như sau:
- Thiết kế bộ lọc thông thấp tương tự.
- Chuyển đối từ bộ lọc thông thấp tương tự sang bộ lọc thông thấp số.
- Chuyển đổi băng tần số để thu được các bộ lọc khác từ bộ lọc thông
thấp.
22
a. Thiết kế bộ lọc thông thấp tương tự
Các yêu cầu thiết kế cho bộ lọc tương tự dựa trên điều kiện giới hạn các
chỉ tiêu kỹ thuật cho hàm bình phương biên độ của hàm đáp ứng tần số. Giống
như khi chúng ta quan tâm tới các hệ thống số, hàm truyền đạt Ha(s) của một hệ
thống tuyến tính bất biến tương tự là biến đổi Laplace hàm đáp ứng xung ha(t)
của hệ thống và Ha(s) chính bằng tỷ số giữa biến đổi Laplace của tín hiệu đầu ra
với biến đổi Laplace của tín hiệu đầu vào. Hàm đáp ứng tần số Ha(jΩ) của một hệ
thống tuyến tính bất biến là hàm thể hiện đáp ứng của hệ thống với đầu vào là
các giá trị tần số khác nhau. Do đó, hàm đáp ứng tần số là biến đổi Fourier hàm
đáp ứng xung ha(t) của hệ thống và hàm Ha(jΩ) cũng chính là hàm hệ thống Ha(s)
đánh giá trên trục ảo.
Đối với các hệ thống thực hiện được về mặt vật lý, đáp ứng xung bao giờ
cũng là một hàm thực. Do đó, hàm truyền đạt luôn đối xứng qua trục thực. Mặt
khác, một hệ thống tương tự là nhân quả và ổn định nếu và chỉ nếu tất cả các
điểm cực của hàm truyền đạt nằm ở nửa bên trái của mặt phẳng s hoặc cùng lắm
là nằm ở gốc toạ độ. Khi ta xét đến hàm bình phương biên độ, hay bình phương
module của hàm truyền đạt, các điểm cực của hàm số này sẽ phân bố trên tất cả
các góc phần tư của mặt phẳng s. Lúc này, việc xét đáp ứng tần số của hệ thống
cũng thuận tiện và tất cả các điểm cực nằm bên trái mặt phẳng s của hàm |Ha(s)|2.
Yêu cầu về chỉ tiêu kỹ thuật của bộ lọc thông thấp tương tự thường được
cho dưới dạng các tham số tuyệt đối như sau:
(1.46)
(1.47)
Với Ωp và Ωs lần lượt là các tần số cắt dải thông và tần số cắt dải chắn tính
theo đơn vị rad/sec, ε là tham số gợn sóng và A là tham số suy giảm của dải
chặn.
(1.48)
23
Và
(1.49)
Ngoài ra độ mấp mô và của thang đo giá trị tuyệt đối liên hệ với
và A bằng các hệ thức:
(1.50)
(1.51)
Tất cả các định dạng bộ lọc đều dựa trên nguyên tắc lựa chọn hàm đáp
ứng tần số của bộ lọc thực tế xấp xỉ với đáp ứng tần số của bộ lọc lý tưởng và
điểm cực của hàm đáp ứng tần số của bộ lọc thực tế được phân bố sao cho hệ
thống là nhân quả và ổn định. Các hàm số bình phương biên độ thường được lựa
chọn có dạng gợn sóng vừa phải trong khoảng từ 0 đến tần số cắt và giảm mạnh
khi vượt ra ngoài tần số cắt đồng thời có xu hướng giảm về đến 0. Điều này
tương đương với hàm gợn sóng bị chặn trong khoảng từ 0 đến 1 (với 1 là tần số
đã được chuẩn hoá bởi tần số cắt Ωc) và tăng nhanh khi vượt ra ngoài 1. Có bốn
định dạng cơ bản thường được vận dụng trong quá trình thiết kế bộ lọc tương tự
là: Bộ lọc Butterworth, bộ lọc Chebyshev-1, bộ lọc Chebyshev-2 và bộ lọc
Elliptic.
Bộ lọc thông thấp Butterworth
Bộ lọc Butterworth là bộ lọc toàn cực được đặc trưng bởi đáp ứng biên độ
bình phương:
(1.52)
Với là tần số cắt.
Đáp ứng tần số của bộ lọc thông thấp Butterworth chuẩn hóa như sau:
24
(1.53)
n: bậc của bộ lọc.
Đồ thị của được cho trên hình sau:
Hình 1.1. Đồ thị của với các giá trị bậc khác nhau.
Nhận xét:
- Bậc của bộ lọc n càng tăng thì bộ lọc càng gần với bộ lọc lý tưởng.
- Đáp ứng biên độ luôn bằng ở tần số cắt với mọi giá trị của n.
Hàm bình phương biên độ của hàm truyền đạt |Ha(s)|2 biểu diễn dưới dạng
các điểm cực như sau:
(1.54)
Với là các điểm cực của được tính như sau:
Với n chẵn: , k = 1,2, …,2n
Với n lẻ: , k = 1,2, …, 2n
25
Bậc n của bộ lọc Butterworth như sau:
(1.55)
Chú ý: n chỉ lấy giá trị nguyên.
: Tần số cắt không chuẩn hóa.
: Tần số dải thông
: Tần số dải chắn
: Độ gợn dải chắn
: Độ gợn dải thông
Dưới đây là đồ thị của của bộ lọc Butterworth:
Hình 1.2. Đồ thị của bộ lọc Butterworth.
Tần số cắt :
(1.56)
Các biểu thức về hàm truyền đạt:
- Với n chẵn, tần số chuẩn hóa ( )
26
(1.57)
- Với n chẵn, ở tần số không chuẩn hóa
(1.58)
- Với n lẻ, tần số chuẩn hóa
(1.59)
- Với n lẻ, tần số không chuẩn hóa
(1.60)
Bộ lọc thông thấp Chebyshev
Chúng ta đã biết rằng, đối với bộ lọc tương tự Butterworth, đáp ứng biên
độ giảm đơn điệu cả ở dải thông và dải chắn. Chính vì vậy gần đúng Butterworth
không cho ta kết quả tốt, tức là với cùng một chỉ tiêu kỹ thuật đã cho thì bậc của
bộ lọc tương tự Butterworth sẽ lớn.
Để giảm bậc của bộ lọc tương tự, chúng ta sẽ sử dụng một gần đúng khác,
đó là gần đúng Chebyshev, gần đúng này sẽ cho ta kết quả tốt hơn. Gần đúng
Chebyshev có hai loại, tương ứng có hai loại bộ lọc tương tự Chebyshev.
Bộ lọc tương tự Chebyshev loại 1: Là bộ lọc có đáp ứng biên độ gợn sóng
ở dải thông và dải chắn.
27
Bình phương của đáp ứng biên độ của bộ lọc tương tự Chebyshev loại 1
chuẩn hóa như sau:
(1.61)
n: Là bậc của bộ lọc hay bậc của đa thức Chebyshev.
Với là tần số cắt, ε là tham số xác định biên độ của gợn sóng ở dải
thông, là đa thức Chebyshev - 1 bậc n được cho bởi công thức:
(1.62)
Ta biết rằng dao động giữa 0 và 1 đối với và tăng một cách
đơn điệu đối với . Điều này dẫn đến sẽ gợn sóng giữa 1 và
đối với và giảm một cách đơn điệu đối với .
Các điểm cực của hàm bình phương biên độ của hàm truyền đạt |Ha(s)|2 có
dạng:
(1.63)
Với với
với
28
Bậc của bộ lọc:
Hàm đáp ứng biên độ ở tần số không chuẩn hóa có giá trị:
(1.64)
Đồ thị minh họa cho như sau:
Hình 1.3. Đồ thị của bộ lọc chebyshev -1.
Bậc của bộ lọc được tính theo công thức sau:
(1.65)
Chú ý n nhận giá trị nguyên.
: Tần số dải chắn.
: Tần số dải thông.
: Độ gợn dải chắn.
29
ε: Là tham số xác định biên độ của gợn sóng ở dải thông, với
.
Bộ lọc tương tự Chebyshev loại 2: Là bộ lọc có đáp ứng biên độ gợn sóng
ở dải chắn và giảm đơn điệu ở dải thông ( tức là ngược với bộ lọc loại 1).
Bình phương của đáp ứng biên độ của bộ lọc tương tự Chebyshev loại 2
như sau:
(1.66)
Với
Bộ lọc chebyshev-2 chứa cả điểm không và điểm cực. Với các điểm
không là:
với r=1,2,….,n(1.67)
Các điểm cực có dạng:
(1.68)
Với:
với
30
với
b. Chuyển đổi bộ lọc
Trên nguyên tắc, việc chuyển đổi bộ lọc tập trung vào nghiên cứu các
phép biến hình, hay ánh xạ, để chuyển đổi mặt phẳng s về mặt phẳng z. Trên lý
thuyết có một số phương pháp chuyển đổi sau đây:
Phương pháp bất biến xung (Impulse Invariance Transformation)
Bản chất phương pháp bất biến xung là phép biến hình sao cho dãy đáp
ứng xung của bộ lọc số chính là hàm đáp ứng xung của bộ lọc tương tự được lấy
mẫu ở các điểm rời rạc. Phép biến hình cho ta công thức đổi biến:
(1.69)
Với z là biến số độc lập của hàm H(z) trên miền z, s là biến số độc lập của
hàm Ha(s) trên miền s, T là chu kỳ lấy mẫu của hàm đáp ứng xung hệ thống
tương tự.
Mối quan hệ giữa hàm truyền đạt H(z) ở miền z và hàm truyền đạt Ha(s) ở
miền s được cho bởi công thức sau:
(1.70)
Các nửa sọc ngang dài vô hạn có bề rộng và nằm ở nửa bên trái mặt
phẳng s được ánh xạ vào bên trong đường tròn đơn vị trên mặt phẳng z theo
nguyên tắc nhiều - một. Bởi phép biến hình ánh xạ toàn bộ nửa mặt phẳng bên
trái của mặt phẳng s vào bên trong đường tròn đơn vị của mặt phẳng z nên nó bảo
toàn tính ổn định của hệ thống (dựa trên phân bố của các điểm cực).
Nếu như bộ lọc tương tự là thông thấp lý tưởng và chu kỳ lấy mẫu đủ nhỏ
để:
31
thì
Thì không có hiện tương chồng phổ (aliasing). Tuy nhiên bộ lọc thông
thấp thực tế không thể có phổ hữu hạn nên hiện tượng chồng phổ gây ra bởi phép
biến hình vẫn xảy ra.
Phương pháp biến đổi song song tuyến (Bilinear Transformation)
Bản chất của phép biến đổi song tuyến là phép biến hình dựa trên nguyên
tắc đưa phương trình vi phân tuyến tính hệ số hằng đặc trưng cho một hệ thống
tương tự về gần đúng một phương trình sai phân tuyến tính hệ số hằng, mà
phương trình sau có thể đặc trưng cho một hệ thống số. Phép biến hình cho ta
công thức đổi biến:
(1.71)
Phép biến hình này ánh xạ toàn bộ nửa bên trái mặt phẳng s vào bên trong
đường tròn đơn vị trên mặt phẳng z trên nguyên tắc một - một nên nó bảo toàn
tính ổn định của hệ thống.
Mặt khác nguyên tắc ánh xạ một - một từ mặt phẳng s đến mặt phẳng z
cho phép hoàn toàn không xảy ra hiện tượng chồng phổ.
Phương pháp tương đương vi phân (Approximation of Derivatives
Transformation)
Phương pháp này dựa trên việc thiết lập một sự tương ứng giữa định nghĩa
của vi phân và định nghĩa của sai phân. Phép biến hình cho ta công thức đổi biến:
(1.72)
Phép biến hình ánh xạ toàn bộ nửa bên trái mặt phẳng s vào bên trong
đường tròn tâm (0, ½) bán kính R = ½.
32
Phép biến hình ánh xạ toàn bộ nửa bên trái mặt phẳng s vào bên trong
đường tròn đơn vị trên mặt phẳng z nên nó bảo toàn tính ổn định của hệ thống.
Tuy nhiên tập hợp các điểm cực của hệ thống bị co lại trong một phạm vi
nhỏ nên có thể dẫn tới hiện tượng cộng hưởng ở phạm vi tần số nào đó.
Phương pháp biến đổi Z thích ứng (Matched-Z Transformation)
Phương pháp này dựa trên nguyên tắc ánh xạ trực tiếp các điểm cực và
điểm không của hàm truyền đạt hệ thống tương tự thành các điểm cực và điểm
không của hàm truyền đạt hệ thống số. Giả sử hàm truyền đạt của hệ thống tương
tự có dạng:
(1.73)
Thì phép biến hình biến đổi các phần tử (s −a) trở thành thu được
hàm truyền đạt của hệ thống số.
(1.74)
Với phương pháp này phải chọn chu kỳ lấy mẫu T đủ nhỏ để các điểm cực
và điểm không phân bố một cách thích hợp trên mặt phẳng z, tránh hiện tượng
chồng phổ, từ đó đảm bảo được đáp ứng tần số của bộ lọc số gần giống với đáp
ứng tần số của bộ lọc tương tự.
c. Chuyển đổi băng tần số
Việc chuyển đổi băng tần số, xuất phát từ bộ lọc thông thấp có tần số cắt
được đưa ra theo các công thức ánh xạ ở bảng dưới đây:
Loại Công thức chuyển đổi Các tham số
33
chuyển đổi
Bộ lọc thông
thấp
: Tần số cắt của bộ lọc
mới.
Bộ lọc thông
cao
: Tần số cắt của bộ lọc
mới.
Bộ lọc thông
dải
: Tần số cắt thấp của bộ
lọc mới.
: Tần số cắt cao của bộ
lọc mới.
Bộ lọc chắn dải
: Tần số cắt thấp của bộ
34
lọc mới.
: Tần số cắt cao của bộ
lọc mới.
Bảng 1.3. Bảng chuyển đổi tần số từ bộ lọc thông thấp sang các bộ lọc khác.
Ngoài ba bài thiết kế trên, bài bốn được đề xuất để mô phỏng việc lọc tín
hiệu sử dụng bộ lọc FIR hoặc IIR được thiết kế ở bài hai và bài ba. Nhiệm vụ của
bài bốn là tạo tín hiệu ngẫu nhiên với tần số đã biết, sau đó thiết kế bộ lọc FIR
hoặc IIR để thực hiện lọc tín hiệu đó theo yêu cầu.
1.3. Kết luận chương
Chương một đã tìm hiểu được một số nội dung như sau:
- Tìm hiểu và nắm được đề cương môn học xử lý tín hiệu số 2, từ đó đưa
ra đề xuất các bài thí nghiệm cho môn học.
- Đề xuất bốn bài thí nghiệm cho môn học bao gồm:
Bài 1: Vẽ đáp ứng tần số của hệ thống.
Bài 2: Thiết kế bộ lọc FIR.
Bài 3: Thiết kế bộ lọc IIR.
Bài 4: Mô phỏng việc lọc tín hiệu sử dụng bộ lọc FIR hoặc IIR.
35
CHƯƠNG II
CÔNG CỤ SỬ DỤNG ĐỂ XÂY DỰNG CÁC BÀI THÍ NGHIỆM
2.1. Giới thiệu về Matlab
Matlab là sản phẩm phần mềm của công ty MathWorks Inc. Ưu điểm nổi
bật của Matlab là khả năng tính toán và biểu diễn đồ họa kỹ thuật nhanh chóng,
đa dạng và chính xác cao. Matlab tích hợp được việc tính toán, thể hiện kết quả,
cho phép lập trình, giao diện làm việc rất dễ dàng cho người sử dụng. Dữ liệu
cùng với thư viện được lập trình sẵn cho phép người sử dụng có thể có được
những ứng dụng sau đây:
- Sử dụng các hàm có sẵn trong thư viện, các phép tính toán học thông
thường.
- Cho phép lập trình tạo ra những ứng dụng mới.
- Cho phép mô phỏng các mô hình thực tế.
- Phân tích, khảo sát và hiển thị dữ liệu.
- Phần mềm đồ họa cực mạnh.
- Cho phép phát triển, giao tiếp với một số phần mềm khác như C++,
Fortran.
2.1.1. Khởi động
Có thể khởi động MATLAB theo 2 cách như sau:
Kích đúp chuột vào biểu tượng MATLAB trên màn hình Desktop.
Chọn Start > All Programs > MATLAB > MATLAB R2009a .
Sau khi khởi động MATLAB ta thu được màn hình MATLAB bao gồm
các cửa sổ tích hợp như hình dưới đây:
36
Hình 2.1. Giao diện MATLABg sau khi được khởi động.
Cửa sổ lệnh Command Window 1: Đây là cửa sổ chính của MATLAB.
Tại đây ta thực hiện toàn bộ việc nhập lệnh và nhận kết quả tính toán. Dấu >> là
dấu đợi lệnh. Sau khi nhập lệnh và kết thúc bằng động tác nhấn phím enter,
MATLAB sẽ xử lý lệnh và xuất kết quả lên ngay dưới dòng lệnh.
Ví dụ: >> a=5*2+6 (Nhập lệnh và nhấn enter)
a =
16 (Kết quả)
Cửa sổ Command History 2: Tất cả các lệnh đã sử dụng trong Command
Window được lưu giữ và hiển thị tại đây. Có thể lặp lại lệnh cũ bằng cách nhắp
đúp chuột vào lệnh đó. Cũng có thể cắt dán, sao chép, xoá cả nhóm lệnh hoặc
từng lệnh riêng rẽ.
Cửa sổ Workspace Browser 3: Khái niệm Workspace (không gian làm
việc) là một vùng nhớ động trong bộ nhớ của chương trình, tự động hình thành
khi MATLAB được khởi động và tự động xóa khi thoát MATLAB. Workspace
lưu giữ các biến khi ta sử dụng MATLAB. Tất cả các biến tồn tại trong
37
Workspace đều được hiển thị tại cửa sổ Workspace Browser với các thông tin về
tên biến, giá trị, kích cỡ byte và loại dữ liệu.
Cửa sổ thư mục hiện hành Current Directory 4: Được hiển thị khi
nhắp chuột vào ô Current Directory. Nhờ cửa sổ này người sử dụng có thể nhanh
chóng nhận biết các thư mục con và các tập tin (file) đang có trong thư mục hiện
hành. Các thao tác mở file, lưu file, tìm M-file để thực thi...có mức ưu tiên cao
nhất cho thư mục hiện hành. Mặc định khi khởi động MATLAB thì thư mục hiện
hành là '...\Thư mục cài đặt MATLAB\work'.
Tên thư mục hiện hành cũng được chỉ rõ trên thanh toolbar (vị trí 5 ).
Cửa sổ editor 6: Cửa sổ soạn thảo chương trình dạng m – file.
Trên đây chỉ là một cách hiển thị tổ hợp các cửa sổ trong màn hình
MATLAB. Tùy theo thói quen và nhu cầu sử dụng, người dùng có thể thay đổi
linh hoạt cách hiển thị thông qua menu Desktop > Desktop layout.
2.1.2. Tiện ích trợ giúp
Tiện ích trợ giúp (help) của MATLAB rất phong phú. Có thể gọi từ menu
help trên thanh menu hoặc nhập lệnh tại command window theo cú pháp:
help tên_lệnh % xem trợ giúp tại Command Window.
doc tên_lệnh % xem trợ giúp trong cửa sổ Help.
Ví dụ, để tìm hiểu chức năng và cách dùng của lệnh input ta có thể nhập:
>> help input hoặc
>> doc input
Ngoài ra, chúng ta cũng có thể xem các ví dụ minh hoạ có sẵn trong
MATLAB bằng cách nhập lệnh demo.
2.1.3. Thoát khỏi MATLAB
Thực hiện một trong các cách sau đây:
- Nhắp chuột vào nút ở góc trên, phải của màn hình MATLAB.
38
- Chọn menu File > Exit MATLAB.
- Nhấn tổ hợp phím Ctrl + Q.
- >>quit hoặc >>exit.
2.2. M – FILE
Trong MATLAB, M-file là các file chương trình được soạn thảo và lưu ở
dạng văn bản. Có hai loại M-file là script file (file lệnh) và function file (file
hàm). Cả hai đều có phần tên mở rộng là ".m ". MATLAB có rất nhiều M-file
chuẩn được xây dựng sẵn. Người dùng cũng có thể tạo các M-file mới tuỳ theo
nhu cầu sử dụng.
2.2.1. Lập trình dạng script file
Thay vì nhập và thực thi từng câu lệnh tại cửa sổ Command Window,
chúng ta có thể soạn và lưu tất cả các câu lệnh cần thiết để giải bài toán vào một
script file. Sau đó chỉ cần gõ tên file để thực thi toàn bộ chương trình.
Mở cửa sổ Editor
Cách 1: Trong command window gõ lệnh edit
Cách 2: Vào menu File>New>M-File
Cách 3: Nhắp chuột vào icon (icon đầu tiên trên thanh toolbar)
Hình 2.2. Cửa sổ Editor.
39
b. Soạn thảo
Cấu trúc tổng quát của một scrift file:
Hình 2.3. Cấu trúc tổng quát scrift file
- Ký hiệu % có thể dùng ở bất cứ chỗ nào trong chương trình để tạo câu
ghi chú, giải thích. Các câu ghi chú phía trên dòng lệnh đầu tiên sẽ hiện trên màn
hình khi gõ lệnh help tên_ file.
- Lệnh gán: dùng để gán giá trị cho biến.
Cú pháp: tên biến =<giá trị >
- Lệnh input: dùng để nhận một giá trị từ bàn phím.
Cú pháp: tên biến = input(‘lời nhắc’)
Ví dụ: a = input(‘nhap tan so lay mau fs’)
Khi thực thi, MATLAB sẽ hiện dòng nhắc: nhap tan so lay mau fs
Sau đó chờ người dùng nhập một giá trị số từ bàn phím, nhận giá trị vừa
nhập và gán vào biến a.
Ví dụ: Soạn thảo tập tin vd1.m với nội dung như sau:
%Chuong trinh tinh dien tich hinh chu nhat
40
%DHCNTT&TT, 06/2013
%Nguoi viet: Nguyen Van A
a=input('nhap chieu dai a:=');
b=input('nhap chieu rong b:=');
S=a*b; %Dien tich hinh chu nhat
c. Lưu
Vào menu file>save>đặt tên tập tin>nhắp nút save.
Tập tin scrift file có phần mở rộng là “.m”, và được lưu vào thư mục hiện
hành. Nếu không có sự lựa chọn khác thì thư mục hiện hành được mặc định là
thư mục work của MATLAB. Tên tập tin phải bắt đầu bằng ký tự chữ, không có
khoảng trống giữa các ký tự. Lưu ý kiểm tra và tắt các phần mềm gõ tiếng việt
như Vietkey, Unikey,… nếu cần.
d. Gọi thực hiện scrift file
Cách 1: Trong cửa sổ soạn thảo nhắp chuột vào nút run trên thanh
toolbar.
Cách 2: Trở về màn hình command window và gõ tên file (không có phần
mở rộng .m), sau đó nhấn enter để thực thi.
Ví dụ: Để thực thi file “vd1.m” vừa tạo, tại dấu nhắc lệnh ta gõ: >>vd1
Lưu ý là dù gọi thực hiện theo cách 1 hay cách 2 thì MATLAB cũng đểu
xuất kết quả tính toán tại cửa sổ command window.
e. Mở một M - file đang có để xem lại hay chỉnh sửa
Cách 1: Trong cửa sổ editor hoặc command window, vào menu fileopen
đường dẫntên file.
Cách 2: Vào cửa sổ workspace, nhắp đúp chuột vào tên M-file cần mở.
41
Cách 3: Tại Command Window, gõ lệnh edit ('đường dẫn\tên file').
2.2.2. Lập trình dạng function
Tương tự như trong toán học, các hàm (function) trong MATLAB sẽ nhận
vào giá trị của các đối số và trả về giá trị tương ứng của hàm. Trình tự tạo và
thực thi một file hàm bao gồm các bước như sau:
a. Mở cửa sổ editor: Thực hiện tương tự như scrift file
b. Soạn thảo
Cấu trúc chuẩn của một hàm:
function [danh sách tham số ra] = tên hàm (danh sách tham số vào)
% khối các câu ghi chú, giải thích
Câu lệnh xử lý 1;
Câu lệnh xử lý 2;
…………………..
Tham số ra 1 = biểu thức tính 1;
Tham số ra 2 = biểu thức tính 2;
………………………………..
Tham số ra (cũng gọi là tham biến) dùng để chứa các kết quả xử lý của
hàm. Khi gọi thực hiện hàm ta có thể thay chúng bằng các tên biến cụ thể.
Tham số vào (cũng gọi là tham trị, hay đối số) là các biến trong hàm mà sẽ
nhận các giá trị vào cụ thể khi gọi thực hiện hàm.
Tên các tham số vào, ra trong phần danh sách được phân cách nhau bằng
dấu phẩy. Nếu chỉ có 1 tham số ra thì không cần dùng dấu ngoặc vuông [ ].
42
c. Lưu: Như cách lưu của scrift file. Khi lưu hàm, MATLAB sẽ lấy tên hàm làm
tên file, người lập trình không nên sửa lại tên này để tránh lẫn lộn khi gọi thực
hiện hàm.
d. Gọi thực hiện function file
Từ cửa sổ Command thực hiện như sau:
Nếu chỉ có một tham số ra:
>> tên_biến = tên_file (danh sách các giá trị vào)
Nếu có nhiều tham số ra:
>> [tên_biến1, tên_biến2,...] = tên_file (danh sách các giá trị vào)
Đặc điểm của hàm:
Các hàm chỉ thông tin với MATLAB thông qua các biến truyền vào cho
nó và các biến ra mà nó tạo thành, các biến trung gian ở bên trong hàm thì không
tương tác với môi trường MATLAB.
Khi MATLAB thực hiện lần đầu các file hàm, nó sẽ mở file và dịch các
dòng lệnh của file đó ra một dạng mã lưu trong bộ nhớ nhằm mục đích tăng tốc
độ thực hiện các lời gọi hàm tiếp theo. Nếu sau đó không có sự thay đổi gì trong
M-file, quá trình dịch sẽ không xảy ra lần thứ hai. Nếu trong hàm có chứa lời gọi
hàm M-file khác thì các hàm đó cũng được dịch vào trong bộ nhớ. Bằng lệnh
clear function ta có thể xoá cưỡng bức các hàm đã dịch, nhưng vẫn giữ nguyên
các M-file.
Mỗi hàm có không gian làm việc riêng của nó (local workspace), tách biệt
với môi trường MATLAB (sử dụng base workspace), mối quan hệ duy nhất giữa
các biến trong hàm với môi trường bên ngoài là các biến vào và ra của hàm đó.
Nếu bản thân các biến của hàm bị thay đổi thì sự thay đổi này chỉ tác động bên
trong của hàm đó và mà không làm ảnh hưởng đến các biến của môi trường
MATLAB. Các biến của hàm sẽ được giải phóng ngay sau khi hàm thực thi xong
nhiệm vụ, vì vậy không thể sử dụng thông tin của lần gọi trước cho lần gọi sau.
43
Các hàm có thể sử dụng chung các biến với hàm khác hay với môi trường
MATLAB nếu các biến được khai báo là biến toàn cục. Để có thể truy cập được
các biến bên trong một hàm thì các biến đó phải được khai báo là biến toàn cục
trong mỗi hàm sử dụng nó.
Một M-file có thể chứa nhiều hàm. Hàm chính (main function) trong M-
file này phải được đặt tên trùng với tên của M-file. Các hàm khác được khai báo
thông qua câu lệnh function được viết sau hàm đầu tiên. Các hàm con (local
function) chỉ được sử dụng bởi hàm chính, tức là ngoài hàm chính ra thì không
có hàm nào khác có thể gọi được chúng. Tính năng này cung cấp một giải pháp
hữu hiệu để giải quyết từng phần của hàm chính một cách riêng rẽ, tạo thuận lợi
cho việc lập một file hàm duy nhất để giải bài toán phức tạp.
Đặc biệt trong MATLAB có rất nhiều hàm có sẵn, đó là các hàm đã được
lập trình sẵn và được đưa vào thư viện, để xem một hàm cũng như cấu trúc, cách
sử dụng ta dùng lệnh >>help tên_hàm.
Ví dụ ta muốn xem cấu trúc hàm freqz
>> help freqz
2.3. Đồ họa với MATLAB
2.3.1. Vẽ đồ thị bằng hàm plot
Hàm plot vẽ đồ thị 2D dựa trên hai mảng dữ liệu số do người dùng tạo
trước. Nếu dùng hàm plot để vẽ đồ thị hàm số thì số điểm dữ liệu càng nhiều,
hình vẽ càng đúng với đồ thị hàm số liên tục (đường cong trơn và liên tục).
a. Vẽ căn bản
Lệnh plot(x,y): vẽ đồ thị y theo x.
Ví dụ: Vẽ đồ thị các hàm sau:
với x trong khoảng [0,10]
với x trong khoảng [0,3π]
Thực hiện trong MATLAB:
44
>> x=[0: 0.01: 10]; % tạo mảng x có giá trị từ 0 đến 10 với gia số 0,01
>> y1=x.^2+3*x+5; % tạo mảng y1 (= tính các giá trị tương ứng của y1)
>> plot(x,y1); % vẽ đồ thị y1 theo x
>> x=[0: 0.01: 3*pi]; % tạo mảng x có giá trị từ 0 đến 3π với gia số 0.01
>> y2=sin(x); % tạo mảng y2
>>plot(x,y2); %vẽ đồ thị y2 theo x
Dưới đây là kết quả của ví dụ trên:
Hình 2.3. Kết quả đồ thị y1.
Hình 2.4. Kết quả đồ thị y2.
45
b. Vẽ có khai báo màu, kiểu nét và đánh dấu điểm dữ liệu
Cú pháp lệnh: plot(x,y,S)
Trong đó tham số S là chuỗi ký tự tuỳ chọn để khai báo màu vẽ, kiểu nét
và ký hiệu đánh dấu tại các điểm dữ liệu. Nếu không dùng tham số S thì mặc
định là màu xanh dương (blue), nét liền (solid), không có ký hiệu đánh dấu.
Màu (color)
b = blue m = magenta
g = green y = yellow
r = red k = black
c = cyan w = white
Kiểu nét (linestyle) và ký hiệu đánh dấu (marker)
Linestyle Marker
- solid x x-mark v triangle (down)
: dotted + plus ^ triangle (up)
-. dashdot * star < triangle (left)
-- dashed s square > triangle (right)
. point o circle p pentagram
d diamond h hexagram
Bảng 2.1. Bảng kiểu nét và ký hiệu đánh dấu.
Các lệnh tiện tích
1. title('tên đồ thị') % tạo tiêu đề đồ thị
46
2. xlabel('nhãn trục x') % tạo nhãn cho trục x
3. ylabel('nhãn trục y') % tạo nhãn cho trục y
4. text(x,y,'nhãn') % tạo nhãn tại vị trí có toạ độ (x,y)
5. grid hoặc grid on % hiện các ô lưới toạ độ.
6. hold hoặc hold on % giữ nguyên đồ thị để vẽ tiếp trên cùng hệ
trục toạ độ.
7. legend('chúthích1', 'chúthích2',...) % tạo ô chú thích khi vẽ nhiều đồ
thị.
Để vẽ hai hay nhiều đồ thị trên cùng một hệ trục toạ độ ta có thể dùng lệnh
hold on như trên hoặc dùng lệnh plot với cú pháp tổng quát:
plot(x1,y1,S1,x2,y2,S2,…) trong đó x1,y1,S1 ứng với đồ thị thứ nhất; x2,y2,S2
ứng với đồ thị thứ hai,…
2.3.2. Hệ trục tọa độ (axis), cửa sổ vẽ (figure), đồ thị con (subplot)
Lệnh axis là công cụ dùng để quản lý hình dáng và thang chia của cả hai
trục đứng và ngang. Lệnh này có nhiều tuỳ chọn, để biết một cách đầy đủ về nó,
chúng ta có thể gõ lệnh help axis hay doc axis. Một số cách thường dùng của
lệnh axis là:
LỆNH Ý NGHĨA
axis([xmin xmax ymin ymax]) Thiết lập các giá trị min max của trục 2D
axis([xmin xmax ymin ymax
zmin zmax])
Thiết lập các giá trị min max của trục 3D
axis square Lấy độ dài hai trục bằng nhau (tạo vùng bao
vuông, so với mặc định là chữ nhật)
47
axis equal Lấy thang chia giống nhau cho cả hai trục
axis off Tắt bỏ chế độ trục, nhãn, ô lưới…
axis on Ngược lại với axis off
Nếu muốn vẽ nhiều đồ thị trên các figure (cửa sổ vẽ) khác nhau, ta tạo
figure mới bằng lệnh figure hoặc chọn menu file > new > figure trong cửa sổ
figure đang vẽ. Mỗi đối tượng đồ họa tạo mới như figure, axis, line,... được
MATLAB tự động gán cho một số hiệu để quản lý, gọi là handle. Trường hợp
tổng quát thì giá trị handle là một số thực. Riêng đối với figure thì mỗi figure tạo
mới sẽ được gán với handle là một số nguyên dương, ví dụ: 1, 2, 3,... Chúng ta có
thể chuyển qua lại giữa các figure đang có bằng cách dùng chuột để chọn hoặc
dùng lệnh figure(H) trong đó H là số hiệu của figure.
Các lệnh tìm handle thường dùng là gcf (get handlle to current figure – tìm
handle của figure hiện hành), gca (get handle to current axis – tìm handle của hệ
trục hiện hành), findobj (gcf, 'Type', 'Line') (tìm handle của các đường đồ thị
trong figure hiện hành).
Mặt khác, một cửa sổ figure có thể chứa nhiều hơn một hệ trục. Lệnh
subplot(m,n,p) chia figure thành một ma trận (mxn) vùng đồ hoạ con gọi là
subplot, và chọn p là subplot hiện hành. Các subplot được đánh số lần lượt từ trái
qua phải, từ trên xuống dưới.
2.4. Kết luận chương
Trong chương này chúng ta đã tìm hiểu công cụ để xây dựng các bài thí
nghiệm và đạt được kết quả như sau:
- Tìm hiểu được tổng quan về Matlab, lợi ích của Matlab, cách khởi động
cũng như thoát khỏi chương trình Matlab.
- Tìm hiểu được file chương trình để soạn thảo M –file.
- Tìm hiểu cơ bản về đồ họa với Matlab gồm các hàm vẽ hình, hệ trục tọa
độ, cửa sổ, đồ thị con.
48
CHƯƠNG III
XÂY DỰNG CHƯƠNG TRÌNH THỰC HÀNH
Chương trình thực hành gồm có bốn bài thực hành với giao diện như sau:
(Giao diện được mở ra bằng cách chạy file GUI1.m).
Hình 3.1. Giao diện chương trình thực hành.
Chương trình gồm có bốn bài:
- Bài 1: Vẽ đáp ứng tần số của hệ thống.
- Bài 2: Thiết kế bộ lọc FIR.
- Bài 3: Thiết kế bộ lọc IIR.
- Bài 4: Mô phỏng lọc tín hiệu sử dụng bộ lọc FIR hoặc IIR.
Để thực hiện chương trình, chúng ta ấn nút lựa chọn một trong bốn bài
thực hành như trên giao diện bằng cách ấn vào một trong bốn nút: bài 1, bài 2,
bài 3, bài 4. Khi ấn vào một trong bốn nút đó, giao diện của bài mà ta vừa lựa
chọn sẽ được mở ra.
49
Ví dụ khi ấn vào nút thì giao diện của bài một được mở ra như
sau:
Hình 3.2. Giao diện bài 1.
3.1. Bài 1: Vẽ đáp ứng tần số của hệ thống
Từ ý nghĩa của đáp ứng tần số của hệ thống được trình bày ở chương một
là biểu diễn đặc tính lọc của một hệ thống, bài một được xây dựng để vẽ đáp ứng
tần số của một hệ thống dựa vào hàm truyền đạt với mục đích dựa vào đáp ứng
biên độ và đáp ứng pha có được thì có thể kết luận hệ thống đó thuộc loại bộ lọc
gì, thông thấp, thông cao, thông dải hay chắn dải.
Dưới đây là giao diện bài một, được mở ra bằng cách chạy file GUI2.m:
Hình 3.2. Giao diện bài 1: Vẽ đáp ứng tần số của hệ thống.
50
Giao diện của bài một gồm có ba phần:
Tham số thiết kế: Để vẽ đáp ứng tần số của hệ thống thì các tham số cần
nhập vào như sau:
- Hệ số tử số của hàm truyền đạt: được nhập dưới dạng vec tơ.
- Hệ số mẫu số của hàm truyền đạt: được nhập dưới dạng vec tơ.
- Số điểm tần số.
Hình 3.3. Giao diện tham số thiết kế bài 1.
Hàm truyền đạt của hệ thống trong miền z có dạng như sau:
Từ hàm truyền đạt của hệ thống ta có thể tìm đáp ứng tần số của hệ thống
bằng cách thay z = . Có nghĩa là các hệ số tử số và mẫu số của hàm truyền đạt
cũng là các hệ số tử số và mẫu số của đáp ứng tần số của hệ thống. Từ đáp ứng
tần số của hệ thống có thể xác định đáp ứng biên độ và đáp ứng pha mà kết quả
cuối cùng mong muốn là vẽ được đáp ứng biên độ và đáp ứng pha của hệ thống.
Do đó hai tham số thiết kế để vẽ đáp ứng tần số của hệ thống chính là các hệ số
tử số và hệ số mẫu số của hàm truyền đạt của hệ thống.
Vì đáp ứng tần số của các mạch lọc lý tưởng là đối xứng nên chỉ cần xét
một nửa chu kỳ là đủ. Do đó tham số thứ ba là số điểm tần số (n điểm) sẽ xác
51
định đáp ứng tần số tại n điểm cách đều nhau quanh vòng tròn đơn vị (n điểm
cách đều nhau nằm giữa 0 và ). Thông thường nếu không được chỉ định thì số
điểm tần số được chọn là 512 hoặc 1024.
Để vẽ đáp ứng tần số của một hệ thống bất kỳ khi biết hàm truyền đạt của
hệ thống, chúng ta nhập các tham số thiết kế bao gồm hệ số tử số, hệ số mẫu số
của hàm truyền đạt, số điểm tần số rồi sau đó ấn nút OK để thực hiện. Mặc định
hiển thị ra đáp ứng biên độ của hệ thống.
Khung Hiển thị: Thực hiện chức năng hiển thị kết quả bài thiết kế.
Hình 3.4. Giao diện khung hiển thị của bài 1.
Khung hiển thị đưa ra hàm truyền đạt của hệ thống biểu diễn trong miền z
trước khi thiết kế để dựa vào đó chúng ta có thể nhập các tham số thiết kế một
cách dễ dàng và chính xác. Hàm truyền đạt của hệ thống có dạng sau:
Trong đó: , , … , : Hệ số tử số.
, , … , : Hệ số mẫu số.
52
Kết quả thiết kế là đáp ứng biên độ, đáp ứng pha của hệ thống sẽ được
biểu diễn ở khung hiển thị này.
Lựa chọn
Phần lựa chọn bao gồm hai thanh menu, trên thanh menu thứ nhất chứa
hai nút lựa chọn và kết quả. Khi ấn vào nút lựa chọn sẽ sổ ra các lựa chọn bao
gồm: Bài 1, bài 2, bài 3, bài 4, quay lại, tiếp tục, thoát. Chúng ta có thể chọn một
trong bốn bài bất kỳ để thực hiện bằng cách ấn vào các nút bài 1, bài 2, bài 3,
hoặc bài 4. Chọn quay lại để trở về bài trước đó, ấn tiếp tục để chuyển tới bài tiếp
theo, ấn thoát để thoát khỏi chương trình.
Hình 3.5. Mục lựa chọn của menu thứ nhất.
Khi ấn vào nút kết quả thì sẽ sổ ra hai lựa chọn là đáp ứng biên độ và đáp
ứng pha. Đó là kết quả thiết kế của bài một. Khi lựa chọn đáp ứng biên độ thì
trên khung hiển thị sẽ biểu diễn đáp ứng biên độ của hệ thống. Khi lựa chọn đáp
ứng pha thì trên khung hiển thị sẽ biểu diễn đáp ứng pha của hệ thống.
53
Hình 3.6. Mục kết quả của menu thứ nhất.
Trên thanh menu thứ hai chứa ba nút bao gồm: Nút là nút quay lại
(back), khi ấn vào nút back thì sẽ quay trở lại giao diện trước đó (giao diện các
bài thực hành). Nút là nút tiếp tục (next), khi ấn vào nút next sẽ thực hiện
chuyển tới giao diện bài tiếp theo (bài 2). Nút là nút thoát (exit), khi ấn nút
exit sẽ thực hiện thoát khỏi chương trình.
Ví dụ 1: Vẽ đáp ứng tần số của hệ thống có hàm truyền đạt sau:
Chia cả tử và mẫu số cho để đưa hàm truyền đạt H(z) của hệ thống về
dạng đa thức của ta được:
Nhập hệ số tử số của hàm truyền đạt như sau: [0.5 0 -0.32]
Nhập hệ số mẫu số của hàm truyền đạt như sau: [1 -0.5 0.25]
Lựa chọn số điểm tần số để tính toán đáp ứng tần số là: 1024
Ấn nút OK ta có kết quả chương trình như sau:
54
Hình 3.7. Kết quả đáp ứng biên độ của hệ thống ví dụ 1.
Kết quả mặc định hiển thị đáp ứng biên độ của hệ thống. Nếu lựa chọn
hiển thị đáp ứng pha của hệ thống thì kết quả cho như sau:
Hình 3.8. Kết quả đáp ứng pha của hệ thống ví dụ 1.
Kết quả ra đáp ứng biên độ và đáp ứng pha của hệ thống như hình trên. Từ
đáp ứng tần số của hệ thống như trên ta có thể kết luận đây là bộ lọc thông dải.
55
3.2. Bài 2: Thiết kế bộ lọc FIR
Giao diện bài 2 như sau (chạy file GUI3.m để chạy chương trình).
Hình 3.9. Giao diện bài 2: Thiết kế bộ lọc FIR.
Giao diện bài hai gồm ba phần bao gồm tham số thiết kế, khung hiển thị,
và menu lựa chọn. Phần khung hiển thị để hiển thị các kết quả thiết kế bộ lọc.
3.2.1. Tham số thiết kế
Giao diện tham số thiết kế như sau:
Hình 3.10. Giao diện tham số thiết kế bài 2.
a. Loại đáp ứng
Xét theo dạng đáp ứng tần số thì bộ lọc được chia làm bốn loại cơ bản là
bộ lọc thông thấp, thông cao, thông dải, chắn dải. Thiết kế bộ lọc FIR cũng là đi
xây dựng bốn loại bộ lọc cơ bản này nên tham số lựa chọn thứ nhất là loại đáp
56
ứng. Có bốn lựa chọn là thông thấp, thông cao, thông dải hoặc chắn dải. Loại đáp
ứng được lựa chọn mặc định là thông thấp.
Hình 3.11. Mục lựa chọn loại đáp ứng.
b. Phương pháp thiết kế
Trong bài hai này chúng ta sử dụng hai phương pháp thiết kế bộ lọc FIR là
phương pháp cửa sổ và phương pháp lấy mẫu tần số. Phương pháp được lựa chọn
mặc định là phương pháp lấy mẫu tần số.
Hình 3.12. Mục lựa chọn phương pháp thiết kế.
c. Loại cửa sổ
Nếu ở tham số thứ hai chúng ta chọn phương pháp thiết kế là phương
pháp cửa sổ thì tham số thứ ba được đưa ra là loại cửa sổ thiết kế. Nếu chọn
phương pháp lấy mẫu tần số thì tham số loại cửa sổ sẽ được ẩn đi.
Có năm loại cửa sổ được xây dựng trong bài là cửa sổ chữ nhật, cửa sổ
tam giác, cửa sổ hanning, cửa sổ hamming, cửa sổ blackman.
Hình 3.13. Mục lựa chọn loại cửa sổ.
57
d. Tần số cắt thấp, tần số cắt cao
Đáp ứng biên độ của các bộ lọc lý tưởng được cho như sau:
Hình 3.14. Đáp ứng biên độ của bộ lọc số thông thấp lý tưởng.
Hình 3.15. Đáp ứng biên độ của bộ lọc số thông cao lý tưởng.
Hình 3.16. Đáp ứng biên độ của bộ lọc thông dải lý tưởng.
Hình 3.17. Đáp ứng biên độ của bộ lọc số chắn dải lý tưởng.
Với : Tần số cắt
: Tần số cắt thấp
: Tần số cắt cao
58
Dựa vào đáp ứng biên độ của các bộ lọc số như trên ta thấy khi thiết kế
bất kỳ bộ lọc nào trong bốn loại bộ lọc trên thì tham số quan trọng cần thiết chính
là tần số cắt. Nó là một thông số kỹ thuật quan trọng để thiết kế bộ lọc.
Hình 3.18. Giao diện tham số thiết kế chứa mục tần số cắt thấp, cao.
Với lựa chọn bộ lọc thông thấp thì lựa chọn tần số cắt thấp (đơn vị Hz),
còn tần số cắt cao sẽ được ẩn đi (vì bộ lọc thông thấp chỉ có tham số tần số cắt
hay chính là tần số cắt thấp).
Với lựa chọn bộ lọc thông cao thì lựa chọn tần số cắt cao (đơn vị Hz), còn
tần số cắt thấp sẽ được ẩn đi (vì bộ lọc thông cao chỉ có tham số tần số cắt hay
chính là tần số cắt cao).
Với lựa chọn bộ lọc thông dải và bộ lọc chắn dải thì lựa chọn cả hai tần số
cắt thấp và tần số cắt cao (đơn vị Hz).
59
e. Tần số lấy mẫu
Vì chúng ta thực hiện thiết kế bộ lọc số nên phải thực hiện việc chuyển
đổi từ tín hiệu liên tục thành rời rạc qua bước lấy mẫu. Tần số lấy mẫu hay tỷ lệ
lấy mẫu được định nghĩa là số lượng các mẫu thu được trong một giây,
hoặc =1/T. Tỷ lệ lấy mẫu được đo bằng hertz hoặc số mẫu/giây. Do đó, tần số
lấy mẫu là một trong những tham số thiết kế bộ lọc số. Giá trị tần số lấy mẫu
được nhập vào bảng tham số thiết kế của bộ lọc tùy theo yêu cầu thiết kế, giá trị
mặc định là 8000Hz.
Định lý lấy mẫu Nyquist - Shannon cung cấp điều kiện đủ theo đó có thể
tái lập hoàn hảo tín hiệu. Định lý lấy mẫu đảm bảo rằng các tín hiệu có tần số
giới hạn có thể được tái tạo hoàn toàn từ phiên bản mẫu của nó, nếu tỷ lệ lấy mẫu
lớn hơn gấp đôi tần số tối đa (fs>2fmax).
f. Chiều dài bộ lọc
Đây là một tham số quan trọng khi thiết kế bộ lọc, chiều dài bộ lọc sẽ xác
định số các hệ số của bộ lọc. Mà các hệ số của bộ lọc lại chính là kết quả mong
đợi của các phương pháp thiết kế để từ đó xác định hàm truyền đạt cũng như đáp
ứng tần số của bộ lọc.
Ở đây chúng ta thiết kế bộ lọc FIR loại một, do đó chiều dài bộ lọc là một
số nguyên lẻ (N lẻ).
Sau khi lựa chọn và nhập các tham số thiết kế chúng ta ấn nút OK để thực
hiện thiết kế bộ lọc FIR.
3.2.2. Lựa chọn
Phần lựa chọn chứa hai thanh menu. Trên thanh menu thứ nhất có hai nút
lựa chọn và kết quả. Khi chúng ta ấn vào nút lựa chọn sẽ sổ ra các lựa chọn bao
gồm: Bài 1, bài 2, bài 3, bài 4, quay lại, thoát. Chúng ta có thể chọn một trong
bốn bài bất kỳ để thiết kế bằng cách ấn vào các nút bài 1, bài 2, bài 3, hoặc bài 4.
Chọn quay lại để trở về bài trước đó, chọn tiếp tục để chuyển tới bài tiếp theo, ấn
thoát để thoát khỏi chương trình.
60
Hình 3.19. Nút lựa chọn trên thanh menu thứ nhất.
Khi ấn vào nút kết quả để hiển thị các kết quả của bài thiết kế được hiển
thị ở khung hiển thị bên dưới. Tùy theo từng phương pháp thiết kế thì có những
kết quả thiết kế khác nhau.
Với phương pháp lấy mẫu tần số thì kết quả thiết kế bao gồm: Các giá trị
H(k) tương ứng, hệ số của bộ lọc B(n), đáp ứng biên độ, đáp ứng pha của bộ lọc.
Hình 3.20. Các lựa chọn kết quả với phương pháp lấy mẫu tần số.
Với phương pháp cửa sổ thì kết quả bao gồm: Đáp ứng xung của bộ lọc
h(n), giá trị hàm cửa sổ (tùy thuộc vào loại cửa sổ được chọn), hệ số bộ lọc B(n),
61
đáp ứng biên độ, đáp ứng pha của bộ lọc. Tùy thuộc vào sự lựa chọn của chúng
ta mà mỗi kết quả được hiển thị dưới bảng hiển thị.
Hình 3.21. Các lựa chọn kết quả với phương pháp cửa sổ.
Trên thanh menu thứ hai chứa ba nút bao gồm: Nút là nút quay lại
(back), khi ấn vào nút back thì sẽ quay trở lại giao diện bài trước đó (bài 1). Nút
là nút tiếp tục (next), khi ấn vào nút next sẽ thực hiện chuyển tới giao diện bài
tiếp theo (bài 3). Nút là nút thoát (exit), khi ấn nút exit sẽ thực hiện thoát khỏi
chương trình.
Ví dụ 2: Thiết kế bộ lọc thông dải FIR pha tuyến tính với chiều dài bộ lọc
là 25, tần số cắt thấp là 1600Hz, tần số cắt cao là 1800Hz, tần số lấy mẫu là
8000Hz sử dụng cửa sổ Hamming.
Theo như yêu cầu của ví dụ, chúng ta lựa chọn các tham số, nhập các giá
trị vào bảng tham số thiết kế và ấn OK và nhận được kết quả (mặc định hiển thị
đáp ứng biên độ của bộ lọc) như hình dưới đây:
62
Hình 3.22. Kết quả thiết kế bộ lọc ở ví dụ 2.
Chúng ta có thể lựa chọn các kết quả để hiển thị ra bảng hiển thị.
Ví dụ 3: Thiết kế bộ lọc FIR thông thấp pha tuyến tính với số lượng hệ số
của bộ lọc là 25 sử dụng phương pháp lấy mẫu tần số. Với tần số cắt fc=2000Hz
và tần số lấy mẫu là 8000Hz.
Theo như bài ra, chúng ta lựa chọn và nhập các tham số thiết kế rồi ấn nút
OK để nhận được kết quả ( mặc định là đáp ứng biên độ của bộ lọc) biểu diễn
như hình dưới đây:
63
Hình 3.23. Đáp ứng biên độ của bộ lọc được thiết kế ở ví dụ 3.
Chúng ta có thể lựa chọn hiển thị các hệ số của bộ lọc. Kết quả như hình
dưới đây:
Hình 3.24. Hệ số bộ lọc thiết kế ở ví dụ 3.
3.3. Bài 3: Thiết kế bộ lọc IIR
Giao diện của bài 3 được thiết kế như sau:
(Chạy file GUI4.m để thực hiện).
Hình 3.25. Giao diện bài 3: Thiết kế bộ lọc IIR.
64
Giao diện gồm ba phần, bao gồm tham số thiết kế, phần menu các lựa
chọn hiển thị, khung hiển thị để biểu diễn các kết quả thiết kế bộ lọc.
3.3.1. Tham số thiết kế
Dưới đây là giao diện của phần tham số thiết kế:
Hình 3.26. Giao diện tham số thiết kế bộ lọc IIR.
a. Loại đáp ứng
Cũng như bộ lọc FIR, thiết kế bộ lọc IIR cũng là đi xây dựng bộ lọc với
bốn loại đáp ứng cơ bản là thông thấp, thông cao, thông dải, chắn dải. Với bài
này cũng thiết kế bộ lọc FIR với bốn loại đáp ứng như trên. Mục lựa chọn loại
đáp ứng gồm bốn lựa chọn: thông thấp, thông cao, thông dải, chắn dải.
Hình 3.27. Mục lựa chọn loại đáp ứng của bộ lọc.
b. Loại bộ lọc tương tự
Trong đồ án trình bày phương pháp thiết kế bộ lọc IIR đi từ thiết kế bộ lọc
tương tự rồi chuyển đổi từ bộ lọc tương tự sang bộ lọc số. Bài 3 thiết kế bộ lọc
IIR đi từ bộ lọc Butterworth, bộ lọc Chebyshev-1, bộ lọc Chebyshev-2, sau đó
65
dùng phương pháp biến đổi song tuyến để chuyển đổi từ bộ lọc tương tự sang bộ
lọc số. Do đó có mục lựa chọn thiết kế từ bộ lọc có ba lựa chọn là Butterworth
hoặc bộ lọc Chebyshev-1 hoặc bộ lọc Chebyshev-2.
Hình 3.28. Mục lựa chọn loại bộ lọc tương tự.
c. Mục nhập tần số dải thông, tần số dải chắn, độ suy giảm dải thông, dải chắn
Đi từ đáp ứng tần số của các bộ lọc thực tế thì để thiết kế bộ lọc, các tham
số tần số dải thông, tần số dải chắn, độ suy giảm dải thông, độ suy giảm dải chắn
là những tham số quan trọng đặc trưng cho một bộ lọc. Cụ thể như sau:
Hình 3.29. Đáp ứng tần số của bộ lọc thông thấp.
Hình 3.30.. Đáp ứng tần số của bộ lọc thông cao.
Với : Tần số dải thông.
66
: Tần số dải chắn.
: Độ gợn sóng ở dải thông.
: Độ gợn sóng ở dải chắn.
(Các tham số trên dành cho cả hai bộ lọc thông thấp và thông cao).
Hình 3.31. Đáp ứng tần số bộ lọc thông dải.
Hình 3.32. Đáp ứng tần số bộ lọc chắn dải.
Với : Tần số dải chắn thấp.
: Tần số dải thông thấp.
: Tần số dải thông cao.
: Tần số dải chắn cao.
: Độ gợn sóng ở dải thông.
: Độ gợn sóng ở dải chắn.
67
(Các tham số trên dành cho hai loại bộ lọc thông dải và chắn dải).
Do đó để thiết kế bộ lọc IIR ta đi lựa chọn các tham số trên bằng cách xây
dựng các mục lựa chọn:
Nhập tần số dải thông (đơn vị Hz): Với bộ lọc thông thấp và thông cao thì
tần số dải thông chỉ nhận một giá trị. Đối với bộ lọc thông dải và chắn dải
thì tần số dải thông nhập vào là một vec tơ có chiều dài bằng 2 gồm tần số
dải thông thấp, tần số dải thông cao như biểu diễn trên hình đáp ứng tần số
của bộ lọc thông dải và chắn dải.
Nhập tần số dải chắn (đơn vị Hz): Tương tự như đối với nhập tần số dải
thông.
Nhập độ suy giảm dải thông (đơn vị dB): Độ suy giảm dải thông chỉ độ
mấp mô của dải thông vì bộ lọc không phải lý tưởng, đơn vị là deciben.
Thông thường nó nhận giá trị từ 0 đến vài dB.
Nhập độ suy giảm dải chắn (đơn vị dB): Chỉ độ mấp mô của dải chắn vì
bộ lọc không phải là lý tưởng, đơn vị là dB. Thông thường nó nhận giá trị
vài chục dB.
d. Mục tần số lấy mẫu
Vì chúng ta thực hiện thiết kế bộ lọc số nên phải thực hiện việc chuyển
đổi từ tín hiệu liên tục thành rời rạc qua bước lấy mẫu. Tần số lấy mẫu hay tỷ lệ
lấy mẫu được định nghĩa là số lượng các mẫu thu được trong một giây,
hoặc =1/T. Tỷ lệ lấy mẫu được đo bằng hertz hoặc số mẫu/giây. Do đó, tần số
lấy mẫu là một trong những tham số thiết kế bộ lọc số. Giá trị tần số lấy mẫu
được nhập vào bảng tham số thiết kế của bộ lọc tùy theo yêu cầu thiết kế, giá trị
mặc định là 8000Hz.
Định lý lấy mẫu Nyquist - Shannon cung cấp điều kiện đủ (nhưng không
phải lúc nào cũng cần thiết), theo đó có thể tái lập hoàn hảo tín hiệu. Định lý lấy
mẫu đảm bảo rằng các tín hiệu có tần số giới hạn có thể được tái tạo hoàn toàn từ
phiên bản mẫu của nó, nếu tỷ lệ lấy mẫu lớn hơn gấp đôi tần số tối đa (fs>2fmax).
68
Sau khi lựa chọn và nhập các tham số thiết kế chúng ta ấn nút OK để thực
hiện thiết kế bộ lọc, kết quả đáp ứng biên độ của bộ lọc sẽ được biểu diễn bên
bảng hiển thị bên cạnh (đây là kết quả mặc định khi chúng ta ấn OK). Ngoài ra
ấn nút quay lại để trở lại bài thiết kế trước đó, ấn nút tiếp theo để chuyển đến bài
tiếp theo.
3.3.2. Lựa chọn
Phần này có hai menu lựa chọn. Trên thanh menu thứ nhất có hai nút lựa
chọn và hiển thị. Cũng tương tự như bài 2, khi ấn nút lựa chọn sẽ sổ ra bẩy lựa
chọn gồm: Bài 1, bài 2, bài 3, bài 4, quay lại, tiếp theo, thoát. Chúng ta có thể
chọn bất kỳ một bài nào trong bốn bài bằng cách ấn nút bài 1, hoặc bài 2, hoặc
bài 3, hoặc bài 4. Ấn nút quay lại để trở về bài trước đó, ấn nút tiếp theo để
chuyển tới bài tiếp theo, ấn nút thoát để thoát khỏi chương trình.
Hình 3.33. Nút lựa chọn của thanh menu thứ nhất.
Ấn vào nút kết quả để hiển thị một trong các kết quả của thiết kế bộ lọc
bao gồm: Bậc và tần số cắt của bộ lọc, đáp ứng biên độ, đáp ứng pha của bộ lọc,
hệ số của bộ lọc. Đối với lựa chọn hệ số của bộ lọc sẽ có hai lựa chọn hiển thị hệ
số tử số, hệ số mẫu số là hệ số của hàm truyền đạt của bộ lọc, đó cũng chính là hệ
số của bộ lọc.
69
Hình 3.34. Nút kết quả của thanh menu thứ nhất.
Trên thanh menu thứ hai chứa ba nút bao gồm: Nút là nút quay lại
(back), khi ấn vào nút back thì sẽ quay trở lại giao diện bài 2. Nút là nút tiếp
tục (next), khi ấn vào nút next sẽ thực hiện chuyển tới giao diện bài bài 4. Nút
là nút thoát (exit), khi ấn nút exit sẽ thực hiện thoát khỏi chương trình.
Ví dụ 4: Thiết kế bộ lọc thông cao Butterworth với các thông số sau:
fp = 3000 Hz
fs = 1000 Hz
rp = 0.5 dB
rs = 25 dB
Tần số lấy mẫu Fs =8000 Hz.
Dựa vào yêu cầu của bài, chúng ta lựa chọn và nhập các tham số thiết kế
rồi ấn nút OK để nhận được kết quả đáp ứng biên độ của bộ lọc được biểu diễn
bên bảng hiển thị như sau:
70
Hình 3.35. Đáp ứng biên độ của bộ lọc Butterworth ở ví dụ 4.
Còn bậc và tần số cắt của bộ lọc thu được là:
Hình 3.36. Bậc và tần số cắt của bộ lọc Butterworth ở ví dụ 4.
Còn đây là hệ số của bộ lọc:
71
Hình 3.37. Hệ số của bộ lọc Butterworth ở ví dụ 4.
3.4. Bài 4: Mô phỏng việc lọc tín hiệu sử dụng bộ lọc FIR hoặc IIR
Bài bốn thực hiện việc tạo tín hiệu ngẫu nhiên trong miền tần số hoặc
miền thời gian, sau đó thiết kế bộ lọc FIR hoặc IIR để thực hiện lọc tín hiệu ngẫu
nhiên đó tùy theo yêu cầu, có thể lọc tín hiệu trong miền tần số (dạng phổ) hoặc
lọc tín hiệu trong miền thời gian. Dưới đây là giao diện của bài bốn (chạy file
GUI5fix.m để mở ra giao diện):
Hình 3.38. Giao diện bài 4
72
Giao diện bài 4 gồm bốn phần: Phần tạo tín hiệu, thiết kế bộ lọc và lọc tín
hiệu, menu lựa chọn, khung hiển thị để hiển thị kết quả thiết kế.
3.4.1. Tạo tín hiệu ngẫu nhiên
Hình 3.39. Phần tạo tín hiệu ngẫu nhiên.
Phần này tạo tín hiệu với tổng mười giá trị tần số từ tấn số min (Hz) tới
tần số max (Hz). Sau khi nhập các tần số min và max chúng ta ấn vào nút tạo tín
hiệu ngẫu nhiên để thực hiện tạo tín hiệu, kết quả sẽ được biểu diễn bên khung
hiển thị trong miền tần số (dạng phổ) và miền thời gian. Giá trị mặc định tần số
min là 500 Hz, tần số max là 5000 Hz.
3.4.2. Thiết kế bộ lọc và lọc tín hiệu
Hình 3.40. Giao diện phần thiết kế bộ lọc và lọc tín hiệu.
73
Phần này thực hiện thiết kế bộ lọc tùy theo yêu cầu. Có hai loại bộ lọc là
FIR và IIR, chúng ta có thể lựa chọn một trong hai loại bộ lọc này để thiết kế
bằng cách ấn vào nút FIR hoặc IIR. Khi ta chọn nút FIR thì bên cạnh có lựa chọn
phương pháp thiết kế bộ lọc FIR , tương tự khi ta chọn nút IIR thì bên cạnh có
lựa chọn phương pháp thiết kết bộ lọc IIR. Các tham số thiết kế hai loại bộ lọc
FIR và IIR như bài 2 và bài 3. Sau khi lựa chọn loại bộ lọc thiết kế và nhập các
tham số để thiết kế bộ lọc chúng ta ấn vào nút lọc theo miền tần số để thực hiện
lọc tín hiệu mà chúng ta vừa thiết kế trong miền tần số (dạng phổ), ấn vào nút lọc
theo miền thời gian để lọc tín hiệu trong miền thời gian.
Bên cạnh đó bài bốn còn đưa ra một ví dụ về lọc một file tín hiệu âm
thanh, để mở ra giao diện của ví dụ chúng ta ấn vào nút ví dụ về lọc tín hiệu âm
thanh. Giao diện của ví dụ được mở ra như sau:
Hình 3.41. Giao diện ví dụ lọc tín hiệu âm thanh.
Ở ví dụ này thực hiện lọc tín hiệu âm thanh là một file nhạc định dạng
wav bằng bộ lọc FIR thông thấp được thiết kế bằng phương pháp cửa sổ. Chúng
ta nhập các tham số để thiết kế bộ lọc như chiều dài bộ lọc, tần số cắt, lựa chọn
loại cửa sổ như bài 2. Sau đó ấn vào nút lọc tín hiệu để thực hiện lọc tín hiệu theo
74
yêu cầu với các tham số đã chọn. Kết quả sẽ được hiển thị bên bảng kết quả. Ấn
vào nút nghe file âm thanh ban đầu để nghe file nhạc ban đầu khi chưa lọc, ấn
vào nút nghe file âm thanh sau khi lọc để nghe file nhạc sau khi đã lọc bằng bộ
lọc FIR.
3.4.3. Menu lựa chọn
Có hai thanh menu lựa chọn. Trên thanh menu thứ nhất chứa nút lựa chọn.
Khi ấn vào nút lựa chọn sẽ sổ ra các lựa chọn bao gồm: Bài 1, bài 2, bài 3, bài 4,
quay lại, thoát. Chúng ta có thể chọn một trong bốn bài bất kỳ để thiết kế bằng
cách ấn vào các nút bài 1, bài 2, bài 3, hoặc bài 4. Chọn quay lại để trở về bài
trước đó, ấn thoát để thoát khỏi chương trình.
Hình 3.42. Nút lựa chọn của thanh menu thứ nhất.
Trên thanh menu thứ hai chứa hai nút bao gồm: Nút là nút quay lại
(back), khi ấn vào nút back thì sẽ quay trở lại giao diện bài 3. Nút là nút thoát
(exit), khi ấn nút exit sẽ thực hiện thoát khỏi chương trình.
75
Ví dụ 5: Tạo tín hiệu ngẫu nhiên với tần số min là 500 Hz, tần số max là
3000 Hz. Sau đó thiết kế bộ lọc FIR lọc tín hiệu có tần số nhỏ hơn hoặc bằng
1200 Hz.
Theo như yêu cầu bài ra, chúng ta nhập các giá trị 500 và 3000 vào phần
tạo tín hiệu, mục tần số min và tần số max, rồi ấn vào nút tạo tín hiệu ngẫu nhiên,
kết quả hiển thị ra bảng hiển thị trong miền tần số và miền thời gian như sau:
Hình 3.43. Tín hiệu ngẫu nhiên ở ví dụ 5.
Sau khi tạo tín hiệu ngẫu nhiên chúng ta thiết kế bộ lọc, theo yêu cầu đề
bài thì bộ lọc FIR được thiết kế là bộ lọc thông thấp với tần số cắt là 1200Hz, ở
đây chúng ta chọn phương pháp cửa sổ, loại cửa sổ Hamming, chiều dài bộ lọc
25, tần số lấy mẫu 8000 Hz.
Cuối cùng chúng ta ấn vào nút lọc theo miền tần số để hiển thị kết quả lọc
tín hiệu theo phổ:
76
Hình 3.44. Kết quả ví dụ 5 lọc theo miền tấn số.
Nếu ấn vào nút lọc theo thời gian thì kết quả như sau:
Hình 3.45. Kết quả lọc tín hiệu theo miền tần số ở ví dụ 5.
Để thực hiện mô phỏng ví dụ về lọc tín hiệu âm thanh, chúng ta ấn vào nút
ví dụ về lọc tín hiệu âm thanh.
77
Hình 3.46. Ví dụ về lọc tín hiệu âm thanh.
Nếu chọn chiều dài bộ lọc là 25, loại cửa sổ là Hamming, tần số cắt là 800
Hz thì kết quả lọc được hiển thị như sau:
Hình 3.47. Kết quả ví dụ lọc tín hiệu âm thanh.
78
3.5. Kết luận chương
Chương ba đã xây dựng được chương trình thực hành gồm bốn bài thực
hành bao gồm:
Bài 1: Thực hiện vẽ đáp ứng tần số của hệ thống (đáp ứng biên độ và đáp
ứng pha).
Bài 2: Thiết kế bộ lọc FIR bằng phương pháp cửa sổ và phương pháp lấy
mẫu tần số.
Bài 3: Thiết kế bộ lọc IIR Butterworth, Chebyshev-1, Chebyshev-2.
Bài 4: Mô phỏng việc lọc tín hiệu sử dụng bộ lọc FIR hoặc IIR, ví dụ về
lọc một file tín hiệu âm thanh định dạng wav.
79
KẾT LUẬN
Qua quá trình tìm hiểu, nghiên cứu, đồ án đã tìm hiểu được:
- Giới thiệu về môn học xử lý tín hiệu số 2
- Đề xuất các bài thí nghiệm cho môn học xử lý tín hiệu số 2 gồm 4 bài:
Bài 1: Vẽ đáp ứng tần số của hệ thống
Bài 2: Thiết kế bộ lọc FIR
Bài 3: Thiết kế bộ lọc IIR
Bài 4: Mô phỏng việc lọc tín hiệu sử dụng bộ lọc FIR hoặc IIR.
- Xây dựng chương trình mô phỏng cho các bài thí nghiệm. Bài 1 thực
hiện vẽ đáp ứng tần số của hệ thống. Bài 2 thiết kế bộ lọc FIR bằng hai
phương pháp cửa sổ và phương pháp lấy mẫu tần số. Bài 3 thiết kế ba
loại bộ lọc IIR butterworth và bộ lọc chebyshev-1, chebyshev-2. Bài 4
thực hiện mô phỏng việc lọc tín hiệu sử dụng bộ lọc FIR hoặc IIR.
Ngoài ra bài 5 là ví dụ về việc lọc một tín hiệu âm thanh sử dụng bộ
lọc FIR thông thấp.
Hướng phát triển của đồ án: Tiếp tục hoàn thiện các bài thiết kế, cụ thể là
thiết kế bộ lọc FIR theo phương pháp biến đổi Fourier, thiết kế bộ lọc IIR theo
phương pháp biến đổi z thích ứng, phương pháp tương đương vi phân, phương
pháp bất biến xung, thiết kế bài mô phỏng lọc số nhiều nhịp.
80
TÀI LIỆU THAM KHẢO
[1]. Xử lý tín hiệu và lọc số I, II, Nguyễn Quốc Trung, NXB KHKT 2002
[2]. Xử lý số tín hiệu I, II, Hồ Văn Sung, NXB KHKT 2003
[3]. Xử lý tín hiệu số, Quách Tuấn Ngọc, NXB KHKT 2000
[4]. Thực hành xử lý số tín hiệu trên máy tính PC với Matlab, Hồ Văn Sung,
NXB KHKT.
[5]. Giáo trình Matlab cơ bản, Phan Thanh Tao, Đại Học Bách Khoa Đà Nẵng.
[6]. Analog and digital filter design, Steven Winder, Prentice Hall.
[7]. DSP Fundamentals and application, Litan, Devry University.
[8]. Practical analog and digital filter design, Lesthede, Artech House.
[9]. DSP Using Matlab, John G.Proakis, Northeneastern University.
[10]. DSP and filter design, B.A.Shenoi, Wikey Intersience.
81
top related