ĐỒ ÁN TỐT NGHIỆP ĐIỆN TỬ Thiết kế bộ lọc thông số thấp có tần số cắt 850kHz
NỘI DUNG ĐỒ ÁN
THIẾT KẾ BỘ LỌC SỐ THÔNG THẤP CÓ TẦN SỐ CẮT FC = 850 kHz
MỤC LỤC
CÁC TỪ VIẾT TẮT.. 1
LỜI MỞ ĐẦU.. 2
Chương 1:4
TỔNG QUAN VỀ BỘ LỌC SỐ.. 4
1.1 Mở đầu chương. 4
1.2 Tổng quan về lọc số. 4
1.2.1 Các thông số hệ thống trong miền thời gian. 5
1.2.1.1 Thời gian lên. 5
1.2.1.2 Gợn sóng nhô trong đáp ứng bậc thang. 5
1.2.1.3 Pha tuyến tính. 5
1.2.2 Các thông số trong miền tần số. 5
1.2.2.1 Các thông số tuyệt đối:6
1.2.2.2 Các thông số tương đối6
1.3 Cấu trúc các bộ lọc số. 6
1.3.1 Các phần tử cấu thành nên bộ lọc số. 6
1.3.2 Cấu trúc bộ lọc FIR.. 7
1.3.2.1 Cấu trúc dạng trực tiếp. 8
1.3.2.2 Cấu trúc dạng ghép tầng. 8
1.3.2.3 Cấu trúc dạng pha tuyến tính. 9
1.3.2.4 Cấu trúc dạng lấy mẫu tần số. 10
1.3.3 Cấu trúc bộ lọc IIR.. 12
1.3.3.1 Cấu trúc dạng trực tiếp. 13
1.3.3.2 Cấu trúc dạng ghép tầng:14
1.3.3.3 Cấu trúc song song:15
1.4 Kết luận chương. 16
Chương 2:17
THIẾT KẾ BỘ LỌC FIR.. 17
2.1 Mở đầu chương. 17
2.2 Đặc tính của bộ lọc FIR pha tuyến tính. 17
2.2.1 Bộ lọc FIR pha tuyến tính Loại 1: đáp ứng xung đối xứng, M lẽ. 17
2.2.2 Bộ lọc FIR pha tuyến tính Loại 2: đáp ứng xung đối xứng, M chẵn. 18
2.2.3 Bộ lọc FIR pha tuyến tính Loại 3: đáp ứng xung phản đối xứng, M lẽ. 19
2.2.4 Bộ lọc FIR pha tuyến tính Loại 4: đáp ứng xung phản đối xứng, M chẵn. 19
2.3 Thiết kế bộ lọc FIR pha tuyến tính. 20
2.3.1 Thiết kế bộ lọc FIR pha tuyến tính dùng phương pháp cửa sổ. 20
2.3.1.1 Nguyên tắc:20
2.3.1.2 Các bước thiết kế bộ lọc FIR theo phương pháp cửa sổ. 21
2.3.2 Thiết kế bộ lọc FIR pha tuyến tính dùng phương pháp lấy mẫu tần số. 24
2.3.2.1 Nguyên tắc:25
2.3.2.2 Ý tưởng thiết kế. 26
2.3.3 Thiết kế bộ lọc FIR pha tuyến tính dùng phương pháp equiripple. 27
2.3.3.1 Phát triển vấn đề minimax. 27
2.3.3.2 Các phát biểu về vấn đề MINMAX.. 30
2.3.3.3 Thuật toán Packs- McClellan. 31
2.3.3.4 Thuật toán chuyển đổi Remez. 32
2.4 Thiết kế bộ lọc FIR maximally flat32
2.4.1 Bộ lọc có đáp ứng tần số phẳng tối đa (maximally flat). 32
2.4.2 Bộ lọc FIR maximally-flat33
2.5 Bộ lọc FIR thích nghi35
2.5.1 Định nghĩa bộ lọc thích nghi35
2.5.1.1 Sơ đồ chung của bộ lọc thích nghi36
2.5.1.2 Cấu trúc bộ lọc FIR thích nghi36
2.5.2 thuật toán thích nghi38
2.5.3 Ứng dụng của bộ lọc thích nghi39
2.5.3.1 Nhận dạng hệ thống. 39
2.5.3.2 Triệt tiêu nhiễu. 40
2.5.3.3 Dự đoán tuyến tính. 41
2.6 Kết luận chương. 41
Chương 3:43
TÍNH TOÁN THIẾT KẾ BỘ LỌC FIR THÔNG THẤP. 43
3.1 Mở đầu chương. 43
3.2 Tính toán và thiết kế. 43
3.2.1 Thiết kế bộ lọc FIR maximally flat43
3.2.2 Thiết kế bằng phương pháp cửa sổ. 49
3.2.3 Thiết kế bằng phương pháp lấy mẫu tần số. 53
3.2.4 Thiết kế bộ lọc FIR thích nghi59
3.2.4.1 Bộ lọc FIR thích nghi trong ứng dụng nhận dạng hệ thống:59
3.2.4.2 Bộ lọc thích nghi ứng dụng trong loại bỏ can nhiễu. 61
3.3 Kết luận chương. 63
Chương 4:65
MÔ PHỎNG CÁC BỘ LỌC SỐ BẰNG FDAtool65
4.1 Mở đầu chương. 65
4.2 Mô phỏng bộ lọc FIR có đáp ứng phẳng tối đa bằng FDAtool65
4.3 Mô phỏng bộ lọc FIR thiết kế theo phương pháp cửa sổ Blackman bằng FDAtool68
4.4 Kết luận chương. 70
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI71
TÀI LIỆU THAM KHẢO.. 73
PHỤ LỤC.. 74
CÁC TỪ VIẾT TẮT
As DSP FDAtool
FPGA
FIR LMS NLMS IIR RLS Rp VHDL
VHSIC |
Atenuation stopband Digital signal processing Filter design & analysis tool
Field programmable Gate Array
Finite Impulse Response Least mean square Nomal LMS Infinite Impulse Response Recursive least square Ripple passband VHSIC Hardware Description Language Very High Speed Integrated Circuits |
Độ suy giảm ở dải chắn Xử lí tín hiệu số Công cụ thiết kế và phân tích bộ lọc Mảng cổng lập trình được dạng trường Đáp ứng xung hữu hạn Bình phương trung bình nhỏ nhất
Đáp ứng xung vô hạn Đệ quy bình phương nhỏ nhất Độ gợn ở dải thông Ngôn ngữ lập trình phần cứng
Mạch tích hợp tốc độ cao |
|
|
|
LỜI MỞ ĐẦU
Ngày nay, với sự phát triển không ngừng của khoa học kỹ thuật, các hệ thống tương tự dần được thay thế bằng các hệ thống số. Tuy nhiên, trong bất kì hệ thống nào thì yêu cầu về tính chính xác, tính ổn định và lọc nhiễu tốt luôn là yêu cầu quan trọng nhất. Do đó, các bộ lọc đã ra đời để thực hiện các nhiệm vụ như lọc nhiễu, tách băng tần để các hệ thống hoạt động ổn định và hiệu quả hơn. Các bộ lọc số với những ưu điểm so với bộ lọc tương tự như: độ gợn trong dải thông và dải chắn nhỏ hơn nhiều so với bộ lọc tương tự, dải chuyển tiếp của bộ lọc số cũng nhỏ hơn so với bộ lọc tương tự và đặc biệt là bộ lọc số FIR có thể đáp ứng tốt yêu cầu pha tuyến tính, một yêu cầu quan trọng trong các ứng dụng viễn thông cho nên các bộ lọc số đã dần thay thế các bộ lọc tương tự trong xử lí tín hiệu, đặc biệt là trong xử lí tín hiệu số DSP.
Từ tầm quan trọng của các bộ lọc số trong DSP, đặc biệt là bộ lọc có pha tuyến tính trong truyền dẫn tín hiệu, với mong muốn tìm hiểu rõ hơn về cấu trúc và cách thức thiết kế một bộ lọc số FIR, em chọn đề tài nghiên cứu cho đồ án tốt nghiệp là “thiết kế bộ lọc số thông thấp có tần số cắt fc = 850kHz”.
Trong đồ án này sẽ tập trung vào trình bày các vấn đề liên quan đến bộ lọc FIR gồm các chỉ tiêu kỹ thuật, cấu trúc bộ lọc số và các phương pháp thiết kế nên một bộ lọc FIR. Nội dung đồ án gồm:
- Chương 1: Tổng quan về bộ lọc số. Giới thiệu về các thông số, chỉ tiêu kỹ thuật của một bộ lọc số, các chỉ tiêu này đặc biệt quan trọng trong thiết kế để đảm bảo chất lượng một bộ lọc số. Sau đó, cung cấp các cấu trúc cơ bản của các bộ lọc số để có thể thực hiện bộ lọc vừa thiết kế trên thực tế.
- Chương 2: Thiết kế bộ lọc FIR thông thấp. Trình bày các phương pháp để thiết kế một bộ lọc FIR gồm: phương pháp cửa sổ, phương pháp lấy mẫu tần số, phương pháp equiripple và phương pháp thiết kế bộ lọc có đáp ứng phẳng tối đa FIR maximally flat.
- Chương 3: Áp dụng các kiến thức về cấu trúc bộ lọc và các phương pháp thiết kế đã trình bày trong các chương trước để xây dựng bộ lọc FIR thông thấp đáp ứng các yêu cầu cho trước như tần số cắt, các hệ số gợn dải thông và suy giảm ở dải chắn.
- Chương 4: Sử dụng công cụ FDAtool trong matlab để mô phỏng các bộ lọc tương tự như các bộ lọc đã thiết kế trong chương 3, qua đó kiểm tra tính chính xác của các bộ lọc đã thiết kế.
Bộ lọc số đã được sử dụng nhiều trong thực tế và không phải là kiến thức mới, nhưng trong đồ án này em đã tiếp cận các kiến thức chưa được giảng dạy như bộ lọc maximally flat và các thuật toán thích nghi nên không thể tránh khỏi các sai sót và hạn chế. Em mong nhận được các ý kiến đóng góp của thầy cô để đồ án này được hoàn thiện hơn.
Chương 1:
TỔNG QUAN VỀ BỘ LỌC SỐ
1.1 Mở đầu chương
Lọc là quá trình rất quan trọng trong xử lí tín hiệu số, chính vì những đặc tính tốt của các bộ lọc số đã làm chúng trở nên phổ biến như ngày nay. Trong chương này sẽ trình bày tổng quan về lọc số, các thông số và cấu trúc của một bộ lọc số để qua đó có thể nắm rõ hơn các kiến thức cụ thể về bộ lọc sẽ được trình bày trong các chương sau. Nội dung chương 1 gồm:
- Tổng quan về bộ lọc số.
- Cấu trúc các bộ lọc số.
1.2 Tổng quan về lọc số
Phương pháp trực tiếp nhất để thực hiện lọc số là dùng phép tích chập của tín hiệu vào và đáp ứng xung của một bộ lọc số, khi đó đáp ứng xung được xem là cốt lõi của thiết kế bộ lọc. Một phương pháp thiết kế khác là đệ quy. Khi một bộ lọc được thực hiện bằng tích chập, mỗi mẫu trong tín hiệu ra được tính toán bằng cách tổ hợp có trọng số các tín hiệu vào. Các bộ lọc đệ quy mở rộng thêm quá trình trên bằng cách sử dụng các hệ số đã tính được từ tín hiệu ra, bên cạnh các điểm lấy được từ tín hiệu vào. Thay vì dùng một lõi lọc, các bộ lọc đệ quy được xác định bởi một dãy các hệ số đệ quy.
Có 2 loại bộ lọc số là bộ lọc có đáp ứng xung hữu hạn FIR và bộ lọc có đáp ứng xung vô hạn IIR. Bộ lọc FIR có ưu điểm so với bộ lọc IIR là có thể thỏa mãn điều kiện đáp ứng pha tuyến tính. Đặc tính bộ lọc được mô tả bởi đáp ứng biên độ và đáp ứng pha, tùy vào đáp ứng mong muốn mà bộ lọc nhân quả FIR hoặc IIR sẽ được sử dụng. Bộ lọc FIR thường được dùng khi có yêu cầu về pha tuyến tính trong dải thông, bộ lọc IIR thường được dùng khi các ứng dụng không yêu cầu pha tuyến tính.Trong đồ án này sẽ trình bày cụ thể về bộ lọc FIR pha tuyến tính.
1.2.1 Các thông số hệ thống trong miền thời gian
1.2.1.1 Thời gian lên
Tốc độ chuyển đổi thường được thể hiện bằng thời gian lên (hay số mẫu) giữa mức biên độ 10% và 90%. Thời gian lên có thể không nhanh do nhiều nguyên nhân như tạp âm, hạn chế của hệ thống ...
1.2.1.2 Gợn sóng nhô trong đáp ứng bậc thang
Thông thường phải loại bỏ gợn sóng nhô vì nó làm thay đổi biên độ các mẫu trong tín hiệu. Đây là nguyên nhân gây méo tín hiệu trong miền thời gian.
1.2.1.3 Pha tuyến tính
Pha tuyến tính đặc biệt quan trọng trong các ứng dụng viễn thông. Pha tuyến tính có nghĩa các sự thay đổi về pha giữa các tần số là tuyến tính theo thời gian mà không phụ thuộc vào tần số của tín hiệu.
1.2.2 Các thông số trong miền tần số
Độ gợn dải chắn |
Độ gợn dải thông |
Miền chuyển tiếp |
Hình 1.1: Các chỉ tiêu của bộ lọc, (a) tuyệt đối, (b) tương đối [8]
1.2.2.1 Các thông số tuyệt đối:
vDải thông (pass band): dải tần [0, ωp] là dải các tần số mà bộ lọc cho qua, δ1 là độ gợn dải thông.
vDải chắn (stopband): dải tần [0, ωs] là dải các tần số bị ngăn cản, , δ2 là độ gợn dải chắn.
vDải chuyển tiếp (Transitionband): dải tần [ωp , ωs] là dải tần số trong quá trình chuyển từ dải thông sang dải chắn và ngược lại.
vTần số cắt: trong bộ lọc tương tự tần số cắt là tần số tại đó biên độ giảm đi 3dB, còn với bộ lọc số thì tần số cắt ít được tiêu chuẩn hóa và có thể được các định tại các mức biên độ bằng 90%, 70,7% hoặc 50%.
1.2.2.2 Các thông số tương đối
vRp là độ gợn dải thông tính theo dB
vAs là độ suy giảm dải chắn tính theo dB.
1.3 Cấu trúc các bộ lọc số
1.3.1 Các phần tử cấu thành nên bộ lọc số
Bộ cộng: đây là phẩn tử có hai đầu vào và một đầu ra. Giá trị tại đầu ra của bộ cộng bằng tổng hoặc hiệu của hai tín hiệu đầu vào. Bộ cộng được biểu diễn trong hình sau:
Hình 1.2: Bộ cộng
Bộ nhân: gồm một đầu vào và một đầu ra. Giá trị tín hiệu tại đầu ra bằng tích của tín hiệu tại đầu vào với hệ số khuếch đại a.
Hình 1.3: Bộ nhân
Bộ trễ: đây là phần tử làm chậm tín hiệu đi qua nó một mẫu. Nó có thể được tạo ra bằng các thanh ghi dịch.
Hình 1.4: Bộ trễ
1.3.2 Cấu trúc bộ lọc FIR
Một bộ lọc có đáp ứng xung hữu hạn theo thời gian có hàm truyền dạng như sau:
Và đáp ứng xung có dạng sau:
Và phương trình vi phân có dạng như sau:
Bộ lọc có bậc là M-1 trong khi có chiều dài (bằng với số hệ số) là M. Cấu trúc của bộ lọc FIR thì luôn luôn ổn định và tương đối đơn giản hơn so với cấu trúc bộ lọc IIR. Các bộ lọc FIR có thể thiết kế để đáp ứng yêu cầu pha tuyến tính, điều mà một số ứng dụng yêu cầu.
Trong phần này sẽ đề cập đến 4 loại cấu trúc:
1.3.2.1 Cấu trúc dạng trực tiếp
Phương trình sai phân được biểu diễn bởi một chuỗi các bộ trễ do không có đường phản hồi.
b0 |
z-1 |
b1 |
z-1 |
b2 |
z-1 |
b3 |
z-1 |
b4 |
y(n) |
x(n) |
Hình 1.5: Cấu trúc bộ lọc FIR dạng trực tiếp [8] |
Do mẫu thức bằng đơn vị nên ta có cấu trúc dạng trực tiếp duy nhất. Cấu trúc trực tiếp được cho trong hình sau với M = 5.
1.3.2.2 Cấu trúc dạng ghép tầng
Hàm hệ thống H(z) được biến đổi thành tích các khâu bậc 2 với các hệ số thực. Các khâu này có thể thực hiện ở dạng trực tiếp và bộ lọc tổng thể có dạng ghép tầng các khâu bậc hai.
B1,1 |
z-1 |
z-1 |
z-1 |
y(n) |
x(n) |
B2,1 |
B3,1 |
b0 |
B1,2 |
z-1 |
z-1 |
z-1 |
B2,2 |
B3,2 |
Hình 1.6: Cấu trúc bộ lọc FIR dạng ghép tầng [8] |
Trong đó: K bằng M/2 và các hệ số Bk,1 và Bk,2 là các số thực đại diện cho các khâu bậc 2. Cấu trúc dạng ghép tầng được cho trong hình sau với M=7:
1.3.2.3 Cấu trúc dạng pha tuyến tính
Đối với các bộ lọc chọn tần, người ta mong muốn có đáp ứng pha là hàm tuyến tính theo tần số, nghĩa là:
Trong đó: β = 0 hoặc và α là một hằng số.
Đối với bộ lọc FIR nhân quả có đáp ứng xung trong khoảng [0, M-1], thì các điều kiện tuyến tính là:
Xét phương trình sai phân được cho trong phương trình (1.3) với đáp ứng xung đối xứng được cho trong phương trình (1.9) ta có.
Sơ đồ khối thực hiện phương trình sai phân trên đươc mô tả trong hình dưới đây đối với cả M chẵn và M lẽ.
Đối với M lẽ, M = 7, với M chẵn M = 6.
Hình 1.7:Cấu trúc bộ lọc FIR pha tuyến tính. (a) M = 7, (b) M = 6 [8].
Từ hình 1.7 có thể thấy với cùng một bậc của bộ lọc, cấu trúc pha tuyến tính sẽ tiết kiệm được 50% các bộ nhân so với cấu trúc dạng trực tiếp.
1.3.2.4 Cấu trúc dạng lấy mẫu tần số
Hàm truyền H(z) của một bộ lọc FIR có thể tái lập từ các mẫu của nó trên vòng tròn đơn vị.
Từ công thức trên, ta đạt được công thức tính H(z) như sau:
Từ phương trình (2.12) trên có thể thấy rằng DFT của H(k) được dùng trong cấu trúc này thay cho đáp ứng xung h(n) hay phương trình sai phân. Hàm hệ thống H(z) ở trên dẫn tới cấu trúc như sau:
x(n) |
1/4 |
W40 |
H(3) |
H(2) |
H(1) |
H(0) |
W41 |
W42 |
W43 |
-z- 4 |
y(n) |
Hình 1.8: Cấu trúc bộ lọc dạng lấy mẫu tần số với M = 4 [8] |
Một vấn đề từ cấu trúc hình 1.8 ở trên là nó yêu cầu các hệ số phức. Trong khi đó, bộ lọc FIR luôn luôn là một bộ lọc có các hệ số thực. Một bộ lọc có các hệ số thực có được bằng cách sử dụng đặc tính đối xứng của DFT và các hệ số WM-k. Công thức (1.12) có thể viết lại dưới dạng sau:
Trong đó: đối với M lẽ, đối với M chẵn, và với k = 1, ..., L là tập bậc 2 cho bởi công thức sau:
Chú ý rằng biến đổi DFT củaH (0) và H(M/2) là các số thực và phần của công thức (1.13) được bỏ đi khi M lẽ. Sử dụng công thức (1.13) và (1.14) giả sử M = 4 ta có cấu trúc như hình sau:
Hình 1.9: Cấu trúc dạng lấy mẫu tần số M = 4 với các hệ số thực [8] |
y(n) |
1/4 |
-z- 4 |
x(n) |
2cos(2π/4) |
H(2) |
H(0) |
-cos[∠H(1)-2π/4] |
2|H(1)| |
-1 |
1 |
1 |
-z- 1 |
z- 1 |
-z- 1 |
cos[∠H(1)] |
z- 1 |
1.3.3 Cấu trúc bộ lọc IIR
Hàm truyền của một lọc IIR được cho như sau:
Trong đó an và bn là các hệ số bộ lọc. Giả định rằng với không có các tổn hao nói chung thì a0=1. Bộ lọc có bậc N nếu an ≠ 0. Phương trình sai phân của một bộ lọc IIR được biểu thị dưới dạng như sau:
Có 3 dạng cấu trúc có thể dùng để thực hiện một bộ lọc IIR gồm:
- Dạng trực tiếp: trong dạng này cấu trúc bộ lọc được xây dựng trực tiếp từ phương trình sai phân. Có 2 phần của bộ lọc gọi là phần dịch chuyển trung bình và phần đệ quy.
- Dạng ghép tầng: trong dạng này hàm hệ thống H(z) được chia thành các tập bậc 2, gọi là các biquads. Mỗi biquad được thực hiện theo dạng trực tiếp, và hàm hệ thống khi đó được biểu diễn bằng cách ghép tầng các biquad lại với nhau.
- Dạng song song: tương tự như dạng ghép tầng, nhưng sau khi phân chia H(z) thành các phần nhỏ, H(z) khi đó được biểu diễn như là một tổng các tập bậc hai. Mỗi tập bậc 2 nói trên lại được xây dựng theo dạng trực tiếp và được ghép song song với nhau để biểu diễn hàm truyền.
1.3.3.1 Cấu trúc dạng trực tiếp
Dạng trực tiếp có được bằng cách thực hiện trực tiếp phương trình sai phân bằng các bộ cộng, bộ nhân và bộ trễ. Ví dụ với M = N = 4 ta có phương trình sai phân như sau:
Cấu trúc dạng trực tiếp được phân thành 2 loại nhỏ là loại I và loại II.
-a4
|
-a3
|
-a2
|
-a1
|
b1
|
b3
|
b2
|
b0
|
z-1 |
y(n) |
x(n) |
|
Hình 1.10: Cấu trúc bộ lọc IIR dạng trực tiếp I [8] |
b4
|
z-1 |
z-1 |
z-1 |
z-1 |
z-1 |
z-1 |
z-1 |
Dạng trực tiếp I:
b1
|
b3
|
b2
|
b0
|
-a1 |
y(n) |
x(n) |
|
Hình 1.11: Cấu trúc bộ lọc IIR dạng trực tiếp II [8] |
b4
|
-a2 |
-a3 |
-a4 |
z-1 |
z-1 |
z-1 |
z-1 |
Dạng trực tiếp II:
1.3.3.2 Cấu trúc dạng ghép tầng:
Trong dạng này, hàm hệ thống H(z) được biểu diễn như là tích các tập bậc 2 với các hệ số thực.
Với N là số nguyên và chẵn, khi đó:
Với K = N/2 và Bk,1, Bk,2, Ak,1, Ak,2 là các số thực đại điện cho các hệ số của tập bậc 2. Một tập bậc 2 có hàm truyền của nó như sau:
Trong đó: Y1(z) = b0X(z) và YK+1(z) = Y(z).
Bk,1
|
Bk,2
|
-Ak,1 |
yk+1(n) |
yk(n)= xk+1(n) |
|
Hình 1.12: Cấu trúc một biquad [8] |
-Ak,2 |
z-1 |
z-1 |
Các tập bậc 2 được gọi là các biquad và được biểu diễn như hình sau:
Giới thiệu:
Ngày nay, với sự phát triển không ngừng của khoa học kỹ thuật, các hệ thống tương tự dần được thay thế bằng các hệ thống số. Tuy nhiên, trong bất kì hệ thống nào thì vai trò của bộ lọc cũng quan trọng và không thể thay thế được. Các bộ lọc số với những ưu điểm so với bộ lọc tương tự như: độ gợn trong dải thông và dải chắn nhỏ hơn, dải chuyển tiếp của bộ lọc số cũng nhỏ hơn so với bộ lọc tương tự và đặc biệt là bộ lọc số FIR có thể đáp ứng tốt yêu cầu pha tuyến tính, một yêu cầu quan trọng trong các ứng dụng viễn thông cho nên các bộ lọc số đã dần thay thế các bộ lọc tương tự trong nhiều hệ thống.
Từ tầm quan trọng của các bộ lọc số trong các hệ thống số, đặc biệt là trong truyền dẫn tín hiệu số, với mong muốn tìm hiểu rõ hơn về cấu trúc và cách thức thiết kế một bộ lọc số FIR, em chọn đề tài nghiên cứu cho đồ án tốt nghiệp là “thiết kế bộ lọc số thông thấp có tần số cắt fc = 850kHz”.
Nội dung đồ án gồm 4 chương:
Chương 1: Tổng quan về bộ lọc số.
Trong chương này trình bày các vấn đề tổng quan về một bộ lọc số bao gồm các các chỉ tiêu kỹ thuật và cấu trúc của các bộ lọc số. Các chỉ tiêu kỹ thuật bao gồm các thông số của bộ lọc trong miền thời gian và trong miền tần số. Cấu trúc bộ lọc số gồm cấu trúc bộ lọc FIR và bộ lọc IIR. Tùy thuộc vào loại bộ lọc đã thực hiện là FIR hay IIR mà ta sẽ chọn cấu trúc phù hợp.
Chương 2: Thiết kế bộ lọc FIR
Chương 2 giới thiệu cơ sở toán học và các phương pháp để thiết kế một bộ lọc FIR bao gồm phương pháp cửa sổ, phương pháp lấy mẫu tần số, phương pháp equiripple. Ngoài ra còn giới thiệu phương pháp thiết kế bộ lọc FIR có đáp ứng phẳng tối đa, sử dụng hàm truyền được cho bởi Vaidyanathan, 1984:
Và bộ lọc thích nghi sử dụng thuật toán LMS:
Bảng 2.5 thuật toán LMS cho bộ lọc FIR thích nghi [3]
Các thông số: |
p = bậc bộ lọc μ = kích thước bước |
Khởi tạo: |
w0 = 0 |
Quá trình tính toán: |
For n = 0, 1, 2, ... (a) y(n) = wnTx(n) (b) e(n) = d(n) – y(n) (c) wn+1 = wn + μe(n)x*(n) |
Chương 3: Tính toán, thiết kế bộ lọc FIR thông thấp
Trong chương này sử dụng các kiến thức lý thuyết từ chương 1 và chương 2 để tính toán thiết kế một bộ lọc FIR đáp ứng các yêu cầu cho trước.
3.2.1 Thiết kế bộ lọc FIR maximally flat
Áp dụng hàm truyền ở công thức 2.47, với các thông số K = 17 và L = 9, bộ lọc có bậc M = 50 và có các đáp ứng như sau:
Hình Bảng 3.2: Các đáp ứng của bộ lọc FIR maximally flat
3.2.2 Thiết kế bằng phương pháp cửa sổ
Đáp ứng của bộ lọc thông thấp lí tưởng:
Cửa sổ Blackman:
Các đáp ứng của bộ lọc như sau:
Hình 3.4: bộ lọc thông thấp dùng cửa sổ Blackman với miền chuyển tiếp 0.2.
3.2.3 Thiết kế bằng phương pháp lấy mẫu tần số
Đáp ứng biên độ đã lấy mẫu:
Đáp ứng pha:
Đáp ứng của bộ lọc:
Các đáp ứng của bộ lọc thiết kế theo phương pháp lấy mẫu tần số như sau:
Hình 3.7: đáp ứng của bộ lọc FIR thông thấp dùng phương pháp lấy mẫu tần số với M = 40 và Tr = 0.1π.
3.2.4 Thiết kế bộ lọc FIR thích nghi
Trong phần này sử dụng thuật toán thích nghi trong cho trong bảng 2.5 vào các tác vụ như lọc nhiễu, xác định hệ thống.
Hình 3.13: Kết quả lọc nhiễu khi không có tín hiệu tương quan
Chương 4: Mô phỏng các bộ lọc số bằng FDAtool.
Trong chương 4 sử dụng công cụ FDAtool có sẵn trong Matlab để mô phỏng các bộ lọc số gồm bộ lọc FIR maximally flat và FIR Blackman. Từ các kết quả cho ra bởi FDAtool so sánh với các kết quả đã tính toán thiết kế được trong chương 3 để kiểm tra chất lượng các bộ lọc đã thiết kế.
Kết luận và hướng phát triển đề tài
Đồ án này đã tập trung nghiên cứu các vấn đề liên quan đến cấu trúc và các phương pháp thiết kế bộ lọc FIR. Qua đó, cung cấp cái nhìn tổng quan về bộ lọc số gồm các thông số kỹ thuật và các cấu trúc cơ bản của các loại bộ lọc số. Sau đó, đi sâu nghiên cứu các phương pháp, các bước và các thuật toán có liên quan để thiết kế nên một bộ lọc FIR. Đồ án cũng đã áp dụng các lý thuyết trên vào thiết kế bộ lọc cụ thể với tần số cắt bằng 850kHz, qua đó nắm rõ hơn các tính chất, các phương pháp thiết kế và rút ra được các ưu khuyết điểm của từng phương pháp để từ đây, với các yêu cầu cụ thể thì có thể lựa chọn phương pháp thiết kế tối ưu nhất.
Bên cạnh các kết quả đã đạt được, đồ án cũng có một số nhược điểm như sau:
- Chỉ hoàn thiện các thiết kế trên giấy và chạy mô phỏng trên máy tính mà chưa đi đến các sản phẩm trên thực tế.
- Chưa ứng dụng được tính chất của bộ lọc có đáp ứng phẳng tối đa (FIR maximally flat) vào thực tế.
- Chưa nghiên cứu kĩ cơ sở toán học của bộ lọc thích nghi.
Hướng phát triển đề tài:
- Từ các kết quả đã tính toán được, tìm hiểu về công nghệ FPGA và ngôn ngữ VHDL để xây dựng các sản phẩm thực tế qua đó kiểm chứng khả năng hoạt động, tính ổn định và hiệu quả của các thuật toán đưa ra.
- Ứng dụng tính chất của bộ lọc FIR maximally flat vào lĩnh vực như xử lí tín hiệu đa thức...
- Tìm hiểu sâu hơn về bộ lọc thích nghi gồm: giải pháp Wiener, phương pháp giảm bước nhanh nhất, thuật toán LMS, RLS, NLMS.
.....................
Nhận xét:
Từ các hình vẽ 3.7, 3.8 có thể thấy được rằng: với các bộ lọc dùng phương pháp lấy mẫu tần số cùng bậc M, việc tăng giảm độ rộng miền chuyển tiếp làm thay đổi hệ số suy giảm As. Độ rộng miền chuyển tiếp càng nhỏ, As càng giảm và càng không đạt yêu cầu. Tuy nhiên, để đảm bảo As thì phải tăng độ rộng miền chuyển tiếp làm bộ lọc mất đặc tính gần lí tưởng.
Để đảm bảo được cả As, Rp và Tr thỏa mản các điều điện bài toán thì cần tăng chiều dài bộ lọc. Khi tăng chiều dài bộ lọc lên M = 60 và lấy 2 mẫu trong miền chuyển tiếp thì các giá trị độ gợn trong dải thông và độ suy giảm tối đa trong dải chắn mới đáp ứng các yêu cầu ban đầu của bài toán.
Phương pháp lấy mẫu tần số cũng có nhược điểm là không thể kiểm soát độc lập các thông số độ gợn ở dải thông Rp và độ suy giảm ở dải chắn As mà phải chấp nhận chúng sau khi thiết kế.
Thực hiện tính toán và thiết kế bộ lọc số theo phương pháp lấy mẫu tần số thì có thể phức tạp hơn so với các phương pháp trên. Bộ lọc có cấu trúc lấy mẫu tần số cũng phức tạp và khó khăn trong việc tính toán hơn nhiều so với các phương pháp trên. Tuy nhiên, cấu trúc lấy mẫu tần số làm giảm đáng kể số tầng của bộ lọc. Như hình 3.9 ở trên thì một bộ lọc có bậc M = 40 chỉ có 9 tầng, tiết kiệm tối đa các phần tử cấu thành và làm gọn cấu trúc của bộ lọc.
3.2.4 Thiết kế bộ lọc FIR thích nghi
3.2.4.1 Bộ lọc FIR thích nghi trong ứng dụng nhận dạng hệ thống:
Trong ứng dụng này, giả sử tín hiệu đầu vào là tín hiệu hàm sin đã bị ảnh hưởng bởi nhiễu ngẫu nhiên vào hệ thống chưa biết là bộ lọc FIR maximally flat, sau quá trình thích nghi, sẽ kiểm tra kết quả đầu ra của bộ lọc thích nghi xem bộ lọc thích nghi đã mô hình hóa chính xác hệ thống cần nhận dạng hay chưa.
Kết quả của bộ nhận dạng hệ thống:
Hình 3.10: Kết quả của bộ xác định hệ thống sử dụng bộ lọc FIR thích nghi
Nhận xét:
Đáp ứng xung đưa ra bởi thuật toán thích nghi hoàn toàn giống với đáp ứng xung của bộ lọc maximally flat được đưa ra trong hình 3.2. Bộ nhận dạng hệ thống đã mô hình hóa chính xác đặc tính của hệ thống chưa biết cần xác định.
Để làm rõ hơn tính hội tụ của thuật toán LMS, giả sử hệ thống chưa biết là một bộ lọc bậc 2 có phương trình vi phân là: y(n) = 1.2728x(n – 1) – 0.81x(n – 2). Tốc độ hội tụ của thuật toán thích nghi được biểu diễn trong hình sau:
Hình 3.11: Tốc độ hội tụ của thuật toán LMS
Nhận xét:
Sau tiến trình thích nghi, các hệ số bộ lọc wn(k) với k = 1, 2 đưa ra bởi thuật toán LMS sẽ hội tụ về các giá trị wn(1) = 1.2728 và wn(2) = –0.81 sau một số vòng lặp nhất định.
3.2.4.2 Bộ lọc thích nghi ứng dụng trong loại bỏ can nhiễu
a) Loại bỏ can nhiễu khi có tính hiệu tham chiếu
Từ sơ đồ hình 2.4, giả sử d(n) là tín hiệu sin và các tín hiệu nhiễu có dạng bậc một như sau:
d(n) = sin(0.05πn)
v1(n) = 0.1v1(n-1) + g(n)
v2(n) = – 0.1v2(n-1) + g(n).
Kết quả lọc nhiễu từ bộ lọc thích nghi như sau:
Hình 3.12: Kết quả lọc nhiễu trong trường hợp có tín hiệu tương quan
Nhận xét:
Bộ lọc thích nghi đã sử dụng tín hiệu tham chiếu để ước lượng tín hiệu nhiễu, sau một thời gian khoảng 100 vòng lặp, tín hiệu nhiễu ước lượng từ tín hiệu tham chiếu trở nên gần giống với tín hiệu nhiễu thực tế hơn, tín hiệu đầu ra do đó cũng trở nên mượt hơn, biên độ đỉnh cũng nhỏ hơn và gần giống với tín hiệu hình sin hơn.
b) Loại bỏ can nhiễu khi không có tín hiệu tham chiếu
Khi không thể biết được các tín hiệu tham chiếu thì có một cách khác để lọc nhiễu là làm trễ tín hiệu đầu vào đi một số mẫu sau đó đưa vào bộ lọc thích nghi để thuật toán thích nghi ước lượng nhiễu đã tổ hợp trong tín hiệu vào.
Tính hiệu sau quá trình lọc nhiễu được biểu diễn ở hình 3.13 sau:
Hình 3.13: Kết quả lọc nhiễu khi không có tín hiệu tương quan
Nhận xét:
Sau khoảng 50 mẫu để hàm sai số lỗi hội tụ, tín hiệu sau khi ra khỏi bộ lọc thích nghi trở nên mượt hơn và có mức biên độ đỉnh gần giống với tín hiệu mong muốn hơn so với tín hiệu nhiễu ban đầu.
3.3 Kết luận chương
Trên cở sở lí thuyết về bộ lọc số và cấu trúc các bộ lọc số đã trình bày trong các chương trước, chương này đã cụ thể hóa lí thuyết bằng cách thiết kế một bộ lọc số đáp ứng các yêu cầu cho trước bằng các phương pháp khác nhau để có thể thấy được các ưu nhược điểm của từng phương pháp.
Bộ lọc FIR maximally flat có ưu điểm là đáp ứng biên độ phẳng tối đa tuy nhiên để có được đáp ứng phẳng tối đa đó thì bậc của bộ lọc là lớn hơn nhiều so với các bộ lọc FIR khác có cùng độ rộng miền chuyển tiếp. Sử dụng cấu trúc ghép tầng cho bộ lọc này giúp làm giảm tầng bộ lọc đi một nữa đồng thời đơn giản hóa việc tính toán thông số của các tầng.
Bộ lọc FIR dùng cửa sổ Blackman có các bước tính toán thiết kế đơn giản và đáp ứng được các yêu cầu đề ra nhưng bậc bộ lọc vẫn còn lớn khi giảm độ rộng miền chuyển tiếp.
Dùng phương pháp lấy mẫu tần số và lấy 2 mẫu trong miền chuyển tiếp cho các kết quả Rp và As đáp ứng được yêu cầu ban đầu của bộ lọc và đồng thời bậc của bộ lọc cũng nhỏ hơn khi thiết kế bằng hai phương pháp trên. Kết hợp với việc sử dụng cấu trúc lấy mẫu tần số thì bậc bộ lọc giảm đi nhiều lần và do đó tiết kiệm rất nhiều so với cấu trúc dạng trực tiếp và dạng ghép tầng.
Bộ lọc thích nghi có ưu điểm là các hệ số bộ lọc có thể thay đổi, do đó, có thể mô hình hóa các hệ thống khác nhau hoặc loại bỏ can nhiễu ra khỏi tín hiệu mong muốn. Tuy nhiên, nhược điểm là bộ lọc thích nghi yêu cầu thuật toán phức tạp và cần thực hiện trên các công cụ chuyên dụng như DSP chip.
Chương 4:
MÔ PHỎNG CÁC BỘ LỌC SỐ BẰNG FDAtool
4.1 Mở đầu chương
Trong chương này sẽ sử dụng công cụ FDAtool trong Matlab để thực hiện mô phỏng các bộ lọc đã tính toán thiết kế trong chương 3. Qua đó so sánh kết quả được đưa ra bởi FDAtool và kết quả đã đạt được trong chương 3 nhằm đánh giá chất lượng các bộ lọc đã thiết kế.
Nộ dung chương:
- Mô phỏng bộ lọc FIR có đáp ứng phẳng tối đa bằng FDAtool.
- Mô phỏng bộ lọc FIR thiết kế theo phương pháp cửa sổ Blackman bằng FDAtool.
4.2 Mô phỏng bộ lọc FIR có đáp ứng phẳng tối đa bằng FDAtool
Yêu cầu: thiết kế bộ lọc FIR thông thấp có đáp ứng có độ phẳng tối đa (FIR maximally flat) có tần số cắt fc = 850 kHz.
Chọn tần số lấy mẫu flấy mẫu = 4250kHz. Chọn bậc bộ lọc M = 50.
Các đáp ứng xung, đáp ứng pha và đáp ứng độ lớn của bộ lọc FIR maximally flat được đưa ra bởi công cụ FDAtool như sau:
Hình 4.1: Các đáp ứng của bộ lọc FIR maximally flat
Công cụ FDAtool đã sử dụng cấu trúc ghép tầng để đưa ra cấu trúc cho bộ lọc FIR maximally flat ở trên. Bộ lọc có cấu trúc gồm 25 tầng, mỗi tầng là một tập bậc 2 với các giá trị các bộ khuếch đại và bộ trễ được trình bày cụ thể trong hình sau:
Hình 4.2: Cấu trúc bộ lọc FIR maximally flat đưa ra bởi FDAtool M = 50
Nhận xét:
Từ hình 4.1 có thể thấy các đáp ứng xung, đáp ứng độ lớn và đáp ứng pha được đưa ra bởi FDAtool có dạng giống với các đáp ứng đưa ra trong hình 3.2 ở chương 3. Đáp ứng xung có dạng giống hoàn toàn, chỉ khác nhau về biên độ các xung. Đáp ứng pha cũng giống nhau từ tần số ω = 0 đến ω = 0.8π(rad), như vậy là giống nhau hoàn toàn trong dải tần làm việc. Đáp ứng độ lớn hoàn toàn giống nhau. Như vậy, bộ lọc FIR maximally flat thiết kế trong chương 3 hoàn toàn thỏa mản tính chất có đáp ứng phẳng tối đa trong miền tần số.
Công cụ FDAtool đưa ra cấu trúc bộ lọc trên ở dạng ghép tầng. Sử dụng cấu trúc dạng ghép tầng có các ưu điểm sau: Giảm đi một nữa số tầng của bọ lọc, làm bộ lọc gọn hơn rất nhiều so với cấu trúc trực tiếp. Đối với các bộ lọc quá dài thì việc giảm đi một nữa vẫn chưa là tối ưu nhất, nhưng khi bậc bộ lọc là không quá 140 thì cấu trúc trên vừa đảm bảo tính tiết kiệm vừa đảm bảo quá trình tính toán hệ số các bộ khuếch đại không bị quá nhiều vòng lặp và qua đó đơn giản trong thiết kế cũng như thi công.
4.3 Mô phỏng bộ lọc FIR thiết kế theo phương pháp cửa sổ Blackman bằng FDAtool
Yêu cầu: thiết kế bộ lọc FIR dùng phương pháp cửa sổ. Với tần số cắt fc = 850 kHz.
Để tiện so sánh đối chiếu, chọn loại cửa sổ Blackman và có các thông số sau: tần số lấy mẫu fs = 4250kHz, bậc bộ lọc M = 55.
Hình 4.4: Các đáp ứng của bộ lọc thông thấp dùng cửa sổ Blackman
Cấu trúc dạng trực tiếp của bộ lọc được đưa ra bởi FDAtool như sau:
Hình 4.4: Cấu trúc bộ lọc FIR Blackman đưa ra bởi FDAtool
Nhận xét:
Cấu trúc của bộ lọc FIR đưa ra bởi FDAtool có các hệ số khuếch đại ở các tầng đầu tiên là khác không trong khi cấu trúc bộ lọc trong hình 3.6 là bằng không. Tuy khác không nhưng các hệ số bộ khuếch đại các tầng đầu tiên trên hình 4.4 cũng rất nhỏ cỡ 10-5 hoặc nhỏ hơn nên cũng có thể coi xấp xỉ bằng không. Do đó, có thể nói cấu trúc của hai bộ lọc là tương đương nhau.
Các ưu điểm khi sử dụng cấu trúc trực tiếp cho bộ lọc trên gồm:
Đối với các bộ lọc có bậc không lớn thì sử dụng cấu trúc trực tiếp thuận tiện và đơn giản trong tính toán cũng như thi công. Đối với các bộ lọc có số tầng lớn thì cấu trúc trực tiếp làm cho bộ lọc trở nên dài và phức tạp, khi sử dụng quá nhiều các phần tử logic cũng cần tính toán đến độ trễ của mỗi phần tử.
4.4 Kết luận chương
Qua các hình vẽ các đáp ứng và cấu trúc bộ lọc đưa ra bởi công cụ FDAtool trong Matlab có thể nhận thấy:
Công cụ FDAtool đã sử dụng cấu trúc ghép tầng cho bộ lọc FIR maximally flat. Công cụ FDAtool chỉ cho phép thiết kế bộ lọc FIR maximally flat loại 1 và bậc bộ lọc không quá 140 do đó việc chọn cấu trúc ghép tầng mang lại các ưu điểm sau: Giảm đi một nữa số tầng của bộ lọc, làm bộ lọc gọn hơn rất nhiều so với cấu trúc trực tiếp. Đối với các bộ lọc quá dài thì việc giảm đi một nữa vẫn chưa là tối ưu nhất, nhưng khi bậc bộ lọc là không quá 140 thì cấu trúc trên vừa đảm bảo tính tiết kiệm vừa đảm bảo quá trình tính toán hệ số các bộ khuếch đại không bị quá nhiều vòng lặp và qua đó đơn giản trong thiết kế cũng như thi công.
Đối với bộ lọc dùng cửa sổ Blackman thì công cụ FDAtool dùng cấu trúc trực tiếp để thiết kế. Các ưu điểm khi sử dụng cấu trúc trực tiếp cho bộ lọc trên gồm: Đối với các bộ lọc có bậc không lớn thì sử dụng cấu trúc trực tiếp thuận tiện và đơn giản trong tính toán cũng như thi công. Bộ lọc dùng phương pháp cửa sổ thì không giới hạn số tầng, do đó để đảm bảo các yêu cầu về miền chuyển tiếp, As và Rp thì đôi khi bậc bộ lọc rất lớn, nếu dùng các cấu trúc ghép tầng và lấy mẫu tần số thì quá trình tính toán trở nên phức tạp và tốn nhiều vòng lặp để xác định các hệ số trong cấu trúc.
Tuy nhiên, việc dùng cấu trúc trực tiếp không thay đổi số tầng bộ lọc, do đó làm bộ lọc dài, phức tạp và không tiết kiệm các phần tử cấu thành. Ngoài ra, khi số bâc bộ tăng lên thì cần tính đến độ trễ của các phần tử logic cấu thành nên bộ lọc.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI
Đồ án này đã tập trung nghiên cứu các vấn đề liên quan đến cấu trúc và các phương pháp thiết kế bộ lọc FIR bao gồm: Các chỉ tiêu kỹ thuật và các cấu trúc cơ bản của bộ lọc số, các bước thiết kế một bộ lọc số đều bắt đầu từ các chỉ tiêu này và chỉ hoàn thiện khi đáp ứng các chỉ tiêu ban đầu của bài toán. Bên cạnh các phương pháp thiết kế cơ bản thường sử dụng như phương pháp cửa sổ, phương pháp lấy mẫu tần số và phương pháp cân bằng gợn sóng đồ án cũng đã tiếp cận và đưa ra một số phương pháp thiết kế mới bao gồm thiết kế bộ lọc FIR có đáp ứng phẳng tối đa và bộ lọc FIR thích nghi. Từ các kiến thức lí thuyết trong các chương 1 và 2, chương 3 đã đưa ra lưu đồ thuật toán và quá trình tính toán thiết kế các bộ lọc FIR và cấu trúc bộ lọc theo các phương pháp trên và so sánh các ưu, nhược điểm của mỗi phương pháp. Từ yêu cầu bài toán cụ thể, dựa vào các ưu, nhược điểm trên có thể lựa chọn cách thiết kế phù hợp nhất. Chương 4 sử dụng công cụ FDAtool của matlab để mô phỏng các bộ lọc số FIR và so sánh với các bộ lọc đã tính toán thiết kế trong chương 3. Từ kết quả so sánh, có thể nhận xét các thiết kế trên là chính xác và có thể sử dụng được trong thực tế.
Bên cạnh các kết quả đã đạt được, đồ án cũng có một số nhược điểm như chỉ hoàn thiện các thiết kế trên giấy và chạy mô phỏng trên máy tính mà chưa đi đến các sản phẩm trên thực tế. Chưa ứng dụng được tính chất của bộ lọc có đáp ứng phẳng tối đa vào thực tế. Do khả năng dịch tài liệu còn hạn chế nên một số từ chuyên ngành có thể dịch chưa sát nghĩa hoặc chưa đúng gây khó hiểu cho người đọc.
Hướng phát triển đề tài:
Từ các kết quả đã tính toán được, tìm hiểu về công nghệ FPGA và ngôn ngữ VHDL để xây dựng các sản phẩm thực tế qua đó kiểm chứng khả năng hoạt động, tính ổn định và hiệu quả của các thuật toán đưa ra.
Tìm hiểu sâu hơn về bộ lọc thích nghi và thuật toán thích nghi bao gồm: các cơ sở toán học của thuật toán thích nghi như giải pháp Wiener, phương pháp giảm bước nhanh nhất, thuật toán LMS, RLS, NLMS. Sau khi nắm rõ hơn về bộ lọc thích nghi, xây dựng một bộ lọc thích nghi ứng dụng lọc nhiễu trên các chip DSP để kiểm chứng hoạt động và ứng dụng trong thực tế như các hệ thống âm thanh chất lượng cao hoặc các thiết bị đo lường chính xác cao.
TÀI LIỆU THAM KHẢO
[1] Phùng Trung Nghĩa, Đỗ Huy Khôi,”Giáo trình xử lí tín hiệu số 2”, Khoa Công nghệ thông tin, Đại học Thái Nguyên, 2008.
[2] Magdy T. Hanna, “Design of linear phase FIR filter with a maximally flat passband”, Department of Electrical Engineering, University of Bahrain.
[3] Monson H. Hayes, “Statistical digital signal processing and modeling”, John Wiley & Sons Inc 1996.
[4] Miroslav Vlček, Pavel Zahradník, Rolf Unbehauen, “Analytical Design ò FIR Filter”, IEEE transactions on signal processing, VOL. 48, NO. 9, September 2000.
[5] Paulo S. R. Diniz, Eduardo A. B. da Silva, Sergio L. Netto, “Digital Signal Processing: System Analysis and Diesign”, Cambridge University Press 2010.
[6] S. Samadi, T. Cooklev, A. Nishihara, N. Fujii, “A Multiplierless Structure for Maximally Flat Linear Phase FIR Filter”, Department of Physical Electronics, Tokyo Institude of Technology 1993.
[7] Vijay K.Madisetti and Douglas B. Williams, “Digital Signal Processing Handbook”, CRC Press LLC 1999.
[8] Vinay K. Ingle, John G. Proakis, “Digital signal processing using MATLAB V.4”, PWS Publishing Company 1997.
[9] V. John Mathews, Scott C. Douglas, “Adaptive Filter”, Upper Saddle River, NJ: Prentice-Hall 2003.
PHỤ LỤC
- Code matlab mô phỏng bộ lọc FIR maximally flat và các hàm liên quan
clear all;
h=1;
q=1;
c=1;
%c=[1 17 153 969 4845 20349 74613 245157 735471];
L=9;
K=17;
for n=1:L-1
q= conv(q,[-1 2 -1]/4 );
q= conv(q,1^-(L-1-n));
c=binom(K-1+n,n); % tinh cac he so nhi thuc dn
h= [0 h 0];
h = h + c*q;
end
for k= 1:K;
h = conv(h,[1 2 1]/4);
end;
[bo,B,A]=dir2cas(h,1); %tinh cac he so b0, A,B de xay dung cau truc bo loc
n=0:50;
[db,mag,pha,grd,w] = freqz_m(h,[1]);
subplot(2,2,1);
stem(n,h); grid;
axis([0 50 -0.1 0.5]);
title('dap ung xung');
xlabel('n'); ylabel('h(n)');
subplot(2,2,2);
plot(w/pi,db); grid;
title('dap ung do lon theo dB');
xlabel('tan so theo don vi pi'); ylabel('Decibels');
[H,w] = freqz(h,[1],1000,'whole');
H = (H(1:1:501))';w = (w(1:1:501))';
subplot(2,2,3);
plot(w/pi,-phase(H)); grid;
title('dap ung pha');
xlabel('tan so theo don vi pi'); ylabel('phase');
subplot(2,2,4);
plot(w/pi,mag);
axis([0 1 -0.1 1.1]); grid;
title('dap ung do lon');
xlabel('tan so theo don vi pi'); ylabel('mag');
hàm binom
function a = binom(n,k)
% a = binom(n,k)
% BINOMIAL COEFFICIENTS
% allowable inputs:
% n : integer, k : integer
% n : integer vector, k : integer
% n : integer, k : integer vector
% n : integer vector, k : integer vector (of equal dimension)
nv = n;
kv = k;
if (length(nv) == 1) & (length(kv) > 1)
nv = nv * ones(size(kv));
elseif (length(nv) > 1) & (length(kv) == 1)
kv = kv * ones(size(nv));
end
a = nv;
for i = 1:length(nv)