Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc...
Transcript of Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc...
1
Bộ Lao động - Thương binh và Xã hội
tổng cục dạy nghề
_______________
Chương trình Bồi dưỡng công nghệ mới
Thiết kế bộ lọc số
(Dùng bồi dưỡng nâng cao năng lực cho GVDN)
Hà Nội, năm 2009
2
Contents
MÔDUL: TÍN HIỆU VÀ HỆ THỐNG SỐ....................................................... 23
TÍN HIỆU SỐ VÀ CÁC PHƯƠNG PHÁP BIỂU DIỄN TÍN HIỆU SỐ ....... 23
A. Lý thuyết.............................................................................................. 23
1. Tín hiệu số và biểu diễn tín hiệu số ................................................... 23
2. Một số dãy tín hiệu rời rạc cơ bản..................................................... 25
3. Một số khái niệm cơ bản ................................................................... 27
4. Một số phép tính trên tín hiệu rời rạc ................................................ 28
B. Thực hành ............................................................................................ 28
1. Giới thiệu về Matlab ......................................................................... 28
2. Khởi động và làm việc trong Matlab ................................................. 29
3. Các lệnh thông dụng trong Matlab .................................................... 31
4. Biểu diễn và biến đổi tín hiệu số trong Matlab .................................. 33
C. Bài tập.................................................................................................. 43
Bài tập kết hợp với Matlab............................................................................ 43
HỆ THỐNG TUYẾN TÍNH BẤT BIẾN THỜI GIAN LTI .......................... 46
A. Lý thuyết.................................................................................................. 46
1. Hệ thống tuyến tính bất biến LTI .......................................................... 46
2. Hệ thống tuyến tính bất biến nhân quả .............................................. 49
3. Hệ thống tuyến tính bất biến ổn định................................................. 50
4. Phương trình sai phân tuyến tính hệ số hằng (PT-SP-TT-HSH) ........ 51
B. Thực hành ................................................................................................ 57
1. Hệ thống tuyến tính bất biến ................................................................. 57
2. Khảo sát các tính chất của hệ thống tuyến tính bất biến......................... 60
C. Bài tập.................................................................................................. 66
1. Bài tập củng cố lý thuyết................................................................... 66
2. Một số bài tập với Matlab ................................................................. 68
BIẾN ĐỔI Z ................................................................................................. 69
A. Lý thuyết.................................................................................................. 69
1. Biến đổi Z ............................................................................................. 69
2. Biến đổi Z ngược .................................................................................. 71
3
3. Các tính chất của biến đổi Z ................................................................. 74
4. Biểu diễn hệ thống trong miền Z ....................................................... 75
B. Thực hành ................................................................................................ 86
1. Bài tập củng cố lý thuyết ....................................................................... 86
2. Bài tập với Matlab................................................................................. 87
C. Bài tập.................................................................................................. 93
BIỂU DIỄN TÍN HIỆU VÀ HỆ THỐNG RỜI RẠC TRÊN MIỀN TẦN SỐ LIÊN TỤC.................................................................................................... 96
A. Lý thuyết.................................................................................................. 96
1. Biến đổi Fourier của tín hiệu rời rạc trong miền tần số liên tục ............. 96
2. Biến đổi Fourier ngược ....................................................................... 105
3. Các tính chất của biến đổi Fourier ....................................................... 106
4. Biểu diễn tín hiệu và hệ thống rời rạc trong miền tần số liên tục ......... 107
B. Thực hành .............................................................................................. 110
1. Bài tập củng cố lý thuyết ..................................................................... 112
2.Bài tập với Matlab................................................................................ 113
C. Bài tập................................................................................................ 129
MÔDUL: THIẾT KẾ BỘ LỌC SỐ ................................................................ 131
BIỂU DIỄN TÍN HIỆU VÀ HỆ THỐNG RỜI RẠC TRÊN MIỀN TẦN SỐ RỜI RẠC.................................................................................................... 131
A. Lý thuyết............................................................................................ 131
1. Biến đổi Fourier thời gian rời rạc .................................................... 131
2. Các tính chất của phép biến đổi Fourier tần số rời rạc đối với các dãy có chiều dài hữu hạn. .............................................................................. 133
3. Tích chập phân đoạn ....................................................................... 135
4. Khôi phục biến đổi Z và biến đổi Fourier từ DFT ........................... 138
B. Thực hành .......................................................................................... 139
Bài tập với Matlab................................................................................... 139
C. Bài tập ................................................................................................ 156
BIẾN ĐỔI FOURIER NHANH(FFT) VÀ PHÂN TÍCH PHỔ.................... 160
A. Lý thuyết............................................................................................ 160
1. Độ phức tạp tính toán của DFT ....................................................... 160
2. Thuật toán FFT cơ số 2 phân chia theo thời gian ( FFT – R2) .............. 162
4
B. Thực hành .......................................................................................... 168
1.Nhân chập nhanh dùng FFT ................................................................. 169
2.Phân tích phổ dùng FFT ....................................................................... 169
3. Dùng FFT để tính mật độ phổ công suất của tín hiệu nhiễm tạp âm .... 171
C. Bài tập................................................................................................ 173
THIẾT KẾ BỘ LỌC SỐ CÓ ĐÁP ỨNG XUNG CHIỀU DÀI HỮU HẠN FIR................................................................................................................... 175
A. Lý thuyết............................................................................................ 175
1. Bộ lọc số FIR .................................................................................. 175
2. Các đặc trưng của bộ lọc FIR pha tuyến tính................................... 176
3. Đáp ứng tần số của các bộ lọc FIR pha tuyến tính........................... 181
4. Tổng hợp bộ lọc FIR có pha tuyến tính sử dụng phương pháp cửa sổ. 186
B. Thực hành .......................................................................................... 192
1.Thiết kế các mạch lọc số FIR dùng các hàm cửa sổ.............................. 194
2.Thiết kế mạch lọc số FIR thông dải và chặn dải ................................... 198
C. Bài tập................................................................................................ 205
THIẾT KẾ BỘ LỌC SỐ CÓ ĐÁP ỨNG XUNG CHIỀU DÀI VÔ HẠN IIR................................................................................................................... 207
A. Lý thuyết............................................................................................ 207
1.Cơ sở tổng hợp bộ lọc số IIR................................................................ 208
2.Phương pháp bất biến xung .................................................................. 209
3.Phương pháp biến đổi song tuyến......................................................... 212
4. Bộ lọc tương tự Butterworth................................................................ 214
5. Bộ lọc tương tự Chebyshev ................................................................. 215
B. Thực hành .......................................................................................... 218
Thiết kế mạch lọc số IIR dùng Matlab .................................................... 218
C. Bài tập................................................................................................ 228
Phụ lục A: Giới thiệu về Matlab ................................................................. 230
PHỤ LỤC B: CÁC HÀM THƯ VIỆN THÔNG DỤNG TRONG TOOLBOX - DSP / XỬ LÝ TÍN HIỆU SỐ ................................................................... 244
5
6
NỘI DUNG CỦA CHƯƠNG TRÌNH 1. Thông tin chung
CHƯƠNG TRÌNH BỒI DƯỠNG CÔNG NGHỆ MỚI:
THIẾT KẾ BỘ LỌC SỐ
SỐ LƯỢNG
MÔ ĐUN 02
Tên công nghệ
Thiết kế bộ lọc số Thuộc nghề: Điện tử
Thời gian 120 giờ
Đối tượng Giáo viên dạy nghề
Mục tiêu chung
- Về kiến thức:
+ Các phương pháp biểu diễn, xử lý tín hiệu số
+ Biểu diễn tín hiệu và hệ thống trong miền biến số phức Z
+ Biểu diễn tín hiệu và hệ thống trong miền tần số liên tục
+ Biểu diễn tín hiệu và hệ thống trong miền tần số rời rạc k
+ Thiết kế bộ lọc số có đáp ứng xung chiều dài hữu hạn FIR
+ Thiết kế bộ lọc số có đáp ứng xung chiều dài vô hạn IIR
+ So sánh ưu nhược điểm giữa các phương pháp thiết kế bộ lọc số
- Về kỹ năng:
+ Phân tích, lựa chọn phương pháp thiết kế bộ lọc số tối ưu theo yêu cầu thực tế
+ Sử dụng phần mềm Matlab để biểu diễn, thiết kế, đánh giá các tham số các bộ lọc số
- Về thái độ
+ Tích cực học tập, rèn luyện, cập nhật kiến thức công nghệ mới của nghề
+ Vận dụng phương pháp dạy học hiện đại, tích cực hoá tư duy người học vào quá trình dạy học.
7
2. Danh mục và phân bổ thời gian cho các mô đun
THỜI GIAN (GIỜ) STT TÊN MÔ ĐUN
LT TH TỔNG
1 TÍN HIỆU VÀ HỆ THỐNG SỐ 30 42 72
2 THIẾT KẾ BỘ LỌC SỐ 18 30 48
3. Cấu trúc mô đun
THỜI GIAN (GIỜ) MÃ MÔ
ĐUN
XLS01
TÊN MÔ ĐUN
TÍN HIỆU VÀ HỆ THỐNG SỐ LT
30
TH
42
TỔN
G
72
Mục tiêu
mô đun
Sau khi học xong mô đun này, học viên có thể:
- Hiểu phương pháp biểu diễn tín hiệu số, các phép toán trên tín
hiệu số.
- Hiểu tính chất của các hệ thống tuyến tính bất biến, ổn định và
nhân quả.
- Phương trình sai phân tuyến tính hệ số hằng
- Biểu diễn tín hiệu và hệ thống trong miền Z, tần số liên tục và
tần số rời rạc k.
- Khảo sát tính chất của tín hiệu và hệ thống trên các miền biến
số phức, tần số liên tục và tần số rời rạc k.
- Sử dụng phần mềm Matlab biểu diễn, biến đổi tín hiệu số,
khảo sát các đặc trưng của tín hiệu và hệ thống số.
Điều kiện
đầu vào
- Giáo viên dạy nghề điện, điện tử có trình độ từ cao đẳng
sư phạm kỹ thuật điện, điện tử hoặc cao đẳng kỹ thuật điện,
điện tử trở lên, đã và đang tham gia giảng dạy tại các cơ sở dạy
8
nghề trong cả nước.
Đề cương
nội dung
I. Tín hiệu số và các phương pháp biểu diễn tín hiệu số
1. Tín hiệu số và biểu diễn tín hiệu số
2. Một số dãy tín hiệu rời rạc cơ bản
3. Một số khái niệm
3.1. Dãy tuần hoàn
3.2. Dãy có chiều dài hữu hạn
3.3. Dãy năng lượng và dãy công suất
4. Một số phép tính trên tín hiệu rời rạc
4.1. Tổng của hai dãy
4.2. Tích của hai dãy
4.3. Trễ (dịch)
II. Hệ thống tuyến tính bất biến thời gian (LTI)
1. Biểu diễn hệ thống
2. Đáp ứng xung
3. Hệ thống tuyến tính bất biến LTI
4. Hệ thống ổn định
5. Hệ thống nhân quả
6. Ghép nối giữa các hệ thống tuyến tính
7. Phương trình sai phân tuyến tính hệ số hằng
III. Biến đổi Z
1. Biến đổi Z
2. Biến đổi Z ngược
3. Các tính chất của biến đổi Z
4. Biểu diễn hệ thống trong miền Z
IV. Biểu diễn tín hiệu và hệ thống rời rạc trên miền tần
9
số liên tục
1. Biến đổi Fourier trong miền tần số liên tục của tín hiệu
rời rạc
2. Biến đổi Fourier ngược
3. Các tính chất của biến đổi Fourier
4. Biểu diễn tín hiệu và hệ thống trong miền tần số liên tục
V. Biểu diễn tín hiệu và hệ thống rời rạc trên miền tần số
rời rạc
1. Biến đổi Fourier thời gian rời rạc
1.1. Biến đổi Fourier rời rạc đối với dãy tín hiệu tuần hoàn
có chu kỳ N
1.2. Biến đổi Fourier rời rạc đối với các dãy không tuần
hoàn có chiều dài hữu hạn
2. Các tính chất của phép biến đổi Fourier trên miền tần số
rời rạc
3. Biểu diễn tín hiệu và hệ thống trong miền tần số rời rạc
Đánh giá
kết quả
Sau khi kết thúc mô đun, học viên phải thực hiện một bài kiểm
tra trên máy tính: biểu diễn tín hiệu và hệ thống trong miền thời
gian và tần số. Khảo sát các tính chất của tín hiệu và hệ thống
trong miền thời gian và tần số.
- Phòng học dạng phòng LAB có trang bị máy tính
- 15 máy vi tính các nhân cho học viên (một hoặc hai học
viên trên một máy).
- 1 máy vi tính cho giáo viên.
- 1 máy chiếu projector và phông chiếu đồng bộ.
- Phần mềm Matlab
Các nguồn
lực cần thiết
để dạy và
học mô đun
- 1 bảng fooc trắng (1200 x 2000) + 03 hộp bút dạ viết
bảng các màu (xanh, đen, đỏ).
10
- 15 bộ tài liệu học tập về xử lý tín hiệu số trên phần mềm
Matlab (mỗi học viên một bộ).
- Giấy, bút phát cho học viên.
THỜI GIAN (GIỜ) MÃ MÔ
ĐUN
XLS02
TÊN MÔ ĐUN
THIẾT KẾ BỘ LỌC SỐ LT
18
TH
30
TỔN
G
48
Mục tiêu
mô đun
Sau khi học xong mô đun này, học viên có thể:
- Hiểu khái niệm về các bộ lọc và các tiêu chuẩn bộ lọc
- Hiểu các phương pháp thiết kế các bộ lọc số và quy trình thiết
kế bộ lọc số
- Khảo sát phổ tần số, phổ năng lượng của tín hiệu
- Sử dụng các công cụ của phần mềm Matlab thiết kế các bộ lọc
số.
- Khảo sát các đặc tính của bộ lọc số đã thiết kế và ứng dụng bộ
lọc số để lọc tín hiệu.
Điều kiện
đầu vào
- Giáo viên dạy nghề điện, điện tử có trình độ từ cao đẳng
sư phạm kỹ thuật điện, điện tử hoặc cao đẳng kỹ thuật điện,
điện tử trở lên, đã và đang tham gia giảng dạy tại các cơ sở dạy
nghề trong cả nước.
Đề cương
nội dung
I. Biến đổi Fourier nhanh FFT và phân tích phổ
1. Các giải thuật FFT
2. Phương pháp tính trực tiếp DFT
3. FFT cơ số 2
4. Ứng dụng của các giải thuật FFT
II. Thiết kế bộ lọc số có đáp ứng xung chiều dài hữu
hạn FIR
11
1. Các tính chất tổng quát của bộ lọc số FIR
2. Các giai đoạn tổng hợp bộ lọc FIR
3. Các đặc trưng của bộ lọc FIR pha tuyến tính
4. Đáp ứng tần số của các bộ lọc FIR pha tuyến tính
5. Các phương pháp tổng hợp bộ lọc số FIR
III. Thiết kế bộ lọc số có đáp ứng xung chiều dài vô hạn
IIR
1. Thiết kế bộ lọc bằng phương pháp bất biến xung
2. Thiết kế bộ lọc bằng phép biến đổi song tuyến
3. Bộ lọc tương tự Butterworth
4. Bộ lọc tương tự Chebyshev
Đánh giá
kết quả
Sau khi kết thúc mô đun, học viên phải thực hiện một bài kiểm
tra trên máy tính: Thiết kế một bộ lọc số theo các chỉ tiêu kỹ
thuật cho trước
- Phòng học dạng phòng LAB có trang bị máy tính
- 15 máy vi tính các nhân cho học viên (một hoặc hai học
viên trên một máy).
- 1 máy vi tính cho giáo viên.
- 1 máy chiếu projector và phông chiếu đồng bộ.
- Phần mềm Matlab
Các nguồn
lực cần thiết
để dạy và
học mô đun - 1 bảng fooc trắng (1200 x 2000) + 03 hộp bút dạ viết
bảng các màu (xanh, đen, đỏ).
- 15 bộ tài liệu học tập về xử lý tín hiệu số trên phần mềm
Matlab (mỗi học viên một bộ).
- Giấy, bút phát cho học viên.
4. Cấu trúc bài học (công việc)
12
MÔ ĐUN:TÍN HIỆU VÀ HỆ THỐNG SỐ
THỜI GIAN (GIỜ) MÃ BÀI
HỌC
XLS01_01
TÊN BÀI HỌC
TÍN HIỆU SỐ VÀ CÁC
PHƯƠNG PHÁP BIỂU DIỄN
TÍN HIỆU SỐ
LT: 5 TH: 8 TS:
13
MỤC TIÊU:
Sau khi học xong bài này, học viên có thể:
- Hiểu các khái niệm cơ bản về tín hiệu rời rạc và tín hiệu số
- Biểu diễn tín hiệu số theo các phương pháp
- Sử dụng phần mềm Matlab để biểu diễn và biến đổi tín hiệu số
NỘI DUNG:
A. Lý thuyết
1. Tín hiệu số và biểu diễn tín hiệu số
2. Một số dãy tín hiệu rời rạc cơ bản
3. Một số khái niệm
1.1. Dãy tuần hoàn
1.2. Dãy có chiều dài hữu hạn
1.3. Dãy năng lượng và dãy công suất
4.Một số phép tính trên tín hiệu rời rạc
4.4. Tổng của hai dãy
4.5. Tích của hai dãy
4.6. Trễ (dịch)
B. Thực hành
1. Giới thiệu phần mềm Matlab
2. Khởi động và làm việc trong Matlab
3. Các lệnh thông dụng trong Matlab
13
4. Biểu diễn và biến đổi tín hiệu số trong Matlab
14
THỜI GIAN (GIỜ) MÃ BÀI
HỌC
XLS01-02
TÊN BÀI HỌC
HỆ THỐNG TUYẾN TÍNH
BẤT BIẾN THỜI GIAN LTI LT: 7
TH:
10
TS:
17
MỤC TIÊU:
Sau khi học xong bài này, học viên có thể:
- Hiểu khái niệm hệ thống số
- Hiểu các tính chất của hệ thống số
- Mô phỏng một số hệ thống tuyến tính bất biến thời gian (LTI) đơn giản
và nghiên cứu các tính chất của chúng trên lĩnh vực thời gian.
NỘI DUNG:
A. Lý thuyết
1. Hệ thống tuyến tính bất biến LTI
2. Hệ thống tuyến tính bất biến nhân quả
3. Hệ thống tuyến tính bất biến ổn định
4. Phương trình sai phân tuyến tính hệ số hằng
B. Thực hành
1. Hệ thống tuyến tính bất biến
2. Khảo sát các tính chất của hệ thống tuyến tính bất biến
15
THỜI GIAN (GIỜ) MÃ BÀI HỌC
XLS01-03
TÊN BÀI HỌC
BIẾN ĐỔI Z LT: 6 TH: 6 TS:
12
MỤC TIÊU:
Sau khi học xong bài này, học viên có thể:
- Chuyển đổi cách biểu diễn tín hiệu từ miền thời gian rời rạc sang miền Z
và ngược lại
- Hiểu các tiêu chuẩn của hệ thống tuyến tính, bất biến, nhân quả và ổn định
trên miền Z
- Giải phương trình sai phân tuyến tính hệ số hằng trong miền Z
- Khảo sát tín hiệu và hệ thống rời rạc trong miền Z sử dụng phần mềm
Matlab
NỘI DUNG:
A. Lý thuyết
1. Biến đổi Z
2. Biến đổi Z ngược
3. Các tính chất của biến đổi Z
4. Biểu diễn hệ thống trong miền Z
B.Thực hành
1. Đánh giá biến đổi Z trên vòng tròn đơn vị
2. Phân tích biến đổi Z
3. Giản đồ điểm cực/điểm không
4. Xác định các điểm cực và điểm không
5. Khai triển biến đổi Z thành thừa số
6. Biến đổi Z ngược
16
THỜI GIAN (GIỜ)
MÃ BÀI
HỌC
XLS01-04
TÊN BÀI HỌC
BIỂU DIỄN TÍN HIỆU VÀ
HỆ THỐNG RỞI RẠC
TRÊN MIỀN TẦN SỐ
LIÊN TỤC
LT: 6 TH: 8 TS:
14
MỤC TIÊU:
Sau khi học xong bài này, học viên có thể:
- Biến đổi tín hiệu và hệ thống từ miền thời gian rời rạc sang miền tần số
liên tục
- Hiểu các tính chất của hệ thống trên miền tần số liên tục
- Khảo sát hệ thống LTI trên miền tần số bằng phần mềm Matlab
NỘI DUNG:
A. Lý thuyết
1. Biến đổi Fourier của tín hiệu rời rạc trong miền tần số liên tục
2. Biến đổi Fourier ngược
3. Các tính chất của biến đổi Fourier
4. Biểu diễn tín hiệu và hệ thống rời rạc trong miền tần số liên tục
4.1. Đáp ứng tần số
4.2. Các bộ lọc số lý tưởng
4.3. Các chỉ tiêu kỹ thuật của bộ lọc số thực tế
B. Thực hành
1. Tính toán đáp ứng tần số
2. Khảo sát các tính chất của biến đổi Fourier
17
THỜI GIAN (GIỜ) MÃ BÀI
HỌC
XLS01-05
TÊN BÀI HỌC
BIỂU DIỄN TÍN HIỆU VÀ HỆ
THỐNG RỜI RẠC TRÊN
MIỀN TẦN SỐ RỜI RẠC
LT: 6 TH:
10
TS:
16
MỤC TIÊU:
Sau khi học xong bài này, học viên có thể:
- Biến đổi tín hiệu từ miền tần số rời rạc sang miền tần số
- khôi phục biến đổi Z và biến đổi Fourier từ DFT
-Biểu diễn tín hiệu và hệ thống trong miền tần số rời rạc
NỘI DUNG:
A. Lý thuyết
1. Biến đổi Fourier thời gian rời rạc
2. Các tính chất của phép biến đổi Fourier tần số rời rạc đối với các dãy có
chiều dài hữu hạn.
3. Tích chập phân đoạn
4. Khôi phục biến đổi Z và biến đổi Fourier từ DFT
B. Thực hành
1. Tính toán DTFT
2. Khảo sát các tính chất của DTFT
2.1. Tính chất dịch chuyển về thời gian
2.2. Tính chất dịch chuyển về tần số
2.3. Tính chất điều chế
2.4. Tính chất ngược thời gian
18
MÔDUL: THIẾT KẾ BỘ LỌC SỐ
THỜI GIAN (GIỜ) MÃ BÀI
HỌC
XLS02-01
TÊN BÀI HỌC
BIẾN ĐỔI FOURIER
NHANH VÀ PHÂN TÍCH
PHỔ
LT: 6 TH:
10
TS:
16
MỤC TIÊU:
Sau khi học xong bài này, học viên có thể:
-Hiểu được các thuật toán tính Fourier nhanh
-Áp dụng FFT để tính tích chập, phân tích phổ trên phần mềm Matlab
NỘI DUNG:
A. Lý thuyết
1. Độ phức tạp tính toán của DFT
2. Thuật toán FFT cơ số 2 phân chia theo thời gian
B. Thực hành
1. Nhân chập nhanh dùng FFT
2. .Phân tích phổ dùng FFT
3. Dùng FFT để tính mật độ phổ công suất của tín hiệu nhiễm tạp âm
19
THỜI GIAN (GIỜ) MÃ BÀI
HỌC
XLS02-02
TÊN BÀI HỌC
THIẾT KẾ BỘ LỌC SỐ CÓ ĐÁP
ỨNG XUNG CÓ CHIỀU DÀI HỮU
HẠN FIR
LT:
6
TH:
10
TS:
16
MỤC TIÊU:
Sau khi học xong bài này, học viên có thể:
-Hiểu ý nghĩa các tham số của bộ lọc số
- Hiểu các phương pháp thiết kế bộ lọc số có đáp ứng xung chiều dài hữu
hạn FIR
-Thiết kế các bộ lọc số theo yêu cầu trên phần mềm Matlab với các hàm
cửa sổ khác nhau.
NỘI DUNG:
A. Lý thuyết
1. Bộ lọc số FIR
2. Các đặc trưng của bộ lọc FIR pha tuyến tính
3. Đáp ứng tần số của các bộ lọc FIR pha tuyến tính
4. Tổng hợp bộ lọc FIR có pha tuyến tính sử dụng phương pháp cửa sổ.
B. Thực hành
1. Thiết kế mạch lọc số FIR dùng các hàm cửa sổ
1.1. Cửa sổ Hanming và Hamming
1.2. Cửa sổ Blackman
1.3. Cửa sổ Kaiser
2. Thiết kế mạch lọc số FIR thông dải và chặn dải
20
THỜI GIAN (GIỜ)
MÃ BÀI HỌC
XLS02-03
TÊN BÀI HỌC
THIẾT KẾ BỘ LỌC SỐ
CÓ ĐÁP ỨNG XUNG CÓ
CHIỀU DÀI VÔ HẠN IIR
LT: 6 TH:
10
TS:
16
MỤC TIÊU:
Sau khi học xong bài này, học viên có thể:
- Hiểu các phương pháp thiết kế bộ lọc số có đáp ứng xung chiều dài vô hạn
-Thực hiện được các phương pháp thiết kế bộ lọc số có đáp ứng xung có
chiều dài vô hạn IIR
- Đánh giá ưu nhược điểm của từng phương pháp thiết kế
NỘI DUNG:
A. Lý thuyết
1. Cơ sở tổng hợp bộ lọc số IIR
2. Phương pháp bất biến xung
3. Phương pháp biến đổi song tuyến
4. Bộ lọc tương tự Butterworth
5. Bộ lọc tương tự Chebyshev
B. Thực hành
1. Thiết kế bộ lọc số từ mạch lọc Butterworth thông thấp
2. Thiết kế bộ lọc số IIR thông cao, thông dải và chặn dải
C. Kiểm tra kết thúc mô đun
21
Híng dÉn sö dông ch¬ng tr×nh
Chương trình bồi dưỡng "thiết kế bộ lọc số" được biên soạn theo cấu trúc
mô đun.
- Chương trình được giảng dạy dưới dạng tích hợp tại phòng máy tính
giáo viên hướng dẫn đến đâu, học viên thực hiện đến đó theo hướng đào tạo tiếp
cận bởi năng lực thực hiện. Yêu cầu phòng máy như sau:
+ Phòng học dạng phòng LAB có trang bị máy tính 15 máy vi tính cá nhân cho học viên (một hoặc hai học viên trên một máy). (Ghi chú: Các máy tính có cấu hình tối thiểu Chip Dual core 2.0Ghz, Ram 1Ghz, ổ CD rom, ổ cứng còn trống 5Gb.)
+ 1 máy vi tính cho giáo viên.
+ 1 máy chiếu projector và phông chiếu đồng bộ.
+ 1 Bộ đĩa phần mềm Matlab 7.0 gồm 3 đĩa CD.
+ 1 bảng fooc trắng(1200 x 2000) + 03 hộp bút dạ viết bảng các màu (xanh, đen, đỏ).
- Vật tư bao gồm:
- 15 bộ tài liệu học tập về Modul phát cho học viên (mỗi học viên một bộ).
- Giấy, bút phát cho học viên.
- Sau mỗi mô đun cần có các bài kiểm tra đánh giá năng lực của học viên. Các bài kiểm tra đánh giá được thực hiện trực tiếp trên máy tính với thời gian nhất định nhằm kiểm tra kiến thức và kỹ năng xây dựng, lập trình mô phỏng của học viên.
- Học viên tham dự lớp học phải là giáo viên dạy nghề điện, điện tử có trình độ từ cao đẳng sư phạm kỹ thuật điện, điện tử hoặc cao đẳng kỹ thuật điện, điện tử trở lên, đang giảng dạy tại các cơ sở dạy nghề trong cả nước.
- Có kiến thức cơ bản về công nghệ thông tin đạt trình độ B tin học văn phòng trở lên.
- Bài kiểm tra thứ nhất tiến hành sau khi hoàn thành modul XLS01-04, kiểm
tra khả năng biểu diễn, khảo sát các tính chất của tín hiệu và hệ thống của học
viên trên phần mềm Matlab. Thời gian kiểm tra cho mỗi học viên 45 phút. Trọng
số điểm 40%.
22
- Bài kiểm tra thứ hai thực hiện sau khi kết thuc modul XLS02-03, đánh giá
được thực hiện trực tiếp trên máy tính với thời gian 60 phút nhằm kiểm tra kiến
thức và kỹ năng của học viên về phân tích phổ của tín hiệu, thiết kế bộ lọc số
theo yêu cầu cho trước. Trọng số điểm 60%.
Hµ Néi, th¸ng 06 n¨m 2009
23
MÔDUL: TÍN HIỆU VÀ HỆ THỐNG SỐ
THỜI GIAN (GIỜ) MÃ SỐ BÀI HỌC
XLS01-01
TÊN BÀI HỌC
TÍN HIỆU SỐ VÀ CÁC
PHƯƠNG PHÁP BIỂU DIỄN
TÍN HIỆU SỐ
LT: 5 TH:8 TS:13
MỤC TIÊU:
Sau khi học xong bài này, học viên có thể:
- Hiểu các khái niệm cơ bản về tín hiệu rời rạc và tín hiệu số
- Biểu diễn tín hiệu số theo các phương pháp
- Sử dụng phần mềm Matlab để biểu diễn và biến đổi tín hiệu số
NỘI DUNG:
A. Lý thuyết
1. Tín hiệu số và biểu diễn tín hiệu số
Định nghĩa:
Tín hiệu:
Tín hiệu là một đại lượng vật lý chứa thông tin (information). Về mặt
toán học, tín hiệu được biểu diễn bằng một hàm của một hay nhiều biến độc
lập.
Ví dụ: - Tín hiệu âm thanh là dao động cơ học lan truyền trong không khí,
mang thông tin truyền đến tai. Khi biến thành tín hiệu điện (điện áp hay dòng
điện) thì giá trị của nó là một hàm theo thời gian.
- Tín hiệu hình ảnh tĩnh hai chiều được đặc trưng bởi một hàm cường
độ sáng của hai biến không gian. Khi biến thành tín hiệu điện, nó là hàm một
biến thời gian.
Để thuận tiện, ta qui ước (không vì thế mà làm mất tính tổng quát) tín
hiệu là một hàm của một biến độc lập và biến này là thời gian (mặc dù có khi
không phải như vậy, chẳng hạn như sự biến đổi của áp suất theo độ cao).
24
Giá trị của hàm tương ứng với một giá trị của biến được gọi là biên độ
(amplitude) của tín hiệu. Ta thấy rằng, thuật ngữ biên độ ở đây không phải là
giá trị cực đại mà tín hiệu có thể đạt được.
Phân loại tín hiệu:
Tín hiệu được phân loại dựa vào nhiều cơ sở khác nhau và tương ứng có các
cách phân loại khác nhau. Ở đây, ta dựa vào sự liên tục hay rời rạc của thời
gian và biên độ để phân loại. Có các loại tín hiệu như sau:
- Tín hiệu tương tự (Analog signal): thời gian liên tục và biên độ cũng liên
tục.
- Tín hiệu lượng tử hóa (Quantified signal): thời gian liên tục và biên độ
rời rạc. Đây là tín hiệu tương tự có biên độ đã được rời rạc hóa.
- Tín hiệu rời rạc (Discrete signal): Là tín hiệu được biểu diễn bởi hàm của
các biến rời rạc.
+ Tín hiệu lấy mẫu: Hàm của tín hiệu rời rạc là liên tục (không được lượng tử
hoá)
+ Tín hiệu số: Hàm của tín hiệu rời rạc là rời rạc. Tín hiệu số là tín hiệu được
rời rạc cả biên độ và biến số
Các loại tín hiệu trên được minh họa trong Hình 1 .
25
Hình 1: Các loại tín hiệu
Nhận xét: Do tín hiệu số là một trường hợp đặc biệt của tín hiệu rời rạc nên các
phương pháp xử lí tín hiệu rời rạc đều hoàn toàn được áp dụng cho xử lí tín hiệu
số.
2. Một số dãy tín hiệu rời rạc cơ bản
2.1. Tín hiệu xung đơn vị (Unit inpulse sequence):
Đây là một dãy cơ bản nhất, ký hiệu là δ(n) , được định nghĩa như sau:
1, 0
0,( )
0
n
nnδ =
=
≠
( )nδ được biểu diễn bằng đồ thị như Hình 2,a
Nhận xét: Một tín hiệu rời rạc bất kỳ có thể biểu diễn bởi công thức:
( ) ( ) ( )k
x n x k n kδ+∞
= −∞
= −∑
2.2. Dãy chữ nhật
Dãy chữ nhật được kí hiệu là rectN(n) (Hình 2,b) và được định nghĩa như
sau:
26
−≤≤
=conlain
NnnrectN
0
101)(
2.3. Tín hiêu nhẩy bậc đơn vị (Unit step sequence)
Dãy này thường được ký hiệu là u(n) và được định nghĩa như sau:
1, 0
0,( )
0
n
nu n =
≥
<
Dãy u(n) được biểu diễn bằng đồ thị Hình 2,c.
Hình 2: Các dãy tín hiệu rời rạc cơ bản
a) Dãy xung đơn vị
b) Dãy chữ nhật
c) Dãy nhảy bậc đơn vị
d) Dãy hàm mũ
d/. Tín hiệu hàm mũ (Exponential sequence)
x(n) = A αn
Nếu A và α là số thực thì đây là dãy thực. Với một dãy thực, nếu 0 < α <
1 và A>0 thì dãy có các giá trị dương và giảm khi n tăng, Hình 2,d. Nếu –1<
α < 0 thì các giá trị của dãy sẽ lần lược đổi dấu và có độ lớn giảm khi n tăng.
Nếu | α |>1 thì độ lớn của dãy sẽ tăng khi n tăng.
27
3. Một số khái niệm cơ bản
3.1. Dãy tuần hoàn
Ta gọi một dãy là tuần hoàn với chu kỳ N, nếu ta có:
x(n)=x(n+N)=x(n+kN) với mọi n
Ta ký hiệu dãy tuần hoàn bởi dấu ~~
( )x n
Hình 3: Dãy tuần hoàn
3.2. Dãy có chiều dài hữu hạn
Dãy được xác định với số mẫu N hữu hạn (N điểm trên trục hoành) gọi là dãy
có chiều dài hữu hạn. N được gọi là chiều dài của dãy, kí hiệu là:
L[x(n) ] = N
Ví dụ: L[rectN(n) ]=N
3.3. Dãy năng lượng và dãy công suất
• Năng lượng của một dãy được định nghĩa như sau:
∑∞
−∞=
=n
x nxE2
)(
Trong đó )(nx là modul của x(n).
Ví dụ: NnxEN
nnnrectN
=== ∑∑−
=
∞
−∞=
1
0
22
)( 1)(
• Công xuất trung bình của dãy:
∑−=
∞→ +=
N
NnN
x nxN
P2
)(12
1lim
• Năng lượng của dãy x(n) trong khoảng NnN ≤≤− :
28
∑−=
=N
NnxN nxE
2)(
Vậy +∞→
=N
xNx EE lim
xNx EN
P12
1
+=
• Dãy năng lượng: nếu năng lượng của dãy x(n) là hữu hạn thì x(n) được
gọi là dãy năng lượng.
• Dãy công xuất: nếu công xuất trung bình của x(n) là hữu hạn thì x(n)
được gọi là dãy công xuất.
4. Một số phép tính trên tín hiệu rời rạc
4.1. Tổng của hai dãy
Cho tín hiệu x = x(n), y = y(n), tín hiệu z = x + y = z(n)thoả mãn: z(n) =
x(n) + y(n)
4.2. Tích của hai dãy
Phép nhân 2 tín hiệu: Cho tín hiệu x = x(n), y = y(n), tín hiệu z = x.y =
z(n) thoả mãn: z(n) = x(n).y(n)
Phép nhân với hệ số: Cho tín hiệu x = x(n), y = α.x = y(n)thoả mãn:
y(n) = α.x(n)
4.3. Trễ (dịch)
Phép dịch phải: Cho tín hiệu x = x(n) phép dịch phải tín hiệu x đi k mẫu tạo ra
tín hiệu y = y(n) thoả mãn: y(n) = x(n – k) trong đó k là một hằng số nguyên
dương.
Phép dịch trái: Cho tín hiệu x = x(n) phép dịch trái tín hiệu x đi k mẫu tạo
ra tín hiệu y = y(n) thoả mãn: y(n) = x(n + k) trong đó k là một hằng số
nguyên dương.
B. Thực hành
1. Giới thiệu về Matlab
Matlab là từ viết tắt của Matrix Laboratory.
29
Matlab là một ngôn ngữ lập trình cấp cao dạng thông dịch. Nó là môi
trường tính toán số được thiết kế bởi công ty MathWorks. Matlab cho phép thực
hiện các phép tính toán số, ma trận, vẽ đồ thị hàm số hay biểu diễn thông tin
(dưới dạng 2D hay 3D), thực hiện các thuật toán và giao tiếp với các chương
trình của các ngôn ngữ khác một cách dễ dàng.
Phiên bản Matlab được sử dụng mô phỏng trong tài liệu này là Matlab
7.0.4.
2. Khởi động và làm việc trong Matlab
Trước khi khởi động Matlab, người dùng phải tạo một thư mục làm việc
để chứa các file chương trình của mình (ví dụ: D:\ThucHanh_DSP).
Matlab sẽ thông dịch các lệnh được lưu trong file có dạng *.m
Sau khi đã cài đặt Matlab thì việc khởi chạy chương trình này chỉ đơn
giản là nhấp vào biểu tượng của nó trên desktop , hoặc vào Start\All
Programs\Matlab 7.0.4\ Matlab 7.0.4
Hình 4: Khởi động Matlab
Sau khi đã khởi động xong Matlab, thì bước kế tiếp là chỉ thư mục làm
việc của mình cho Matlab. Nhấp vào biểu tượng trên thanh công cụ và chọn
thư mục làm việc của mình (ví dụ: D:\ThucHanh_DSP).
Cửa sổ làm việc của Matlab sẽ như hình vẽ bên dưới. Nó bao gồm 3 cửa
sổ làm việc chính: Cửa sổ lệnh (Command Window), cửa sổ thư mục hiện tại
(Current Directory ) và cửa sổ chứa tập các lệnh đã được sử dụng (Command
History)
30
Hình 5: Môi trường làm việc Matlab
Để tạo một file .m trong thư mục làm việc bạn đọc có thể thực hiện:
Nhấp vào biểu tượng hoặc vào File\New\M-File
Cửa sổ soạn thảo xuất hiện, gõ chương trình cần thiết vào file. Sau khi đã hoàn
tất nhấn vào biểu tượng để lưu vào thư mục hiện tại (D:\ThucHanh_DSP)
Hình 6: Màn hình soạn thảo m file
Để thực thi tập lệnh có trong file .m trong thư mục làm việc thì người
dùng chỉ cần gõ tên file đó và Matlab sẽ tự động thực thi các dòng lệnh có trong
file .m này (ví dụ để thực thi các lệnh có trong file test.m, chỉ cần gõ lệnh test).
31
3. Các lệnh thông dụng trong Matlab
3.1. Một vài kiểu dữ liệu
Matlab có đầy đủ các kiểu dữ liệu cơ bản: số nguyên, số thực, ký tự,
Boolean.
Chuỗi ký tự được đặt trong nháy kép (“”) ví dụ “thuc hanh”.
Kiểu dãy có thể được khai báo theo cú pháp “số_đầu: bước: số_cuối”. Ví
dụ 0: 0.2: 0.5 (kết quả sẽ thu được một chuổi [0 0.2 0.4]
Kiểu ma trận có thể được khai báo như ví dụ sau:
M = [1, 2, 3; 4, 5, 6; 7, 8, 9]
Ma trận M thu được sẽ là:
A = 1 2 3
4 5 6
7 8 9
3.2. Các lệnh điều khiển cơ bản
Lệnh clear: Xóa tất cả các biến trong bộ nhớ Matlab
Lệnh clc: Xóa cửa sổ lệnh (command window)
Lệnh pause: Chờ sự đáp ứng từ phía người dùng
Lệnh =: Lệnh gán
Lệnh %: Câu lệnh sau dấu này được xem là dòng chú thích
Lệnh input: Lấy vào một giá trị.
Ví dụ: x = input(‘Nhap gia tri cho x:’);
Lệnh help: Yêu cầu sự giúp đỡ từ Matlab
Lệnh save: Lưu biến vào bộ nhớ
Ví dụ: save test A B C (lưu các biến A, B, C vào file test)
Lệnh load: Nạp biến từ file hay bộ nhớ
Ví dụ: load test
Lệnh rẽ nhánh If: cú pháp như sau
32
IF expression
statements
ELSEIF expression
statements
ELSE
statements
END
Lệnh rẽ nhánh Switch:
SWITCH switch_expr
CASE case_expr,
statement,..., statement
CASE case_expr1, case_expr2, case_expr3,...
statement,..., statement
...
OTHERWISE,
statement,..., statement
END
Lệnh lặp For:
FOR variable = expr, statement,..., statement END
Lệnh While:
WHILE expression
statements
END
Lệnh break: Thoát đột ngột khỏi vòng lặp WHILE hay FOR.
Lệnh continue: Bỏ qua các lệnh hiện tại, tiếp tục thực hiện vòng lặp ở lần lặp
tiếp theo.
Lệnh return: Lệnh quay về
33
Lệnh clf: Xóa hình hiện tại
Lệnh plot(signal): Vẽ dạng sóng tín hiệu signal
Lệnh stairs(signal): Vẽ tín hiệu signal theo dạng cầu thang.
Lệnh stem(signal): Vẽ chuỗi dữ liệu rời rạc
Lệnh bar(signal): Vẽ dữ liệu theo dạng cột
Lệnh mesh(A): Hiển thị đồ họa dạng 3D các giá trị ma trận
4. Biểu diễn và biến đổi tín hiệu số trong Matlab
Các hàm Matlab liên quan:
sum: Xác định tổng của tất cả các phần từ của một vector
min: Xác định phần tử nhỏ nhất của một vector
max: Xác định phần tử nhỏ nhất của một vector
zeros: cấp phát một vector hoặc ma trận với các phần tử 0
subplot: Chia đồ thị ra thành nhiều phần nhỏ, mỗi phần vẽ một đồ thị khác nhau
title: Thêm tên tiêu đề cho đồ thị
xlabel: Viết chú thích dưới trục x trong đồ thị 2D
ylabel: Viết chú thích dưới trục y trong đồ thị 2D
Một vài ví dụ:
Ví dụ 1: Xét tín hiệu liên tục sau: ( ) os(20 )i t c tπ= , được lấy mẫu 12.5 ms. Tín hiệu
đó có tuần hoàn hay không?
Giải:
( ) os(2 (10)(0.0125) ) os( )4
x n c n c nπ
π= =
Tín hiệu tuần hoàn khi 0
2 N
k
π
θ=
Suy ra: 2
4
N
k
π
π=
Do đó, 8
1
N
k=
34
Với k = 1 ta có N = 8, đó là chu kì tuần hoàn của tín hiệu
Ví dụ 2: Dùng Matlab biểu diễn Step signal và Impulse signal
Step signal: 1 0
( )0 0
nu n
n
≥=
<
Impulse Signal: 1 0
( )0 0
nn
nδ
==
≠
Giải:
Step signal
n0 = -1;n1 = -3;n2 = 3;
n = [n1:n2];
x = [(n-n0)>=0];
stem(n,x);
Hình 7: Ví dụ về xung nhảy bậc
Impulse signal
n0 = 1;
n1 = -5;
n2 = 5;
n = [n1:n2];
x = [n== 0];
35
stem(n,x);
title('xung don vi');
-5 -4 -3 -2 -1 0 1 2 3 4 50
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1xung don vi
Hình 8: Ví dụ về xung đơn vị
Ví dụ 3: Cho chuỗi x(n)=1,2,3,4,5,6,7,6,5,4,3,2,1. Hãy xác định và vẽ chuỗi
sau:
x(n)=2x(n-5)-3x(n+4);
Giải:
x=[1:7,6:-1:1];
n=[-2:10];
n1=n+5;n2=n-4;x1=x;x2=x;
n3=min(min(n1),min(n2)):max(max(n1),max(n2));
x3=zeros(1,length(n3));
x4=x3;
x3(find((n3>=min(n1))&(n3<=max(n1))))=x1;
x4(find((n3>=min(n2))&(n3<=max(n2))))=x2;
x5=2*x3-3*x4;
stem(n3,x5,'r');grid on;xlabel('truc n');ylabel('truc x');
36
title('do thi chuoi x5(n)=2x(n-5)-3x(n+4)');
Kết quả:
Bổ xung một số hàm Matlab
Hàm thực hiện dịch chuỗi đi n0 mẫu:
function [y,n]=sigshift(x,m,k)
%thuc hien dich chuoi x di n0 mau y(n)=x(n-n0)
%--------------------------
%[y,n]=sigshift(x,m,k)
%
n=m+k;y=x;
Hàm thực hiện lật ngược chuỗi qua n=0:
function [y,n]=sigfold(x,n)
%ithuc hien lat nguoc chuoi qua mau n=0 y(n)=x(-n)
%----------------------
%[y,n]=sigfold(x,n)
%
37
y=fliplr(x);n=-fliplr(n);
Hàm tạo xung đơn vị:
0
0
0
1,
,)
0(
nn n
n
n nδ
=
≠− =
function [x,n]=impseq(n0,n1,n2)
%generate x(n)=delta(n-n0);n1<=n<=n2
%-----------------------------------
%[x,n]=impseq(n0,n1,n2)
%
n=[n1:n2];x=[n==n0];
Ví dụ: Tạo và vẽ chuỗi sau: ( ) 2 ( 2) ( 4), 5 5nx n n nδ δ− − − ≤+ ≤=
% x(n) = 2*delta(n+2) - delta(n-4), -5<=n<=5
n = [-5:5];
x = 2*impseq(-2,-5,5)-impseq(4,-5,5);
stem(n,x); title('Chuoi x(n)=2\delta(n+2)-\delta(n-
4)')
xlabel('n'); ylabel('x(n)'); axis([-5,5,-2,3])
38
-5 -4 -3 -2 -1 0 1 2 3 4 5-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
2.5
3Chuoi x(n)=2δ(n+2)-δ(n-4)
n
x(n
)
Hàm: 0
0
0
1,
,)
0(
nu n
n
n nn
≥
<− =
Với 1 0 2n n n≤ ≤ , ta viết hàm Matlab sau:
function [x,n] = stepseq(n0,n1,n2)
% Tao chuoi x(n) = u(n-n0); n1 <= n,n0 <= n2
% ------------------------------------------
% [x,n] = stepseq(n0,n1,n2)
if ((n0 < n1) | (n0 > n2) | (n1 > n2))
error('arguments must satisfy n1 <= n0 <= n2')
end
n = [n1:n2];
x = [(n-n0) >= 0];
Ví dụ: Tạo ra và vẽ chuỗi:
0.3( 10)( ) [ ( ) ( 10)] 10 [ ( 10) ( 20)],0 n 20nx n n u n u n e u n u n− −= − − + − − − ≤ ≤
% x(n) = n[u(n)-u(n-10)]+10*exp(-0.3(n-10))(u(n-10)-
u(n-20)); 0<=n<=20
39
n = [0:20];
x1 = n.*(stepseq(0,0,20)-stepseq(10,0,20));
x2 = 10*exp(-0.3*(n-10)).*(stepseq(10,0,20)-
stepseq(20,0,20));
x = x1+x2;
stem(n,x);
title('Chuoi n[u(n)-u(n-10)]+10e^-0.3(n-10)[u(n-
10)-u(n-20)]')
xlabel('n');ylabel('x(n)');axis([0,20,-1,11])
0 2 4 6 8 10 12 14 16 18 20
0
2
4
6
8
10
Chuoi n[u(n)-u(n-10)]+10e-0.3(n-10)[u(n-10)-u(n-20)]
n
x(n
)
Hàm cộng 2 chuỗi số:
function [y,n] = sigadd(x1,n1,x2,n2)
% thuc hien cong hai chuoi y(n) = x1(n)+x2(n)
% -----------------------------
% [y,n] = sigadd(x1,n1,x2,n2)
40
n = min(min(n1),min(n2)):max(max(n1),max(n2)); %
khoang ton tai y(n)
y1 = zeros(1,length (n)); y2 = y1; % xac
lap gia tri ban dau
y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; % gan
do dai cua x1 bang y1
y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; % gan
do dai cua x2 bang y2
y = y1+y2; % con g
hai chuoi co do dai bang nhau
Ví dụ:
Cho chuỗi x(n)=1,2,3,4,5,6,7,6,5,4,3,2,1. Xác định và vẽ chuỗi sau:
1( ) 2 ( 5) 3 ( 4)x n x n x n= − − +
% x1(n) = 2*x(n-5) - 3*x(n+4)
n = -2:10; x = [1:7,6:-1:1];
x11,n11] = sigshift(x,n,5); [x12,n12] =
sigshift(x,n,-4);
x1,n1] = sigadd(2*x11,n11,-3*x12,n12);
stem(n1,x1); title('Chuoi x1(n) = 2*x(n-5) -
3*x(n+4)')
xlabel('n'); ylabel('x1(n)'); axis([min(n1)-
1,max(n1)+1,min(x1)-1,max(x1)+1])
set(gca,'XTickMode','manual','XTick',[min(n1),0,max(n
1)])
41
-6 0 15
-20
-15
-10
-5
0
5
10
15Chuoi x1(n) = 2*x(n-5) - 3*x(n+4)
n
x1(n
)
Hàm thực hiện nhân hai tín hiệu:
function [y,n]=sigmult(x1,n1,x2,n2)
%thuc hien nhan 2 tin hieu x1 va x2: y(n)=x1*x2
%[y,n]=sigmult(x1,n1,x2,n2)
%n1: khoang ton tai cua x1
%n2: khoang ton tai cua x2
%tich thuc hien tren khoang n bao gom n1 va n2
%
n=min(min(n1),min(n2)):max(max(n1),max(n2));
y1=zeros(1,length(n));
y2=y1;
y1((n>=min(n1))&(n<=max(n1)))=x1;
y2((n>=min(n2))&(n<=max(n2)))=x2;
y=y1.*y2;
Ví dụ: Cho chuỗi x(n)=1,2,3,4,5,6,7,6,5,4,3,2,1. Xác định và vẽ chuỗi sau:
42
( ) (3 ) ( ) ( 2)x n x n x n x n= − + −
% x2(n) = x(3-n) + x(n)*x(n-2)
[x21,n21] = sigfold(x,n); [x21,n21] =
sigshift(x21,n21,3);
[x22,n22] = sigshift(x,n,2); [x22,n22] =
sigmult(x,n,x22,n22);
[x2,n2] = sigadd(x21,n21,x22,n22);
stem(n2,x2); title('Chuoi x2(n) = x(3-n) + x(n)*x(n-
2)')
xlabel('n'); ylabel('x2(n)'); axis([min(n2)-
1,max(n2)+1,0,40])
set(gca,'XTickMode','manual','XTick',[min(n2),0,max(n
2)])
-7 0 120
5
10
15
20
25
30
35
40Chuoi x2(n) = x(3-n) + x(n)*x(n-2)
n
x2(n
)
43
C. Bài tập
Các tín hiệu sau đây có toàn hoàn hay không? Nếu có hãy xác định chu kì:
a. ( ) 2cos( 2 )x n nπ=
b. ( ) 20 os( )x n c nπ=
Biểu diễn các tín hiệu sau sử dụng tín hiệu xung đơn vị (impulse signal)
a. ( ) 1,2,3 ,4, 1x n = ↑ −
b. ( ) 0 ,1,2, 4x n = ↑ −
Cho tín hiệu sau ( ) -1,2,0 ,3x n = ↑ . Xác định các tín hiệu sau đây
a. ( )x n−
b. ( 1)x n− +
c. 2 ( 1)x n− +
d. ( ) ( 1)x n x n− + − +
Cho tín hiệu ( ) 1 ,2,3x n = ↑ . Xác định thành phần chẵn và lẻ của tín hiệu.
Cho tín hiệu ( ) 1,1,0 , 1, 1x n = ↑ − − . Xác định
a. x(2n)
b. x(n/2)
c. x(2n – 1)
d. x(n)x(n)
Cho 2 tín hiệu sau đây. Xác định năng lượng của 2 tín hiệu.
a. ( ) 1 ( ) 2 ( 1) 2 ( 2)x n n n nδ δ δ= − + − − −
b. ( ) 1,0 , 1x n = ↑ −
Cho tín hiệu x(n) = 2(–1)n n>=0. Tính năng lượng và công suất của tín
hiệu.
Bài tập kết hợp với Matlab
Dùng MatLab hiện thực hàm mũ ( ) 3(0.5)nx n = và hàm sin ( ) 3cos(3 5)x n nπ= +
Cho tín hiệu rời rạc x(n) như sau:
44
Xác định chu kì, năng lượng (energy) và công suất (power) của tín hiệu. Hiện
thực kết quả tính toán bằng các lệnh Matlab.
Các tín hiệu sau đây có tuần hoàn hay không? Nếu có hãy tính chu kì tuần
hoàn.
( ) (0.5) os(2 )
( ) 5cos(2 ) 3
nx n c n
x n n
π π
π π
= +
= + +
Biểu diễn 2 tín hiệu trên bằng Mathlab.
Cho 2 tín hiệu sau đây:
a. x1(n) = 0^, 1,2,3
b. x2(n) = 0,1^,2,3
Tìm x1(n) + x2(n) và x1(n)x2(n) bằng tay và Mathlab.
Hiện thực hàm tính StepSignal, ImpulseSignal và đảo tín hiệu.
Hướng dẫn:
Hàm trong Matlab có dạng như sau:
function[rv1 rv2.... rvn] = Function_Name(pv1, pv2,..., pvn)
Trong đó:
Rv1, rv2: Các giá trị trả về.
Pv1, pv2: Các tham số.
Function_Name: Tên hàm.
45
Xác định các tín hiệu sau
a. ( ) ( ) 3 ( 1) 3 3x n u n n n= − ∂ − − ≤ ≤
b. ( ) 3 ( 3) ( 2) ( ) 3 3x n u n n u n n= − + ∂ − + − − ≤ ≤
Dùng Matlab để biểu diễn các tín hiệu trên.
Hiện thực hàm cộng x1plusx2 và hàm nhân x1timesx2
Viết đoạn script tính thành phần chẵn và lẻ của tín hiệu.
[ ])()(2
1)( nxnxnxeven −+=
[ ])()(2
1)( nxnxnxodd −−=
Cho tín hiệu sau đây x(n) = u(n – 1) + d(n – 1) –2<= n <=2. Biểu diễn các
tín hiệu sau:
a. x(–n)
b. x(n–2)
c. x(n) + x(–n)
46
THỜI GIAN (GIỜ) MÃ SỐ BÀI HỌC
XLS01-02
TÊN BÀI HỌC
HỆ THỐNG TUYẾN TÍNH
BẤT BIẾN THỜI GIAN LTI
LT: 7 TH:10 TS:17
MỤC TIÊU:
Mô phỏng một số hệ thống tuyến tính bất biến thời gian (LTI) đơn giản và nghiên cứu các tính chất của chúng trên lĩnh vực thời gian
NỘI DUNG:
A. Lý thuyết
1. Hệ thống tuyến tính bất biến LTI
1.1. Hệ tuyến tính
Một hệ được gọi là tuyến tính nếu nó thoả mãn nguyên lý xếp chồng: giả
sử y1(n) và y2(n) là tín hiệu ra của hệ tương ứng với các tín hiệu vào x1(n) và
x2(n) hay:
y1(n) = T[x1(n)] và
y2(n) = T[x2(n)]
Thì ta có:
T[ax1(n) + bx2(n)] = ay1(n) + by2(n)
Với a,b là các hằng số.
Ý nghĩa của hệ tuyến tính: Một hệ tuyến tính có thể xử lý tổng các tác động
như thể các tác động được xử lý độc lập sau đó các kết quả độc lập được cộng
lại. Từ đó ta có thể phân tích các tín hiệu phức tạp thành nhiều tín hiệu đơn giản
hơn nhằm làm dễ dàng công việc nghiên cứu. Các hệ phi tuyến có thể được xấp
xỉ tuyến tính với các điều kiện nào đó.
Ví dụ 1: Hãy xét tính tuyến tính của hệ sau:
a. y(n) = a2x(n)
b. y(n) = ax(n)
47
Với a là một hằng số.
Đáp ứng xung của hệ TT:
+
k=-
( ) ( ) ( )
( ) [ x(k) (n-k)]
k
x n x k n k
y n T
δ
δ
+∞
= −∞
∞
∞
= −
⇒ =
∑
∑
( ) [ (n-k)]
( ) ( )
k
kk
x k T
x k h n
δ+∞
=−∞
+∞
=−∞
=
=
∑
∑
hk(n) được gọi là đáp ứng xung của hệ tuyến tính, hay chính là đầu ra của hệ khi
đầu vào là xung đơn vị.
1.2. Hệ tuyến tính bất biến
Một hệ tuyến tính là bất biến theo thời gian nếu tín hiệu vào bị dịch đi k mẫu thì
tín hiệu ra cũng bị dịch đi k mẫu, nghĩa là nếu x’(n) = x(n-k) thì y’(n) = y(n-k).
Khi một hệ tuyến tính là bất biến ta có: hk(n) = h(n-k) do đó ta có:
( ) ( ) ( )k
y n x k h n k+∞
=−∞
= −∑
Công thức trên được viết tương đương như sau:
y(n) = x(n)*h(n)
Nhận xét: Một hệ hoàn toàn xác định nếu biết tham số h(n) hay đáp ứng xung
của hệ.
Ví dụ 2: Hãy nhận xét tính bất biến của hệ sau:
a. y(n) = nx(n)
b. y(n) = a2x(n)
Ví dụ 3: Cho một hệ TTBB có đáp ứng xung
h(n) = anu(n) a < 1
48
Tìm đáp ứng của hệ khi tín hiệu vào là tín hiệu chữ nhật có độ rộng N, hay x(n)
= RECTN(n).
1.3. Tính chất của tổng chập
• Tính giao hoán:
y(n) = x(n) * h(n) = h(n) * x(n)
Chứng minh:
( ) ( )* ( ) ( ) ( )
( ) ( ) ( ) ( )* ( )
k
t
y n x n h n x k h n k
t n k k n t
t khi k
t khi k
y n x n t h t h n x n
+∞
=−∞
+∞
=−∞
= = −
= − ⇒ = −
= −∞ = +∞
= +∞ = −∞
⇒ = − =
∑
∑
• Tính phân phối:
y(n) = x(n) * [h1(n) + h2(n)] = x(n) * h1(n) + x(n) * h2(n)
1 2
1 2
1 2
1 2
( ) ( ) ( )
( ) ( )* ( ) ( ) ( )
( )[ ( ) ( )]
( ) ( ) ( ) ( )
( )* ( ) ( )* ( )
k
k
k k
h n h n h n
y n x n h n x k h n k
x k h n k h n k
x k h n k x k h n k
x n h n x n h n
+∞
=−∞
+∞
=−∞
+∞ +∞
=−∞ =−∞
= +
= = −
= − + −
= − + −
= +
∑
∑
∑ ∑
Hệ quả 1: Từ tính chất giao hoán của phép tổng chập ta có hệ quả sau: Nếu
ghép nối tiếp 2 hệ TTBB có đáp ứng xung tương ứng là h1(n) và h2(n) thì ta sẽ
được một hệ tương đương có đáp ứng xung là h(n) = h1(n) * h2(n) = h2(n) * h1(n)
không phụ thuộc vào thứ tự mắc nối tiếp của các hệ.
Hệ quả 2: Từ tính chất phân phối của phép tổng chập ta có hệ quả sau: Nếu
ghép song song 2 hệ nối tiếp có đáp ứng xung tương ứng là h1(n) và h2(n) thì ta
sẽ được một hệ tương đương có đáp ứng xung là h(n) = h1(n) + h2(n).
49
Hình 9: Ghép song song hai hệ thống tuyến tính
Ta có:
1 1
2 2
1 2
1 2
1 2
( ) ( ) * ( )
( ) ( ) * ( )
( ) ( ) ( )
( ) * ( ) ( ) * ( )
( ) * ( ( ) ( ))
( ) * ( )
y n x n h n
y n x n h n
y n y n y n
x n h n x n h n
x n h n h n
x n h n
=
=
= +
= +
= +
=
2. Hệ thống tuyến tính bất biến nhân quả
Một hệ TTBB là nhân quả nếu: x1(n) = x2(n) với n < n0 và
x1(n) ≠ x2(n) với n ≥ n0 thì:
y1(n) = y2(n) với n < n0 và
Một hệ là nhân quả nếu tín hiệu ra không phụ thuộc tín hiệu vào ở tương
lai.
Định lý: Một hệ TTBB là nhân quả khi và chỉ khi h(n) = 0 với n < 0.
Chứng minh:
• Nếu hệ là nhân quả:
Ta có:
50
0
0
0
0
1 1
1
1 1
2 2
1
2 2
( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( ) ( )
k
n
k k n
k
n
k k n
y n x k h n k
x k h n k x k h n k
y n x k h n k
x k h n k x k h n k
+∞
=−∞
− +∞
=−∞ =
+∞
=−∞
− +∞
=−∞ =
= −
= − + −
= −
= − + −
∑
∑ ∑
∑
∑ ∑
Do với n < n0 thì y1(n) = y2(n) và x1(n) = x2(n) nên:
0 0 11
1 2( ) ( ) ( ) ( )n n
k k
x k h n k x k h n k−−
=−∞ =−∞
− = −∑ ∑
Từ đó suy ra:
0 0
0
1 2
1 2
( ) ( ) ( ) ( )
( )[ ( ) ( )] 0
k n k n
n
x k h n k x k h n k
h n k x k x k
+∞ +∞
= =
+∞
− = −
⇔ − − =
∑ ∑
∑
Theo giả thiết x1(k) ≠x2(k) với k ≥ n0 nên ta suy ra:
h(n-k) = 0 với mọi n < n0 và k ≥ n0
Đặt m = n-k => h(m) = 0 với mọi m < 0 (ĐPCM).
• Nếu h(n) = 0 với mọi n < 0 (Tự chứng minh)
Nhận xét: Hệ TTBB và nhân quả có phương trình:
0
( ) ( ) ( )k
y n x n k h k+∞
=
= −∑
3. Hệ thống tuyến tính bất biến ổn định
Một hệ TTBB được gọi là ổn định nếu với tín hiệu vào có biên độ hữu
hạn thì tín hiệu ra cũng có biên độ hữu hạn.
Định lý: Một hệ TTBB là ổn định nếu và chỉ nếu
51
| ( ) |n
S h n+∞
=−∞
= < ∞∑
Chứng minh:
Nếu tác động x(n) thoả mãn: |x(n)| < A với mọi n khi đó:
| ( ) | | ( ) ( ) | | ( ) |k k
y n x n k h k A h k+∞ +∞
=−∞ =−∞
= − ≤∑ ∑
Do đó nếu S < ∞ thì |y(n)| < ∞ hay hệ ổn định
Nếu y(n) < ∞ ta chọn x(n) = 1 với h(n) ≥ 0 và x(n) = -1 với h(n) còn lại,
tính đáp ứng của hệ tại thời điểm 0 ta có:
(0) | ( ) ( ) | | ( ) |k k
y x k h k h k+∞ +∞
=−∞ =−∞
= − =∑ ∑
Từ đó suy ra S < ∞
Hình 10: Hình minh họa tính ổn định của hệ thống
4. Phương trình sai phân tuyến tính hệ số hằng (PT-SP-TT-HSH)
Tồn tại một lớp các hệ xử lý tín hiệu có thể được biểu diễn bởi phương
trình dạng:
52
0 0
( ) ( ) ( ) ( )N M
k pk p
a n y n k b n x n p= =
− = −∑ ∑
Dạng biểu diễn trên gọi là phương trình sai phân. Trong đó:
ak(n) và bp(n): Là các hàm hệ số
M,N: là các hằng số nguyên, N được gọi là bậc của phương trình
Đối với các hệ tuyến tính và bất biến thì các hàm hệ số sẽ trở thành các
hằng số, do đó ta có hệ tuyến tính bất biến được biểu diễn bởi phương trình sai
phân tuyến tính hệ số hằng (PT-SP-TT-HSH) có dạng sau:
0 0
( ) ( )N M
k pk p
a y n k b x n p= =
− = −∑ ∑
Rõ ràng với phương pháp biểu diễn hệ tuyến tính bất biến bởi PT-SP-TT-
HSH ta có thể thấy rằng hệ được biểu diễn bởi một tập hữu hạn các tham số bao
gồm:
ak và bp: là tập gồm N+1 và M+1 hằng số tương ứng
M,N: là 2 hằng số nguyên
N được gọi là bậc của phương trình
Phương pháp biểu diễn hệ TTBB sử dụng PT-SP-TT-HSH được sử dụng
trong hầu hết các hệ xử lý tín hiệu.
4.1. Giải phương trình sai phân tuyến tính hệ số hằng
Bài toán đặt ra là:
Cho một hệ TTBB có PT-SP-TT-HSH
0 0
( ) ( )N M
k pk p
a y n k b x n p= =
− = −∑ ∑
Biết tín hiệu vào x(n) và các điều kiện đầu hãy tìm tín hiệu ra y(n).
Tương tự như bài toán giải phương trình vi phân trong giải tích, chúng ta sẽ giải
phương trình sai phân với các điều kiện nêu trên qua các bước sau:
• Bước 1: Tìm nghiệm tổng quát y0(n)
Xét phương trình:
53
0
( ) 0N
kk
a y n k=
− =∑
Ta chọn nghiệm: y(n) = αn với α≠0, sau đó thay vào phương trình
trên ta được:
0
0N
n kk
k
a α −
=
=∑
Giải phương trình trên ta sẽ tìm được đúng N nghiệm α1…αN
Khi đó nghiệm tổng quát được xác định bởi:
0 11
( ) ( )k
Nn
S kk
y n P n α−=
= ∑
Trong đó: PQ(n) là đa thức bậc Q của n
Sk là bậc của nghiệm αk
Trong trường hợp các nghiệm αk là nghiệm đơn thì ta có:
01
( )N
nk k
k
y n A α=
= ∑
Trong đó Ak là các hằng số.
• Bước 2: Tìm nghiệm riêng yp(n)
Xét phương trình đầy đủ:
0 0
( ) ( )N M
k pk p
a y n k b x n p= =
− = −∑ ∑
Thay giá trị x(n) đã biết vào phương trình trên và chọn y(n) đồng
dạng với x(n) ta sẽ giải được nghiệm riêng yp(n) đồng dạng x(n)
• Bước 3: Xác định các hệ số nhờ điều kiện đầu
Nghiệm cuối của phương trình có dạng y(n) = y0(n) + yp(n)
Sử dụng các điều kiện đầu để tìm các hệ số còn chưa biết trong 2
bước trên và kết luận nghiệm cuối cùng.
4.2. Đáp ứng xung của hệ TTBB từ PT-SP-TT-HSH
Hệ có đáp ứng xung hữu hạn (FIR)
54
Xét phương trình sai phân:
0 0
( ) ( )N M
k pk p
a y n k b x n p= =
− = −∑ ∑
Với N = 0 phương trình trở thành:
00
( ) ( / ) ( )M
pp
y n b a x n p=
= −∑
Đồng nhất phương trình trên với phương trình quan hệ vào-ra của hệ
TTBB biết đáp ứng xung h(n):
( ) ( ) ( )p
y n h p x n p+∞
=−∞
= −∑
Ta suy ra đáp ứng xung của hệ có dạng:
h(n) = bp/a0 với 0≤n≤M
h(n) = 0 với các n còn lại
Rõ ràng ta thấy rằng trong trường hợp này h(n) được xác định dễ dàng và có độ
dài hữu hạn, khi đó hệ được gọi là hệ có đáp ứng xung hữu hạn (FIR).
Hệ có đáp ứng xung vô hạn (IIR)
Xét phương trình sai phân
0 0
( ) ( )N M
k pk p
a y n k b x n p= =
− = −∑ ∑
Với N > 0. Khi đó ta thấy rằng để tính h(n) ta sẽ thay x(n) = δ(n) vào phương
trình trên và ta có:
0 0
( ) ( )N M
k pk p
a h n k b n pδ= =
− = −∑ ∑
Đây là một phương trình hồi quy do đó h(n) có độ dài vô hạn. Khi đó hệ
được gọi là hệ có đáp ứng xung vô hạn (IIR)
55
4.3. Biểu diễn phương trình sai phân tuyến tính hệ số hằng sử dụng
sơ đồ
Nhằm phục vụ việc phân tích và tối ưu các phép toán cũng như bộ nhớ
cần dùng để thực hiện một hệ TTBB biểu diễn bởi PT-SP-TT-HSH, người ta sẽ
biểu diễn PT-SP-TT-HSH dưới dạng một sơ đồ các phần tử, dựa trên sơ đồ đó
để biến đổi tương đương nhằm đưa ra một sơ đồ sao cho số phép tính hay bộ
nhớ sử dụng để cài đặt sẽ tiết kiệm hơn sơ đồ ban đầu. Sau đây chúng ta sẽ xem
xét 2 chuẩn biểu diễn PT-SP-TT-HSH sử dụng sơ đồ.
Các phần tử cơ bản
• Phần tử cộng
• Phần tử nhân
• Phần tử trễ
Sơ đồ chuẩn 1
Sơ đồ chuẩn một được suy ra trực tiếp từ phương trình SPTTHSH sau khi
đã thực hiện chuẩn hoá phương trình về dạng sau:
0 10 0
( ) ( ) ( )M N
p k
p k
b ay n x n p y n k
a a= =
= − + − −∑ ∑
Sơ đồ chuẩn 1 có dạng sau:
56
Hình 11: Sơ đồ chuẩn dạng 1
Sơ đồ chuẩn 2
Trong sơ đồ chuẩn 1 ta có thể thấy rằng hệ được xem như ghép nối tiếp
của 2 hệ TTBB nhỏ hơn. Như vậy ta hoàn toàn có thể đảo vị trí của 2 hệ mà
không ảnh hưởng gì. Thao tác đó sẽ tạo ra sơ đồ trung gian có dạng sau
Hình 12: Sơ đồ trung gian
Trên sơ đồ trung gian ta sẽ ghép các bộ trễ cùng mức để tạo ra sơ đồ chuẩn 2 có
dạng:
57
Hình 13: Sơ đồ chuẩn 2
Ta thấy rằng trong chuẩn 2, số lượng bộ trễ đã giảm so với chuẩn 1 điều đó đồng
nghĩa với việc số lượng phép tính và bộ nhớ sử dụng khi cài đặt sẽ tiết kiệm hơn.
B. Thực hành
1. Hệ thống tuyến tính bất biến
1.1. Hệ thống trung bình động
Hệ thống trung bình động bậc M có phương trình sai phân:
1
0
1( ) ( )
M
m
y n x n mM
−
=
= −∑
Hệ thống này dung để lấy trung bình trọng số của các dãy lối vào và để lọc các
phần tần số cao của tín hiệu vào. Chương trình sau thực hiện phép lấy trung bình
động.
%mach loc trung binh dong
clf;
%phat tin hieu vao
n=0:100;
s1=cos(2*pi*0.05*n);
58
s2=cos(2*pi*0.47*n);
x=s1+s2;
%thuc hien loc trung binh dong
M=15;
num=ones(1,M);
y=filter(num,1,x)/M;
%hien thi cac tin hieu vao va ra
subplot(2,2,1);plot(n,s1);axis([0 100 -2 2])
title('tin hieu vao s1');
subplot(2,2,2);plot(n,s2);axis([0 100 -2 2])
title('tin hieu vao s2');
subplot(2,2,3);plot(n,x);axis([0 100 -2 2])
title('tin hieu tong hop x=s1+s2');
subplot(2,2,4);plot(n,y);axis([0 100 -2 2])
title('tin hieu qua bo loc trung binh dong do dai
M=15');
59
0 50 100-2
-1
0
1
2tin hieu vao s1
0 50 100-2
-1
0
1
2tin hieu vao s2
0 50 100-2
-1
0
1
2tin hieu tong hop x=s1+s2
0 50 100-2
-1
0
1
2tin hieu qua bo loc trung binh dong do dai M=15
1.2. Tính đáp ứng xung của hệ thống
Trong Matlab người ta sử dụng lệnh h=impz(num,den,N) để tính đáp ứng xung
của hệ thống thời gian rời rạc. Chương trình sau cho phép tính và vẽ đáp ứng
xung của hệ thống có phương trình sai phân sau:
y[n]-0.4y[n-1]+0.75y[n-2]=2.2403x[n]+2.4908x[n-1]+2.2403x[n-2]
%tin va ve dap ung xung
clf
N=40;
num=[2.2403 2.4908 2.2403];
den=[1 -0.4 0.75];
h=impz(num,den,N);
stem(h);grid
60
Hình 14: Đáp ứng xung của hệ thống
2. Khảo sát các tính chất của hệ thống tuyến tính bất biến
2.2.Tính chất tuyến tính của hệ thống
Ví dụ: khảo sát tính chất tuyến tính của hệ thống:
y[n]-0.4y[n-1]+0.75y[n-2]=2,2403x[n]+2,4908x[n-1]+2,2403x[n-2]
%kiem tra tinh chat tuyen tinh cua he thong
%Phat tin hieu vao
clf
n=0:40;a=2;b=-3;
x1=cos(2*pi*0.1*n);
x2=cos(2*pi*0.4*n);
x=a*x1+b*x2;
num=[2.2403 2.4908 2.2403];
den=[1 -0.4 0.75];
ic=[0 0] ;%dieu kien ban dau bang 0
y1=filter(num,den,x1,ic); %tinh y1(n)
y2=filter(num,den,x2,ic); %tinh y2(n)
61
y=filter(num,den,x,ic); %tinh y(n)
yt=a*y1+b*y2;
d=y-yt; %Tinh sai so
%ve tin hieu ra va sai so
subplot(3,1,1);stem(n,y);title('tin hieu ra y1');
subplot(3,1,2);stem(n,yt);title('tin hieu ra yt');
subplot(3,1,3);stem(n,d);title('tin hieu sai so d');
0 5 10 15 20 25 30 35 40-50
0
50tin hieu ra y1
0 5 10 15 20 25 30 35 40-50
0
50tin hieu ra yt
0 5 10 15 20 25 30 35 40-5
0
5x 10
-15 tin hieu sai so d
2.3.Hệ thống bất biến với thời gian
Cho hệ thống: y[n]-0.4y[n-1]+0.75y[n-2]=2.2403x[n]+2.4908x[n-1]+2.2403x[n-
2]
Tìm tín hiệu lối ra y[n] đối với hai tín hiệu lối vào x[n] và x[n-n0] và hiệu của
hai tín hiệu đó.
%Nghien cuu tinh chat bat bien voi thoi gian cua tin
hieu
62
clf
n=0:40;
n0=10;
a=0.3;b=-2;
xn=a*cos(2*pi*0.1*n)+b*cos(2*pi*0.4*n);
xn0=[zeros(1,n0) xn];
num=[2.2403 2.4908 2.2403];
den=[1 -0.4 0.75];
ic=[0 0];
yn=filter(num,den,xn,ic);
yn0=filter(num,den,xn0,ic);
dn=yn-yn0(1+n0:41+n0);
subplot(3,1,1);stem(n,yn);grid
subplot(3,1,2);stem(n,yn0(1:41));grid
subplot(3,1,3);stem(n,dn);grid
Hình 15: Tính chất bất biến theo thời gian của hệ thống
63
2.4.Tính ổn định của hệ thống tuyến tính bất biến
Cho hệ thống có phương trình sai phân: y[n]=x[n]-0.8x[n-1]-1.5y[n-1]-0.9y[n-2]
Xét tính ổn định của hệ thống
%Kiem tra tin on dinh cua he thong tuyen tinh b at
bien
clf;
num=[1 -0.8];den=[1 1.5 0.9];
N=200;
h=impz(num,den,N+1);
parsum=0;
for k=1:N+1
parsum=parsum+abs(h(k));
if abs(h(k))<10^(-6),break,end
end
%Ve dap ung xung don vi
n=0:N;
stem(n,h);
xlabel('chi so thoi gian n');ylabel('bien do');
title('Dap ung xung don vi');
64
Hình 16: Tính ổn định của hệ thống tuyến tính bất biến
2.5.Ghép nối tiếp các hệ thống tuyến tính bất biến
Trong thực tế, người ta thường ghép nối tiếp các hệ thống LTI nhân quả bậc
thấp (thường là bậc 2) với nhau để được các hệ thống bậc cao. Chẳng hạn, người
ta ghép hai hệ thống bậc hai có phương trình sai phân sau:
1 1 1[ ] 0,9 [ 1] 0,8 [ 2] 0,3 [ ] 0,3 [ 1] 0,4 [ 2]y n y n y n x n x n x n= − + − = − − + − (*)
Và
2 2 2 1 1 1[ ] 0,7 [ ] 0.85 [ 2] 0,2 0,5 [ 1] 0,3 [ 2]y n y n y n y y n y n+ + − = − − + − (**)
Để thu được hệ thống bậc 4 có phương trình sai phân sau:
[ ] 1,6 [ 1] 2,38 [ 2] 1,325 [ 3] 0,68 [ 4]
0,06 [ ] 0,19 [ 1] 0,27 [ 2] 0,26 [ 3] 0,12 [ 4]
y n y n y n y n y n
x n x n x n x n x n
+ − + − + − + −
= − − + − − − + −(***)
Chương trình sau mô phỏng hệ thống bậc 4 với phương trình sai phân (***) và
hệ thống nối tiếp hai hệ thống bậc hai (*) với (**). Trong chương trình này, tín
hiệu x[n] là tín hiệu lối vào của hệ thống bậc 4(***) có tín hiệu ra y[n]. Sau đó
áp dụng lối vào x[n] này cho hệ thống bậc hai với phương trình sai phân (*) để
tìm tín hiệu ra y1[n]. Tiếp đến dùng y1[n] làm tín hiệu lối vào cho hệ thống bậc
hai có phương trình sai phân (**) để tìm lối ra y2[n]. Cuối cùng lấy hiệu số giữa
tín hiệu ra y[n] với y2[n] để xác định sai số thực hiện.
%thuc hien ghep noi tiep hai he thong LTI
65
clf;
x=[1 zeros(1,40)]; %tao tin hieu vao x[n]
%cac he so cua he thong bac 4
den=[1 1.6 2.28 1.325 0.68];
num=[0.06 -0.19 0.27 -0.26 0.12];
%tin tin hieu loi ra cua he thong bac 4
y=filter(num,den,x);
%cac he so cua hai thong bac 2
num1=[0.3 -0.2 0.4];den1=[1 0.9 0.8];
num2=[0.2 -0.5 0.3];den2=[1 0.7 0.85];
%Tin hieu ra y1[n]
y1=filter(num1,den1,x);
%Tin hieu ra y2[n]
y2=filter(num2,den2,y1);
%Hieu hai tin hieu d[n]=y2[n]-y[n]
d=y-y2;
%Ve cac tin hieu
subplot(3,1,1);
stem(n,y);xlabel('Chi so thoi gian n');
ylabel('Bien do');title('Tin hieu ra cua he thong bac
4');grid;
subplot(3,1,2);
stem(n,y2);xlabel('Chi so thoi gian n')
ylabel('Bien do');title('Tin hieu ra cua he thong noi
tiep');grid;
subplot(3,1,3);
stem(n,d);
66
xlabel('Chi so thoi gian n');ylabel('Bien do');
title('sai so cua y2 va y');
0 5 10 15 20 25 30 35 40-1
0
1
Chi so thoi gian n
Bie
n d
o
Tin hieu ra cua he thong bac 4
0 5 10 15 20 25 30 35 40-1
0
1
Chi so thoi gian n
Bie
n d
o
Tin hieu ra cua he thong noi tiep
0 5 10 15 20 25 30 35 40
-0.50
0.5
x 10-14
Chi so thoi gian n
Bie
n d
o
sai so cua y2 va y
C. Bài tập
1. Bài tập củng cố lý thuyết
Cho một hệ thống tuyến tính có các cặp tín hiệu đầu vào và đầu ra tương ứng
như sau:
x1(n) = [−1, 2, 1] và y1(n) = [1, 2,−1, 0, 1]
x2(n) = [1,−1,−1] và y2(n) = [−1, 1, 0, 2]
x3(n) = [0, 1, 1] và y3(n) = [1, 2, 1]
Hãy kiểm tra tính tuyến tính của hệ thống
Khi một tín hiệu đầu vào x(n) = 3δ(n−2) được đưa vào một hệ thống tuyến tính
bất biến nhân quả, đầu ra của hệ thống có dạng: y(n) = 2(−1/2)n + 8(1/4)n (n ≥ 2)
Tìm đáp ứng xung đơn vị của hệ thống h(n).
67
Tính tích chập của hai tín hiệu x(n) = [1, 3,−1,−2] và h(n) = [1, 2, 0,−1, 1]
Tính tích chập y(n) = x(n) * h(n) của các cặp tín hiệu sau:
a. x(n) = [3,1/2,−1/4, 1, 4], h(n) = [2,−1, 1/2,−1/2 ]
b. x(n) = [6, 5, 4, 3, 2, 1], h(n) = [1, 1, 1, 1]
c. x(n) = [−1, 3,−1,−2], h(n) = [−2, 2, 0,−1, 1]
Các hệ thống nào sau đây là bất biến theo thời gian:
a. y(n) = T[x(n)] = x(n) – x(n-1)
b. y(n) = T[x(n)] = x(-n)
c. y(n) = T[x(n)] = x(n)cos(ω0n)
Xét tính nhân quả của các hệ xử lý số sau:
a. )(.)( nxnny =
b. )()( 23 += nxny
Hãy xét tính bất biến của các hệ thống sau:
a. )(.)( nxnny =
b. )()( 2 nxny =
Tìm đáp ứng y(n) của hệ thống LTI nhân quả có đặc tính xung )()( 2 nrectnh = với
tác động là )()( 3 nrectnx = .
Tìm đáp ứng y(n) của hệ thống LTI nhân quả có đặc tính xung với tác động là
)(.)( 3 nrectnnx = .
Hãy xác định đáp ứng y(n) của hệ thống LTI nhân quả có có đặc tính xung h(n)
và tác động x(n) trên hình.
Tìm đặc tính xung h(n) của hệ thống LTI nhân quả ở hình.
68
Hãy xây dựng sơ đồ cấu trúc của hệ thống LTI có đặc tính xung )()( 13 += nrectnh
Hãy xây dựng sơ đồ cấu trúc của hệ thống LTI có đặc tính xung )()( nuanh n= ,
với a là hằng số.
2. Một số bài tập với Matlab
1. Sử dụng matlab để xác định tính bất biến của hệ thống có phương trình sai
phân sau: y(n) = 2.2403 x(n) + 2.4908 x(n – 1)
2. Sử dụng Matlab để thực hiện ghép nối hai hệ thống LTI sau
y1(n) + 0.9y1(n–1) + 0.8y1(n–2) = 0.3x(n) – 0.3x(n–1) + 0.4x(n–2)
và
y2(n) + 0.7y2(n–1) + 0.85y2(n–2) = 0.2y1(n) – 0.5y1(n–1) + 0.3y1(n–2)
3.Sử dụng Matlab kiểm tra tính ổn định của hệ thống LTI sau:
y(n) = x(n) – 0.8x(n-1) – 1.5y(n–1) – 0.9 y(n–2)
69
THỜI GIAN (GIỜ) MÃ SỐ BÀI HỌC
XLS01-03
TÊN BÀI HỌC
BIẾN ĐỔI Z LT: 6 TH:6 TS:12
MỤC TIÊU:
Sau khi học xong bài này, học viên có thể: Biểu diễn tín hiệu và hệ thống rời rạc trong miền Z
NỘI DUNG:
A. Lý thuyết
1. Biến đổi Z
1.1. Định nghĩa phép biến đổi Z
Cho tín hiệu rời rạc x(n), phép biến đổi Z của x(n) được định nghĩa như
sau:
a. Phép biến đổi Z 2 phía:
b. Phép biến đổi Z 1 phía:
0
( ) ( ) n
n
X z x n z+∞
−
=
= ∑
Trong tài liệu này chúng ta sử dụng cụm từ phép biến đổi Z mặc định cho
phép biến đổi Z 2 phía.
1.2. Miền hội tụ của phép biến đổi Z
Định nghĩa
Cho tín hiệu rời rạc x(n), X(z) là biến đổi Z của x(n), tập các giá trị của z
sao cho |X(z)| < +∞ được gọi là miền hội tụ của phép biến đổi Z của x(n) (ROC)
Xác định miền hội tụ với tín hiệu rời rạc x(n) cho trước
a. Định lý Cauchy
Chuỗi 0
( )n
S u n+∞
=
= ∑ hội tụ khi và chỉ khi
70
1/| ( ) | 1n
nLim u n→+∞
<
b. Miền hội tụ
( ) ( ) n
n
X z x n z+∞
−
=−∞
= ∑ =
1
0
( ) ( )n n
n n
x n z x n z+∞ −
− −
= =−∞
+∑ ∑
Đặt X1(z) = 0
( ) n
n
x n z+∞
−
=∑ , X2(z) =
1
( ) n
n
x n z−
−
=−∞
∑
Áp dụng định lý Cauchy đối với X1(z) ta được:
1/| | | ( ) | n
xn
z Lim x n R−
→+∞> =
Áp dụng định lý Cauchy đối với X2(z) ta được:
1/
1| |
| ( ) |xn
n
z RLim x n
+
→+∞
< =−
Cuối cùng ta có:
ROC = z | Rx- < |z| < Rx
+
Hình 17: Miền hội tụ
* Miền hội tụ của tín hiệu có chiều dài hữu hạn
Khi tín hiệu x(n) có chiều dài hữu hạn (giả sử x(n) = 0 với mọi n không
thuộc đoạn [n1,n2]) thì chúng ta không sử dụng định lý cauchy để xác định miền
hội tụ của X(z) mà khi đó chỉ cần từng phần tử trong công thức biến đổi Z của
x(n) là hữu hạn:
71
- 0 ≤ n1 < n2: Khi đó để các phần tử dạng zn hữu hạn thì |z| ≠+∞
- n1 < n2 ≤ 0: Khi đó để các phần tử dạng zn hữu hạn thì z ≠ 0
- n1 < 0 < n2: Khi đó để các phần tử dạng zn hữu hạn thì z ≠ 0 và
|z| ≠+∞
Ví dụ: Cho tín hiệu x(n) = u(n) Hãy tính X(z) và miền hội tụ
Điểm cực và điểm không
Một loại biến đổi Z thông dụng và quan trọng đó là biến đổi Z mà X(z)
của nó có dạng là một hàm hữu tỉ với mọi z thuộc miền hội tụ, nghĩa là:
X(z) = P(z)/Q(z)
Trong đó, P(z) và Q(z) là các đa thức biến z hay z-1.
• Các giá trị của z sao cho X(z) = 0 được gọi là các điểm không của X(z)
(Nghiệm của P(z))
• Các giá trị của z sao cho X(z) = ∞ được gọi là các cực của
X(z). (Nghiệm của Q(z))
Như vậy chúng ta có nhận xét rằng: Miền hội tụ không chứa các điểm cực
Biểu diễn X(z) theo các điểm cực và không.
2. Biến đổi Z ngược
Bài toán: Cho biết X(z) và miền hội tụ của nó, hãy tìm tín hiệu rời rạc x(n)
2.1. Định lý Cauchy
1 11
0 12k
C
kz dz
kjπ−
==
≠∫Ñ
2.2. Phép biến đổi Z ngược
Ta có:
( ) ( ) n
n
X z x n z+∞
−
=−∞
= ∑
Suy ra:
72
1 11 1( ) ( ) ( )
2 2k k n
CnC
z X z dz x n z dz x kj jπ π
+∞− − −
=−∞
= =∑∫ ∫Ñ Ñ
Các phương pháp tính biến đổi Z ngược
- Phương pháp thặng dư
1
1|
1
1( ) ( )
2
( ( ) )pk
k
C
Nk
z zk
x k X z z dzj
RES X z z
π−
−=
=
=
=
∫
∑
Ñ
Trong đó N là số cực của X(z)zk-1 và zp1…zpN lần lượt là các cực của
X(z)zk-1 với các bậc tương ứng là s1…sN. Đại lượng RES là thặng dư của hàm số
được tính bởi:
| |1
1( ( )) ( ( )( ) )
( 1)!k
p pkk k
sz z k z zs
k
dRES z z z z
s dz= =−
Ψ = Ψ −−
Ví dụ: Cho 1
1( )
1 2X z
z−=
−Hãy tính x(n) sử dụng phương pháp thặng dư
- Phương pháp phân tích thành phân thức đơn giản
Bảng các phép biến đổi Z đơn giản
Tín hiệu Biến đổi Z Miền hội tụ
( )nδ 1 Toàn mặt phẳng Z
u(n) 1
1
1 z−− |z| > 1
-u(-n-1) 1
1
1 z−− |z| < 1
( )n mδ − mz− Toàn MPZ trừ 0 nếu
m > 0, trừ ∞ nếu m < 0
( )na u n 1
1
1 az−− |z| > |a|
( 1)na u n− − − 1
1
1 az−− |z| < |a|
73
( )nna u n 1
1 2(1 )
az
az
−
−−
|z| > |a|
( 1)nna u n− − − 1
1 2(1 )
az
az
−
−−
|z| < |a|
cos( ) ( )n u nΩ 1
1 2
1 cos( )
1 (2cos )
z
z z
−
− −
− Ω
− Ω +
|z| > 1
sin( ) ( )n u nΩ 1
1 2
(sin )
1 (2cos )
z
z z
−
− −
Ω
− Ω +
|z| > 1
Để tính biến đổi Z ngược của một biểu thức phức tạp, người ta có thể
phân tích các biểu thức phức tạp này thành tổ hợp tuyến tính của các biểu thức
đơn giản hơn, sau đó sử dụng tính tuyến tính của phép biến đổi Z suy ra kết quả
cuối cùng từ các kết quả đã được tính sẵn có trong bảng.
Với một lớp các biểu thức ta có thể áp dụng phương pháp sau:
ik
1 1
( )
( ) ( )
i
i
SN
ji j p
AN z
D z z z= =
=−
∑∑
Trong đó N(z) và D(Z) là 2 đa thức của z, giả sử rằng bậc của N(z) nhỏ hơn bậc
của D(z) và phân thức là tối giản. N là số nghiệm của D(z), zp1…zpN là các
nghiệm của D(z) với bậc tương ứng là s1…sN, Aik là các hệ số được tìm theo
công thức:
|
1 ( )( ( ) )
( )! ( )i
i pi i
sik p z zs k
i
d N zA z z
s k dz D z=−
= −−
Ví dụ: Cho 2
2
1( )
3 2
zX z
z z
−=
− + Hãy tính các tín hiệu x(n). Có tín hiệu x(n) nào
nhân quả trong các tín hiệu tìm được hay không?
- Phương pháp chia đa thức
74
3. Các tính chất của biến đổi Z
3.1. Tính tuyến tính
Cho 2 tín hiệu x1(n) và x2(n) với các biến đổi z tương ứng là: X1(z) = ZT(x1(n)) MHT1 = R-
1 < |z| < R+1
X2(z) = ZT(x2(n)) MHT2 = R-2 < |z| < R+
2 Khi đó: ZT(αx1(n) + βx2(n)) = αX1(z) + βX2(z) với miền hội tụ là MHT1 ∩ MHT2
3.2. Tính dịch thời gian
Cho tín hiệu x(n) có biến đổi Z là X(z) = ZT(x(n)) với miền hội tụ (MHT) là R- < |z| < R+. Khi đó ZT(x(n-k)) = z-kX(z) với cùng miền hội tụ trên, trong đó k là một hằng số nguyên.
3.3. Tính chất thay đổi thang tỷ lệ
Cho tín hiệu x(n) có biến đổi Z là X(z) = ZT(x(n)) với miền hội tụ (MHT) là R- < |z| < R+. Khi đó ZT(anx(n)) = ( )
zX
a với miền hội tụ | | | | | |a R z a R− +< <
3.4. Tính đảo trục thời gian
Cho tín hiệu x(n) có biến đổi Z là X(z) = ZT(x(n)) với miền hội tụ (MHT) là R- < |z| < R+. Khi đó ZT(x(-n)) =
1( )Xz
với miền hội tụ 1 1
| |zR R+ −
< <
3.5. Tính chất vi phân trong miền Z
Cho tín hiệu x(n) có biến đổi Z là X(z) = ZT(x(n)) với miền hội tụ (MHT) là R- < |z| < R+. Khi đó
75
( ( ))dX
ZT nx n zdz
= −
3.6. Phép biến đổi Z của tổng chập
Cho 2 tín hiệu x1(n) và x2(n) với các biến đổi z tương ứng là: X1(z) = ZT(x1(n)) MHT1 = R-
1 < |z| < R+1
X2(z) = ZT(x2(n)) MHT2 = R-2 < |z| < R+
2 Khi đó: ZT(x1(n)*x2(n)) = X1(z)X2(z) với miền hội tụ là MHT1 ∩ MHT2
3.7. Định lý giá trị đầu
Cho tín hiệu x(n) có biến đổi Z là X(z) = ZT(x(n)) với miền hội tụ (MHT) là R- < |z| < R+. Khi đó nếu x(n) là tín hiệu nhân quả thì:
(0) ( )z
x LimX z−>∞
=
4. Biểu diễn hệ thống trong miền Z
4.1. Hàm hệ thống H(z)
Định nghĩa : Hàm hệ thống H(z) của hệ xử lý số TTBBNQ là biến đổi Z của đặc tính xung h(n) : ∑
∞
=
−==0
).()]([)(n
nznhnhZTzH [4-1] với −> hRHRC zz ||:)]([
Phản ứng y(n) của hệ xử lý số TTBBNQ được tính theo tích chập: h(n)*x(n)ny =)(
Có thể tìm được : )]([)( nxZTzX = và )]([)( nhZTzH = Do đó, theo tính chất tích chập của biến đổi Z có :
)().()](*)()([)( zznhnxnyZTz HXY === [4-2]
Từ đó suy ra : )(
)()(
z
zz
X
YH = [4-3]
Theo [4-3] , hàm hệ thống H(z) của hệ xử lý số TTBBNQ là tỷ số của phản ứng Y(z) và tác động X(z), do đó hàm hệ thống H(z) còn được gọi là hàm truyền đạt Z của hệ xử lý số TTBBNQ. Biểu thức [4-3] cho phép tìm hàm hệ thống H(z) của hệ xử lý số TTBBNQ khi biết tác động X(z) và phản ứng Y(z), còn biểu thức [4-2] cho phép tìm phản ứng Y(z) và y(n) của hệ xử lý số TTBBNQ khi biết hàm hệ thống H(z) và tác động X(z). Lấy biến đổi Z ngược hàm hệ thống H(z) của hệ xử lý số TTBBNQ , nhận được đặc tính xung h(n) của hệ :
)]([)( zIZTnh H= với −> hRHRC zz ||:)]([ [4-4]
76
Từ quan hệ vào ra [4-2], có thể mô tả hệ xử lý số TTBBNQ theo sơ đồ khối trên Hình 18, do đó hàm hệ thống H(z) đặc trưng cho cấu trúc phần cứng hoặc thuật toán phần mềm của hệ xử lý số trong miền Z.
Tìm hàm hệ thống H(z) từ phương trình sai phân Xét hệ xử lý số TTBBNQ được mô tả bằng phương trình sai phân tuyến
tính hệ số hằng tổng quát bậc N :
∑∑==
−=−MN
k
k
r
r knxbrnya00
)()(
Lấy biến đổi Z cả hai vế của phương trình sai phân trên :
−=
− ∑∑
==
MN
k
k
r
r knxbZTrnyaZT00
)()(
Theo tính chất tuyến tính và tính chất trễ của biến đổi Z nhận được :
∑∑=
−
=
− =MN
k
kk
r
rr zzbzza XY
00
)()(
Suy ra : )(
0
)(
0
)(
0
0
)(
)()( MN
NN
MM
N
M
z
za
zb
za
zb
z
zz
r
rr
k
kk
r
rr
k
kk
X
YH −
=
−
=
−
=
−
=
−
∑
∑
∑
∑=== [4-5]
Có thể biểu diễn hàm hệ thống H(z) qua N cực điểm pkz của nó :
)(....))((
)...(
)(
)()(
210
110
)(
N
M
MMMN
ppp zzzzzza
bzbzbz
z
zz
X
YH
−−−
++−+==
−
[4-6]
ở đây cần lưu ý rằng, để tìm đúng H(z) thì phương trình đặc trưng 0)( =zD phải có hệ số 10 =a , vì thế nếu 10 ≠a thì phải nhóm 0a ra ngoài.
Lấy biến đổi Z ngược biểu thức [4-6] với ]max[||:)]([ pkzzzHRC > , nhận được đặc tính xung h(n) của hệ :
==
)(
)()]([)(
zX
zYIZTzIZTnh H [4-7]
Ví dụ : Cho hệ xử lý số TTBBNQ có phương trình sai phân : )()()()()( 1322142 −−=−+−− nxnxnynyny
Hãy xác định hàm hệ thống H(z) và đặc tính xung h(n) của hệ. Giải : Lấy biến đổi Z cả hai vế của phương trình sai phân trên :
)()()()()( 121 3242 zzzzzzzz XXYYY −−− −=+−
Hay : ))(())(( 121 31242 −−− −=+− zzzzz XY
H(z) X(z) Y(z)
Hình 18: Sơ đồ khối hệ xử lý số TTBBNQ theo hàm hệ thống H(z)
77
)(
)(
)(
)(
)(
)(
)(
)()(
122
3
122
3
242
31222
1
21
1
+−
−=
+−
−=
+−==
−
−
−−
−−
zz
zz
zzz
zz
zz
z
z
zz
X
YH
Vậy hàm hệ thống là : 22 )(
)(
)(
)(
)(
)()(
12
3
122
3
−
−=
+−
−==
z
zz
zz
zz
z
zz
X
YH
Lấy biến đổi Z ngược hàm hệ thống H(z), tìm được đặc tính xung h(n) :
−
−==
2)(
)()]([)(
12
3
z
zzIZTzIZTnh H với 1[ ||:)]( >zzHRC
Để tìm h(n), phân tích hàm : 2
21
2 )()()(
)()(
1112
3
−+
−=
−=
−
zzz
z
z
z CCH
Trong đó : 12
311
12
1322
2
2)(
))((−=
−=⇒=−
−−= CC zz
zz
2
11
12
1312
2
1)(
))((=⇒=
−
−−= CC zz
zz
dz
d
Vậy : 22 )()()(
)()(
1
1
12
1
12
3
−−
−=
−=
−
zzz
z
z
zH
2)()(
)(112
1
−−
−=⇒
z
z
z
zzH
Với 1[ ||:)]( >zzHRC , theo bảng các phép biến đổi Z đơn giản tìm được đặc tính xung h(n):
)(.)()( 5,0 nunnunh −= Hay : )().()( 5,0 nunnh −= Tìm phản ứng y(n) của hệ xử lý số qua biến đổi Z Khi biết đặc tính xung h(n) của hệ xử lý số TTBBNQ và tác động x(n), có thể tìm được phản ứng y(n) của hệ xử lý số theo tích chập :
h(n)*x(n)ny =)( Các phương pháp tính trực tiếp tích chập đã được trình bầy ở chương một đều khá phức tạp, và trong nhiều trường hợp không thể tìm được biểu thức của phản ứng y(n). Có thể tìm phản ứng y(n) của hệ xử lý số TTBBNQ dễ dàng hơn bằng cách tính tích chập qua biến đổi Z, các bước thực hiện như sau : 1- Tìm các biến đổi Z thuận : )]([)( nxZTzX = và )]([)( nhZTzH = 2- Từ đó xác định được : )().()( zzz HXY = 3- Tìm biến đổi Z ngược : )]().([)]([)( zzIZTzIZTny HXY == Trong đa số các trường hợp, hàm hệ thống H(z) và tác động X(z) có dạng phân thức hữu tỷ :
)(
)()(
z
zz
A
BH = và
)(
)()(
z
zz
Q
PX =
Do đó phản ứng Y(z) của hệ xử lý số TTBBNQ là :
78
)().(
)().()().()(
zz
zzzzz
QA
PBHXY ==
Trước hết xét trường hợp hàm hệ thống H(z) có N cực điểm đơn zpk là nghiệm của phương trình đặc trưng 0)( =zA , còn tác động X(z) có m cực điểm đơn zpi là nghiệm của phương trình đặc trưng 0)( =zQ , trong đó các cực zpk ≠ zpi với mọi k và i. Đồng thời, các cực điểm của hàm hệ thống H(z) không bị loại trừ bởi các không điểm của tác động X(z) và ngược lại. Để tìm phản ứng y(n) của hệ xử lý số TTBBNQ , phân tích hàm :
∑∑== −
+−
=m
i pi
kn
k pk
k
zzzzz
z QAY
10 )()(
)(
Phản ứng y(n) của hệ xử lý số TTBBNQ là dãy nhân quả, nên với ],max[||:)]([ pipk zzzzYRC > , nhận được y(n) là tổng của hai thành phần :
)()(..)( 0
10
nynyzzny p
m
i
npik
n
k
npkk QA +=+= ∑∑
==
[4-8]
Trong đó dao động tự do : ∑=
=n
k
npkk zny A
0
0 .)( [4-9]
Thành phần dao động tự do y0(n) của y(n) phụ thuộc vào các cực của hàm hệ thống H(z), tức là phụ thuộc vào cấu trúc của hệ xử lý số.
Còn dao động cưỡng bức : ∑=
=m
k
npikp zny Q
1
.)( [4-10]
Thành phần dao động cưỡng bức yp(n) của y(n) phụ thuộc vào các cực của tác động X(z), tức là phụ thuộc vào dạng của tác động x(n). Giá trị của các hệ số Ak và Qk được phụ thuộc vào cả hàm hệ thống H(z) lẫn tác động X(z). Trong trường hợp hàm hệ thống H(z) hoặc tác động X(z) có các cực bội thì phải phân tích Y(z). Tương tự như trên, phản ứng y(n) cũng là tổng của hai thành phần dao động tự do và dao động cưỡng bức :
)()()( 0 nynyny p+= [4-11]
Nếu một số cực điểm của hàm hệ thống H(z) bị loại trừ bởi các không điểm của tác động X(z) (hoặc ngược lại), thì thành phần dao động tự do (hoặc dao động cưỡng bức) sẽ mất bớt các số hạng tương ứng. Ví dụ: Cho hệ xử lý số có đặc tính xung )()( 13 −= nrectnh và tác động
)(.)( 2 nunx n= , tìm phản ứng y(n) và xác định tính ổn định của hệ. Giải : Theo bảng biến đổi Z tìm được các biến đổi Z thuận :
)()](.[)]([)(
22
−===
z
znuZTnxZTz n
X
3
2
3
3 )(
)()]([)(
1
1
1
z
zz
zz
znhZTzH
++=
−
−==
79
Phản ứng : )(
)()(.
)()().()(
2
11
2 2
2
3
2
−
++=
++
−==
zz
zz
z
zz
z
zzzz HXY
Không điểm z01 = 0 của tác động X(z) đã hạ bậc cực bội zp1 = 0 của hàm hệ thống H(z), do đó dao động tự do y0(n) sẽ bớt đi một số hạng.
Phản ứng của hệ là :
−
++==
)(
)()]([)(
2
12
2
zz
zzIZTzIZTny Y
Để tìm y(n), phân tích Y(z) thành tổng của các phân thức :
)()(
)()(
22
13
3
2
21
3
2
−+++=
−
++=
zzzzzz
zz
z
z BCCCY [4-12]
Trong đó, các hệ số C1 , C2 , C3 phụ thuộc vào cực bội bậc 3 của hàm hệ thống H(z) tại zp1 = 0 , hệ số B phụ thuộc vào cực đơn của tác động X(z) tại zp2 = 2 . Tính các hệ số của [4-12] :
8
7
2
1222
2
)213
2
3
2 )(
)(
)((=
++=⇒=−
−++= BB zzz
zzz
2
1
2
10
2
1
)()(
)(33
32
3 −=−
=⇒=−
++= CC zzz
zzz
02
10
2
1
)(
)(
)(
)( 2
23
32
2 =
−
++=⇒=
−
++= zz
zz
dz
dzzz
zzz
dz
dCC
02
11222
2
2)
)))
(
(((=
−
−
+++−= zz
zzzzC
02
12422
22
2)
)
(
(=
−
−
−−−−+= zz
zzzzzC
4
3
2
30
2
34222
2
2)()(
)(−=
−=⇒=−
−−=
−CC zz
zz
02
34002
12
22
2
2
2
1)
)
)
)
(
(
(
(===
−
−−==
−
++= zzz z
zz
dz
d
dz
d
z
zz
dz
d CC
02
34224224
22
1)(
))(()()(=−
−−−−−−= zz
zzzzzC
4
7
16
12
2
32.242 16
)(
)).(().()(14
2
1 −=−−
=⇒−
−−−−−= CC
Thay giá trị của các hệ số trên vào [4-12] nhận được :
)(
)(
2
1
8
71
2
11
4
31
4
732 −
+−−−=zzzzz
zY
Vậy : )(
)(28
71
2
11
4
3
4
72 −
+−−−=z
z
zzzY
80
Vì hệ xử lý số là TTBBNQ nên phản ứng y(n) là dãy nhân quả, với 2[ ||:)]( >zzYRC , theo bảng biến đổi Z nhận được :
)()(()()()()( 028
72
2
11
4
3
4
7nynynunnnny p
n +=+−−−−−= δδδ
Trong đó dao động tự do : )()()()( 22
11
4
3
4
70 −−−−−= nnnny δδδ
Và dao động cưỡng bức : )()( 28
7nuny n
p =
Vì 0)(0 =ny khi 2>n , nên hệ đã cho ổn định.
4.2. Xét tính ổn định của hệ xử lý số TTBBNQ theo hàm hệ thống H(z)
Điều kiện ổn định của hệ xử lý số TTBBNQ theo H(z)
Vì các hệ xử lý số TTBB phản nhân quả và không nhân quả không có trên thực tế, nên chỉ cần xét tính ổn định của các hệ xử lý số TTBBNQ.
Điều kiện ổn định của hệ xử lý số TTBBNQ trong miền thời gian rời rạc n:
0)(lim =∞→
nhn
[4-13] Vì )]([)( zIZTnh H= nên dựa vào [4-13] có thể tìm được điều kiện ổn định
của hệ xử lý số TTBBNQ theo hàm hệ thống H(z). Theo các cực của hàm hệ thống H(z), có thể phân tích H(z) thành tổng các
phân thức, khi đó h(n) là tổng các thành phần tương ứng. Để hệ xử lý số TTBBNQ ổn định, tất cả các thành phần của h(n) đều phải thỏa mãn [4-13]. Theo các cực đơn, cực bội hoặc cực phức của H(z), đặc tính xung h(n) có các dạng như sau :
Với các cực thực đơn pkz , thành phần đặc tính xung )(nhk được xác định: )(..)( nuznh n
pkkk B= Từ điều kiện ổn định [4-13] : 0)](..[lim)(lim ==
∞→∞→nuznh n
pkkn
kn
B Suy ra : 0)(lim =
∞→n
npkz
Hay : 1|| <pkz [4-14] Với các cực phức liên hợp pez , thành phần đặc tính xung )(nhe được xác
định theo: )cos().(||)( .2 epn
pee nnuznh E ϕϕ +=
Từ điều kiện ổn định [4-13] : 0)(lim =∞→
nhen
⇒ 0||lim =∞→n
npez
Hay : 1|| <pez [4-15]
Với các cực thực bội pkz , thành phần đặc tính xung )(nhk được xác định theo:
∑=
−
−
−−−=
q
i
inpqiq nuz
i
innnnh C
1
)( )(..)!(
))....((.)(
1
11
Từ điều kiện ổn định [4-13] : 0)(lim =∞→nq nh ⇒ 0)(lim =
∞→n
npqz
Hay : 1|| <pqz [4-16]
81
Tổng hợp các biểu thức [4-14] , [4-15] và [4-16] , để hệ xử lý số TTBBNQ ổn định theo điều kiện [4-13] thì tất cả các cực pkz của hàm hệ thống H(z) phải thỏa mãn điều kiện :
1|| <pkz [4-17]
Điều kiện ổn định [4-17] của hệ xử lý số TTBBNQ có thể được phát biểu như sau: Điều kiện đủ để hệ xử lý số TTBBNQ ổn định là tất cả các cực điểm của hàm hệ thống H(z) đều nằm trong vòng tròn đơn vị |z|= 1 Hệ xử lý số TTBBNQ có đặc tính xung h(n) là dãy nhân quả, hàm hệ thống H(z) có ]max[||:)]([ pkzzzHRC > , nên điều kiện ổn định [4-17] còn được phát biểu như sau : Điều kiện đủ để hệ xử lý số TTBBNQ ổn định là vòng tròn đơn vị |z|= 1 nằm trong miền hội tụ của hàm hệ thống H(z) . Hình 19 minh họa điều kiện ổn định của hệ xử lý số TTBBNQ .
a. 1|| =<− zxR , hệ ổn định b. 1|| =≥− zxR , hệ không ổn định Điều kiện ổn định [4-17] chỉ là điều kiện đủ, vì nếu hệ xử lý số TTBBNQ có hàm hệ thống H(z) thỏa mãn điều kiện [4-17] thì chắc chắn ổn định với mọi dạng tác động x(n). Tuy nhiên, hệ xử lý số TTBBNQ có hàm hệ thống H(z) không thỏa mãn điều kiện ổn định [4-17], nhưng nếu dạng của tác động x(n) làm cho X(z) có các không điểm kz0 loại trừ tất cả các cực điểm 1|| >pkz của H(z), thì hệ vẫn ổn định. Ví dụ : Xét hệ xử lý số TTBBNQ có hàm hệ thống :
))(()()()(
5,05,1.275,02.25,14222 −−
=+
=+
=−− zz
z
zz
z
zz
zzH
Vì H(z) có hai cực đơn là 5,11 =pz và 5,02 =pz , trong đó 15,1|| 1 >=pz , nên hệ đã cho không thỏa mãn điều kiện ổn định [4-17].
Tuy nhiên, với tác động )()()( 1.5,1 −−= nununx thì hệ đã cho sẽ ổn định, thật
vậy : )(
),(
)()()(
1
51
1
5,1
1 −
−=
−−
−=
z
z
zz
zzX
Phản ứng : ))(())((
.)(
),()().()(
5,01
5,0
5,05,1.21
51
−−=
−−−
−==
zz
z
zz
z
z
zzzz HXY
Hình 19: Điều kiện ổn định của hệ xử lý số TTBBNQ theo H(z)
82
Để tìm phản ứng y(n) của hệ, phân tích hàm :
)()()()(
)(
5,0
1
1
1
5,01
21
−−
−=
−−
−=
zzzzz
z AAY
Vậy : )()(
)().()(5,01 −
−−
==z
z
z
zzzz HXY
Hệ xử lý số là TTBBNQ nên với 1[ ||:)]( >zzYRC , theo bảng 2.3 nhận được:
)()()()()]([)( 05,0 nynynunuzIZTny pn
Y −−== =
Thành phần dao động tự do của phản ứng )()( 5,00 nuny n−= → 0 khi n → ∞, vì thế hệ đã cho ổn định, mặc dù nó không thỏa mãn điều kiện ổn định [4-17]. Nguyên nhân là không điểm z01 = 1,5 của tác động X(z) đã loại trừ cực điểm zp1 = 1,5 của hàm hệ thống H(z), làm cho dao động tự do y0(n) không còn thành phần mất ổn định ứng với )(5,1 nun .
Muốn xét tính ổn định của hệ xử lý số TTBBNQ theo điều kiện ổn định [4-17], phải giải phương trình đặc trưng D(z) = 0 để tìm tất cả các cực điểm của hàm hệ thống H(z). Giải các phương trình có bậc lớn hơn 3 là phức tạp, vì thế người ta xây dựng các tiêu chuẩn để xét tính ổn định của hệ xử lý số TTBBNQ mà không cần giải phương trình D(z) = 0 . Tiêu chuẩn ổn định Jury
Tiêu chuẩn Jury cho phép xác định tính ổn định của hệ xử lý số TTBBNQ theo các hệ số của phương trình đặc trưng D(z) = 0. Xét phương trình D(z) = 0 dưới dạng lũy thừa của nz − :
01 )1(1
22
11 ......)( =+++++= −−−
−−− N
N
N
N zazazazazD [4-18]
Hay dưới dạng lũy thừa của nz : 01
22
11 ......)( =+++++= −
−−NN
NNN azazazazzD [4-19]
Các phương trình [4-18] và [4-19] có bậc N và hệ số a0 = 1 Sử dụng các hệ số a0 ÷ aN của phương trình [4-18] hoặc [4-19], lập được
bảng Jury gồm (N – 1) hàng như sau : Bảng Jury
Hàng Các phần tử tính theo hệ số của đa thức đặc trưng D(z)
1 1 a1 a2 … aN-2 aN-1 aN
2 c0 c1 c2 … cN-2 cN-1
3 d0 d1 d2 … dN-2
… … … … …
N -1 r0 r1 r2
Trong đó các phần tử ci , di trên các hàng 2, 3 của bảng Jury được tính
theo định thức của các ma trận như sau :
83
).(1
iii
ii NN
N
Naaa
aa
ac −
− −== với i = 0 , 1 , 2 , … , (N-1)
)..( 1101
10ii
i
ii NN
N
Ncccc
cc
ccd −−−
−
−− −== với i = 0 , 1 , 2 , … , (N-1)
..................................... Mỗi hàng tiếp theo của bảng Jury sẽ có số phần tử giảm đi 1 và được tính
tương tự cho đến hàng thứ (N – 1) chỉ còn 3 phần tử r0 , r1 , r2 . Tiêu chuẩn ổn định Jury được phát biểu như sau :
Phương trình D(z) = 0 dạng [4-18] hoặc [4-19] sẽ có tất cả các nghiệm nằm trong vòng tròn đơn vị |z| = 1 nếu thỏa mãn tất cả các điều kiện sau :
1. Giá trị đa thức 01)( >=zzD
2. Giá trị đa thức 01)( >= −zzD Nếu N chẵn.
hoặc 01)( <= −zzD Nếu N lẻ.
3. Các phần tử ở đầu và cuối mỗi hàng của bảng Jury thỏa mãn : 10|| =< aaN
|||| 01 ccN <−
|||| 02 dd N <−
…....................
|||| 02 rr <
Hệ xử lý số TTBBNQ có phương trình đặc trưng không thỏa mãn tiêu
chuẩn ổn định Jury thì không thỏa mãn điều kiện ổn định [4-17].
Ví dụ : Xét tính ổn định của hệ xử lý số TTBBNQ có hàm hệ thống :
)(
)(5,142
2 +=
− zz
zzH
Giải : Để sử dụng tiêu chuẩn Jury, xét phương trình đặc trưng theo dạng
[2.4-18] (với a0 = 1) : 075,022)( =+= − zzzD
Vì D(z) có bậc N = 2 là số chẵn, nên bảng Jury chỉ có một hàng theo các hệ số của D(z). Xét các điều kiện của tiêu chuẩn ổn định Jury :
1. 025,075,0211)( <=+== −−zzD ; không thỏa mãn.
2. 05,375,0211)( >=++== −zzD ; thỏa mãn.
84
3. 175,0|| 2 <=a ; thoả mãn.
Hệ xử lý số đã cho không thỏa mãn tiêu chuẩn ổn định Jury, nên không thỏa mãn điều kiện ổn định [4-17]. Đó chính là kết luận khi khảo sát hệ xử lý số trên ở ví dụ 2.24. Ví dụ : Xét tính ổn định của hệ xử lý số TTBBNQ có hàm hệ thống :
4321
1
234
25)(
−−−−
−
++++
+=
zzzz
zzH
Giải : Để sử dụng tiêu chuẩn Jury, xét phương trình đặc trưng theo dạng
[4-18] , với a0 = 1 : 04
1
4
1
2
1
4
31 4321)( =++++= −−−− zzzzzD
Vì D(z) có bậc N = 4 là số chẵn, nên bảng Jury có ba hàng với các phần tử là ai , ci , di , trong đó các phần tử ai là hệ số của D(z) :
10 =a ; 4
31 =a ;
2
12 =a ;
4
13 =a ;
4
14 =a
Tính các phần tử của hàng thứ hai c0 , c1 , c2 , c3 :
16
15
4
1
4
111 .. 440 =−=−= aac
16
11
4
1
4
1
4
3.. 3411 =−=−= aaac
16
6
2
1
4
1
2
1.. 2422 =−=−= aaac
16
1
4
3
4
1
4
1.. 1433 =−=−= aaac
Tính các phần tử của hàng thứ ba d0 , d1 , d2 :
256
224
16
1
16
1
16
15
16
15... 33000 =−=−= ccccd
256
159
16
6
16
1
16
11
16
15... 23101 =−=−= ccccd
256
79
16
11
16
1
16
6
16
15... 13202 =−=−= ccccd
Xét các điều kiện của tiêu chuẩn ổn định Jury :
1. 04
11
4
1
4
1
2
1
4
311)( >=++++==zzD ; thỏa mãn.
2. 04
3
4
1
4
1
2
1
4
311)( >=+−+−=−=zzD ; thỏa mãn.
3. 14
1|| 4 <=a ; thỏa mãn.
85
16
15
16
1|||| 03 =<= cc ; thỏa mãn.
256
224
256
79|||| 02 =<= dd ; thoả mãn.
Hệ xử lý số TTBBNQ đã cho thỏa mãn tiêu chuẩn Jury nên ổn định. Để xét tính ổn định của hệ xử lý số, ngoài tiêu chuẩn ổn định , còn có các tiêu chuẩn khác nữa, ví dụ như tiêu chuẩn Schur - Cohn.
4.3. Ghép nối các hệ tuyến tính bất biến
Cho hai hệ có đáp ứng xung là h1(n) và h2(n), hàm truyền đạt tương ứng
là H1(z) và H2(z) với các miền hội tụ xác định.
- Ghép nối tiếp
hệ tương đương:
Hình 20: Ghép nối nối tiếp các hệ thống tuyến tính và hệ tương đương
- Ghép song song
Hệ tương đương:
86
Hình 21: Ghép song song các hệ thống TTBB và hệ TTBB tương đương
Từ 2 kết nối cơ bản trên ta có thể cấu trúc 1 hệ phức tạp. Ngược lại ta có
thể phân chia 1 hệ lớn, phức tạp thành nhiều hệ nhỏ hơn kết nối nhau để tiện
thiết kế.
Ví dụ: Hãy xác định hàm truyền đạt của hệ tương đương của hệ được kết
nối bởi các hệ con như sau:
Hình 22: Ghép nhiều hệ TTBB
Hàm truyền đạt của hệ tương đương là:
H(z) = H4(z)+H1(z)[H2(z)+H3(z)]
B. Thực hành
1. Bài tập củng cố lý thuyết
Ví dụ 1: Cho tín hiệu sau
x( ) 2 ( 2) 1 ( 1) 2 ( ) 1 ( 1) 2 ( 2)n n n n n nδ δ δ δ δ= + − + + − − + −
Tìm biến đổi Z của tín hiệu trên
Giải:
2 1 0 1 2( ) 2 1 2 1 2X z z z z z z− −= − + − +
Ví dụ 2: Tìm biến đổi Z của ( ) ( )x n Au n=
Giải:
1
10
( ) ( ) ( )1
n n
n n
AX z x n z A z
z
+∞ +∞− −
−=−∞ =
= = =−
∑ ∑
Tổng quát ta có
1( )
1
AAu n
z−↔
−
87
0
0 1( )
1
nAzAu n n
z
−
−− ↔
−
2. Bài tập với Matlab
2.1. Đánh giá biến đổi Z trên vòng tròn đơn vị
Trong Matlab, để đánh giá biến đổi z trên vòng tròn đơn vị sử dụng hàm freqz.
Chương trình sau dùng tính X(z) trên vòng tròn đơn vị.
%Danh gia bien doi z tren vong tron don vi
clf;
w=-4*pi:8*pi/511:4*pi;
num=[2 1];den=[1 -0.6];
x=freqz(num,den,w);
subplot(4,1,1);
plot(w/pi,real(x));grid
subplot(4,1,2);
plot(w/pi,imag(x));grid
subplot(4,1,3);
plot(w/pi,abs(x));grid
subplot(4,1,4);
plot(w/pi,angle(x));grid
88
Hình 23: Đánh giá biến đổi Z trên vòng tròn đơn vị
2.1. Giản đồ điểm cực/điểm không
Giản đồ điểm cực và điểm không của hàm X(z) hữu tỷ có thể thu được khi sử
dụng lệnh zplane.
%Xac dinh cac diem cuc/diem khong cua he thong
clf;
num=[1 2 3];
den=[2.1 4 7];
zplane(num,den);
89
Hình 24: Điểm cực và điểm không của hệ thống
Trường hợp nếu biết điểm không và điểm cực của hệ thống đã cho thì dùng lệnh
zplane(zeros,poles). Trong đó zeros và poles là các vector cột xác định các điểm
không và điểm cực của hệ thống.
%Xac dinh cac diem cuc/diem khong cua he thong
clf;
zeros=0.73;
poles=[0.2+j*0.1 -0.4-j*0.5];
zplane(zeros',poles');
90
-1 -0.5 0 0.5 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Real Part
Imagin
ary
Part
2.2. Xác định các điểm cực và điểm không
Trong Matlab, việc xác định các điểm cực và điểm không của một hệ thống có
hàm truyền hữu tỷ được thực hiện nhờ lệnh tf2zp với cú pháp như sau:
[z,p,k]=tf2zp(num,den)
Trong đó num, den là các hệ số của đa thức hữu tỷ ở tử số và mẫu số của X(z)
theo thứ tự tăng dần của z-1; k là hệ số khuyếch đại, z, p là các vector chứa điểm
cực và điểm không được cho dưới dạng vector cột.
Ví dụ:
b=[1 3];
a=[1 0.4 1];
[z,p,k]=tf2zp(b,a)
z = -3
p =
-0.2000 + 0.9798i
-0.2000 - 0.9798i
k = 1
2.3. Khai triển biến đổi Z thành thừa số
Có thể khai triển các biến đổi z thành các biến đổi z bậc hai. Trong Matlab hàm
sos có cú pháp: sos=zp2sos(z,p,k)
91
Nó sẽ thực hiện chức năng phân tích. Hàm sẽ cho ra matrix cỡ Lx6
Ví dụ: Hệ thống có hàm truyền
1 2 3 4
1 2 3 4
2 5
5 45
9 5 3( )
2
z z zz
zH z
z z z
− − − −
− − − −
+ + +=
+ +
+
++
Để vẽ giản đồ điểm cực/điểm không và phân tích hệ thống trên thành tích hai hệ
thống ghép nối tiếp, sử dụng chương trình:
b=[2 5 9 5 3];a=[5 45 2 1 1];
zplane(b,a);
[z,p,k]=tf2zp(b,a);
sos=zp2sos(z,p,k);
-9 -8 -7 -6 -5 -4 -3 -2 -1 0 1
-4
-3
-2
-1
0
1
2
3
4
Real Part
Imagin
ary
Pa
rt
2.4. Biến đổi Z ngược
%tinh bien doi z nguoc dung ham impz
num=[2 5 9 5 3];den=[5 45 2 1 1];
[x,t]=impz(num,den)
92
Để thu được biến đổi z ngược x(n) dưới dạng công thức, ta phải khai triển X(z)
thành phân thức riêng phần nhờ hàm residuez và sau đó dùng bảng biến đổi z
tính biến đổi z ngược mỗi phân thức riêng phần.
Sử dụng Matlab để tìm h(n):
a. 2
1( ) | | 2
3 2H z z
z z= >
− +
b. 7.09
1)(
2 ++=
zzzH (chỉ với n>=0)
c. 6116
)(23 −++
=zzz
zzH , |z| > 2
Gợi ý: Sử dụng hàm [r p k] = residuez (num, den) để xác định các hệ số
A, B, C, … trong việc phân rả H(z).
num và den: là các hệ số của H(z)
p: là vector chứa các điểm cực
k: là chứa hằng
ví dụ: 321
2
61161)(
−−−
−
−+−=
zzz
zzH
num = [0 0 1 ]
den = [ 1 -6 11 -6 ]
[ r p k ] = residuez (num, den)
Ta thu được:
r = 0.5000, –1.0000 and 0.5000
p = 3.0000, 2.0000 and 1.0000
k = [ ]
Khi đó:
111 31
5.0
21
1
1
5.0)(
−−− −+
−
−+
−+=
zzzkzH vì k = 0 nên
111 31
5.0
21
1
1
5.0)(
−−− −+
−
−+
−=
zzzzH
Từ đây suy ra h(n).
93
C. Bài tập
1. Xác định biến đổi Z của các tín hiệu sau
a. x1(n) = 3 0 0 0 0 6* 1 –4
b. x2(n) =
≤
≥
40
5,2
1
n
nn
2. Xác định biến đổi Z của các tín hiệu sau
a. ( ) )(1)(1 nunnx +=
b. ( ) )(21)(2 nunx nn −−=
c. [ ])10()(2
1)(3 −−
= nununx
n
d.
<
≥
=−
02
1
03
1
)(4
n
n
nxn
n
e. )4()( 45 += nxnx
f. )()( 46 nxnx −=
g. ( ) )(1)(7 nunnxn
−=
h. )()( 28 nunnx =
i. ( ) )3(4
123)(
2
9 −
=
−nunx
nn
3. Tìm tín hiệu nhân quả có biến đổi Z như sau
a. 22
1
1231
31)(
−−
−
++
+=
zz
zzX
b. 21
2
2
11
1)(
−− +−
=
zz
zX
94
4. Dùng biến đổi Z và Z-1 để tính tích chập các tính hiệu sau
a. 11111)( *1 =nx và 111)( *
2 =nx
b. 4321)( *1 =nx và 1234)( *
2 =nx
c. )(2
1)(1 nunx
n
= và )(
3
1)(2 nunx
n
=
5. Sử dụng phương pháp biến đổi Z và Z ngược, xác định hàm đặc trưng của
các hệ thống (trong miền thời gian và miền Z) được mô tả bởi phương
trình sai phân sau
a. y(n) = 0.5y(n–1) + x(n)
b. y(n) = 0.7y(n – 1) – 0.1y(n – 2) + 2x(n) – x(n – 2)
6. Cho hệ thống được mô tả ở dạng chuẩn tắc như hình sau.
Sử dụng phương pháp biến đổi Z, Z+ và biến đổi Z ngược, hãy xác định:
a. Đáp ứng không ngõ nhập
b. Đáp ứng trạng thái không
c. Đáp ứng toàn phần
7. Cho hệ thống được mô tả bởi phương trình sai phân
y(n) = 5y(n – 1) + 6y(n – 2) + x(n) + x(n – 1)
Cho biết:
• x(n) = u(n)
• y(–1) = 1 và y(–2) = ½
Sử dụng phương pháp biến đổi Z, Z+ và biến đổi Z ngược, hãy xác định:
95
a. Xác định h(n) của hệ thống trên.
b. Đáp ứng không ngõ nhập
c. Đáp ứng trạng thái không
8. Cho hệ thống được mô tả bởi phương trình sai phân sau
y(n) = 5y(n – 1) – 6y(n – 2) + x(n) – x(n – 2)
a. Vẽ sơ đồ cấu trúc của hệ thống trên ở dạng chuẩn II
b. Xác định hàm đáp ứng xung đơn vị (Bằng phương pháp biến đổi Z)
Cho biết
• x(n) = 2nu(n)
• y(–1) = 1
• y(–2) = –1
Sử dụng phương pháp biến đổi Z, Z+ và biến đổi Z ngược, hãy xác định:
c. Đáp ứng không ngõ nhập
d. Đáp ứng trạng thái không
e. Đáp ứng toàn phần
96
THỜI GIAN (GIỜ) MÃ SỐ BÀI HỌC
XLS01-04
TÊN BÀI HỌC
BIỂU DIỄN TÍN HIỆU VÀ
HỆ THỐNG RỜI RẠC
TRÊN MIỀN TẦN SỐ
LIÊN TỤC
LT: 6 TH:8 TS:14
MỤC TIÊU:
Sau khi học xong bài này, học viên có thể: Khảo sát hệ thống LTI trên miền tần số
NỘI DUNG:
A. Lý thuyết
1. Biến đổi Fourier của tín hiệu rời rạc trong miền tần số liên tục
1.1. Phép biến đổi Fourier với tín hiệu liên tục
Tín hiệu liên tục tuần hoàn
• Định nghĩa: Một tín hiệu liên tục theo thời gian x(t) là tuần hoàn với chu
kỳ T nếu: x(t) = x(t + T) với mọi giá trị thực của t. Giá trị T0 > 0 nhỏ nhất
thoả mãn đẳng thức trên được gọi là chu kỳ cơ bản của tín hiệu x(t), khi
đó f0 = 1/T0 được gọi là tần số cơ bản.
• Tín hiệu điều hoà:
0
0( ) ( )
( ) j t
x t Cos t
x t e ϖ
ϖ=
=
2 tín hiệu trên đều có chu kỳ cơ bản là: T0 = 2π/ω và tần số cơ bản f0 = ω/2π
Từ đó suy ra tín hiệu điều hoà phức: 0( ) 1,2,3,4...jk t
kx t e kϖ= = là các tín hiệu tuần
hoàn với chu kỳ cơ bản T0k = T0 / k do đó đương nhiên tín hiệu xk(t) cũng tuần
hoàn với chu kỳ T0. Như vậy một tổ hợp tuyến tính của các hàm điều hoà phức
sẽ là một tín hiệu có chu kỳ T0:
97
0( ) jk tk
k
x t a e ϖ+∞
=−∞
= ∑
Trong công thức trên các hệ số ak là các hệ số thực hoặc phức. Thành
phần phức ứng với k = 0 là thành phần một chiều (hay không đổi) khi k = 1 hoặc
-1 thì thành phần tương ứng có chu kỳ cơ bản đúng bằng T0 được gọi là thành
phần cơ bản hay hài bậc 1, khi k = 2 hoặc -2 thì thành phân tương ứng có chu kỳ
cơ bản bằng một nửa T0 được gọi là hài bậc 2,...thành phần ứng với k = N hoặc
–N gọi là hài bậc N. Tín hiệu tuần hoàn x(t) được biểu diễn như trên được gọi là
chuỗi Fourier.
Ví dụ:
Xét một tín hiệu tuần hoàn với tần số góc cơ bản ω0 = 2π, biểu diễn theo
chuỗi Fourier có dạng:
32
3
( ) jk tk
k
x t a e π+
=−
= ∑
Với a0 = 1, a1 = a-1 = 1/2 , a2 = a-2 = 1/3 a3 = a-3 = ¼
x(t) = 1 + 1/4(ej2πt + e-j2πt) + 1/2(ej4πt + e-j4πt) + 1/3(ej6πt + e-j6πt)
= 1 + 1/2Cos(2πt) + Cos(4πt) + 2/3Cos(6πt)
Kết quả này là một dạng của chuỗi Fourier của tín hiệu thực mà chúng ta đã
quen thuộc trong chương trình toán phổ thông. Công thức tổng quát của dạng
biểu diễn này sẽ được trình bày trong phần dưới đây. Hình 3.2 minh hoạ việc tổ
hợp các thành phần để tạo nên tín hiệu x(t)
98
Hình 4.1: Tổ hợp tuyến tính của các thành phần
Xét tín hiệu x(t) thực và tuần hoàn với chu kỳ cơ bản T0. Gọi x*(t) là liên
hợp phức của x(t) ta có:
0
0
* *
*
( ) jk tk
k
jk tk
k
x t a e
a e
ϖ
ϖ
+∞−
=−∞
−∞
−=+∞
=
=
∑
∑
Trong đó a*k là liên hợp phức của ak. Do x(t) là thực nên x(t) = x*(t). So sánh
công thức trên với chuỗi Fourier của tín hiệu x(t) ta có: ak = a*-k hay a*
k = a-k. Từ
đó ta viết lại chuỗi Fourier của x(t) như sau:
99
0
0 0
0 0
0 0
0
1
01
01 1
01
01
( )
( )
2 Re[ ]
jk tk
k
jk t jk tk k
k k
jk t jk tk k
k k
jk t jk tk k
k
jk tk
k
x t a e
a a e a e
a a e a e
a a e a e
a a e
ϖ
ϖ ϖ
ϖ ϖ
ϖ ϖ
ϖ
+∞
=−∞
+∞ −
= =−∞
+∞ +∞−
−= =
+∞−
−=
+∞
=
=
= + +
= + +
= + +
= +
∑
∑ ∑
∑ ∑
∑
∑
Nếu biểu diễn ak dưới dạng biên độ và pha ta có:
kjk ka A e θ=
Thay vào đẳng thức cuối cùng ở trên ta có:
0
0
01
01
0 01
( ) 2Re[ ]
2Re[ ]
2 os(k )
k
jk tk
k
jk tk
k
k kk
x t a a e
a A e
a A C t
ϖ
ϖ θ
ϖ θ
+∞
=
+∞+
=
+∞
=
= +
= +
= + +
∑
∑
∑
Nếu ta thay:
k k ka B jC= +
vào đẳng thức trên, thì ta sẽ có:
0 0 01
( ) 2 [ ( ) ( )]k kk
x t a B Cos k t C Sin k tϖ ϖ+∞
=
= + −∑
là công thức phân tích Fourier mà ta đã quen thuộc trong chương trình toán phổ
thông đối với tín hiệu thực, công thức phân tích Fourier của tín hiệu tổng quát
(thực hoặc phức) thường được cho dưới dạng 0( ) jk tk
k
x t a e ϖ+∞
=−∞
= ∑ , các hệ số ak còn
được gọi là hệ số phổ.
100
• Tính toán các hệ số trong công thức phân tích Fourier
Giả sử rằng một tín hiệu liên tục tuần hoàn x(t) có thể được biểu diễn dưới
dạng chuỗi Fourier. Khi đó các hệ số an sẽ được xác định bởi công thức
sau:
0
00
1( ) jn t
n
T
a x t e dtT
ω−= ∫
1.2. Phép biến đổi Fourier của tín hiệu liên tục không tuần hoàn
Như trong phần trên chúng ta đã xem xét cách biểu diễn một tín hiệu liên tục
tuần hoàn dưới dạng một chuỗi Fourier. Dưới đây chúng ta minh hoạ cách biểu
diễn này bằng một ví dụ. Xét tín hiệu x(t) là một xung vuông tuần hoàn với chu
kỳ T0:
1 0
1
1| |( )
0 | |
t T Tx t
t T
< <=
>
Khi đó sử dụng công thức chuôi Fourier ở trên ta có thể tính được:
0 1sin( )
k
k Ta
k
ω
π=
Nếu biểu diễn ak trên đồ thị ta có hình minh hoa như sau:
101
Hình 4.2: Biểu diễn các hệ số chuỗi Fourier của xung vuông tuần hoàn
a – T0 = 4T1
b – T0 = 8T1
c – T0 = 16T1
Mặt khác ta thấy rằng ω0 = 2π/T0 do đó ta có thể viết:
0
10
2sin( )|k k
TT a ω ω
ω
ω==
Công thức trên cho ta thấy rằng T0ak chỉ là các mẫu rời rạc của một hàm số liên
tục theo biến ω đó là 12sin( )( )
TX
ωω
ω= . Hình dưới đây minh hoạ cho ta thấy
rằng khi T0 càng lớn thì số lượng mẫu của hàm X(ω) càng dày đặc.
102
Hình 4.3: Các hệ số Fourier và đường bao các mẫu
a – T0 = 4T1
b – T0 = 8T1
c – T0 = 16T1
Trở lại với bài toán của chúng ta đối với tín hiệu liên tục không tuần hoàn, rõ
ràng khi đó ta có thể giả định rằng chu kỳ của tín hiệu là vô cùng lớn, mặt khác
ta hoàn toàn có thể tạo ra tín hiệu liên tục tuần hoàn từ tín hiệu liên tục có độ dài
hữu hạn bằng cách xếp chồng. Giả sử ta xét tín hiệu x(t) có độ dài hữu hạn T0.
Khi đó ta sẽ tạo ra tín hiệu tuần hoàn x% có dạng sau:
103
Hình 4.4: Xếp chồng tuần hoàn
a – Tín hiệu hữu hạn
b – Tín hiệu tuần hoàn
Áp dụng công thức Fourier đối với tín hiệu tuần hoàn x% ta có:
0
0
0
0
2
0
2
( )
1( )
jk tk
k
T
jk tk
T
x t a e
a x t e dtT
ω
ω
+∞
=−∞
−
−
=
=
∑
∫
%
%
Do x% (t) = x(t) với mọi |t| < T0/2 và x(t) = 0 ngoài khoảng này nên ta có:
0
0
1( ) jk t
ka x t e dtT
ω+∞
−
−∞
= ∫
Từ đó chúng ta ta tính được ngay đường bao các mẫu T0ak được cho bởi:
( ) ( ) j tX x t e dtωω+∞
−
−∞
= ∫
1
( ) ( )2
j tx t X e dtωωπ
+∞
−∞
= ∫
2 công thức trên được gọi là cặp công thức biến đổi thuận-nghịch của phép biến
đổi Fourier đối với tín hiệu liên tục không tuần hoàn.
104
1.3. Phép biến đổi Fourier với tín hiệu rời rạc
Định nghĩa
Cho tín hiệu rời rạc x(n), phép biến đổi Fourier của x(n) được định nghĩa
như sau:
( ) ( )j j n
n
X e x n eω ω+∞
−
=−∞
= ∑
Như vậy phép biến đổi Fourier đã chuyển tín hiệu x(n) từ miền thời gian
sang miền tần số ω (hay tần số f = ω/2π). Chúng ta sẽ dùng ký hiệu sau để mô tả
phép biến đổi Fourier của tín hiệu x(n)
( ( )) ( )
( ) ( )
j
FT j
FT x n X e
x n X e
ω
ω
=
→
Các phương pháp biểu diễn X(ejω)
Biểu diễn dưới dạng phần thực và phần ảo
Bởi vì X(ejω) là một hàm biến phức nên ta có thể biểu diễn nó trong miền tần số
ω dưới dạng phần thực và phần ảo như biểu thức dưới đây:
j j
m( ) [X(e )]+jI [X(e )]jeX e Rω ω ω=
j[X(e )]eR ω : là phần thực của X(ejω)
j[X(e )]mI ω : là phần ảo của X(ejω)
Biểu diễn dưới dạng biên độ và pha
X(ejω) làm một hàm biến số phức vậy ta có thể biểu diễn nó dưới dạng module
và argument như sau:
arg[ ( )]( ) | ( ) |jj j j X eX e X e eωω ω=
|X(ejω)|: được gọi là phổ biên độ của x(n)
arg(X(ejω)): được gọi là phổ pha của x(n)
Ta có quan hệ sau:
105
2 2m
m
| ( ) | [ ( )]+I [ ( )]
I [ ( )]arg[ ( )]=arctg
[ ( )]
j j je
jj
je
X e R X e X e
X eX e
R X e
ω ω ω
ωω
ω
=
Sự tồn tại của phép biến đổi Fourier
Phép biến đổi Fourier hội tụ khi và chỉ khi x(n) thoả mãn điều kiện:
| ( ) |n
x n+∞
=−∞
< ∞∑
Từ đó suy ra
2| ( ) |x
n
E x n+∞
=−∞
= < ∞∑
Nói cách khác phép biến đổi Fourier luôn hội tụ với các tín hiệu có năng
lượng hữu hạn.
Ví dụ: Cho x(n) = RECTN(n). Hãy tính và vẽ phổ biên độ của x(n)
2. Biến đổi Fourier ngược
Định lý: 2 0
0 0j k k
e dk
πω
π
πω
−
==
≠∫
Mặt khác ta xét công thức biến đổi Fourier trong 3.3:
( ) ( )j j n
n
X e x n eω ω+∞
−
=−∞
= ∑
( )1 1
( ) ( )2 2
j k j j k n
n
e X e d x n e dπ
πω ω ω
ππ
ω ωπ π
∞−
−=−∞−
= ∑∫ ∫
Áp dụng định lý nêu trên vào đẳng thức cuối cùng ta có được:
1
( ) ( )2
j k jx k e X e dπ
ω ω
πω
π −= ∫
Đây chính là công thức biến đổi Fourier ngược, cho phép chuyển tín hiệu từ
miền tần số về miền thời gian.
Ví dụ: cho
106
1 | |( )
0 | |
cj
c
X e ωω ω
ω ω
<=
>
Hãy tính x(n).
3. Các tính chất của biến đổi Fourier
3.1 Tính tuyến tính
FT(αx1(n)+βx2(n))=αFT(x1(n))+βFT(x2(n))
Trong đó α, β là các hằng số thực, x1(n) và x2(n) là các tín hiệu rời rạc.
3.2 Tính chất trễ
FT(x(n-k)) = e-jωkFT(x(n))
Trong đó k là một hằng số nguyên, x(n) là một tín hiệu rời rạc
3.3 Tính đối xứng
Xét tín hiệu rời rạc x(n), giả sử x*(n) là liên hợp phức của x(n). Khi đó ta có:
FT(x(n)) = X(ejω)
FT(x*(n)) = X*(e-jω)
Trong đó X*(ejω) là liên hợp phức của X(e-jω). Từ đó ta có thể suy ra:
Nếu x(n) là thực (x(n)=x*(n)) thì phổ biến độ |X(ejω)| là hàm chẵn và phổ pha
arg[X(ejω)] là hàm lẻ.
3.4 Tính đảo trục thời gian
Xét tín hiệu rời rạc x(n), biến đổi Fourier của x(n) là: FT(x(n)) = X(ejω).
Khi đó x(-n) có biến đổi Fourier là: FT(x(-n)) = |X(ejω)|e-jφ(ω), trong đó:
φ(ω) = arg[X(ejω)]. Như vậy ta thấy rằng phổ biên độ của 2 tín hiệu x(n)
và x(-n) như nhau, còn phổ pha của chúng thì trái dấu.
3.5 Biến đổi Fourier của tổng chập
FT(x1(n)*x2(n))=FT(x1(n))FT(x2(n))
Trong đó x1(n) và x2(n) là các tín hiệu rời rạc.
3.6 Biến đổi Fourier của tích
FT(x1(n)x2(n)) = FT(x1(n))*FT(x2(n))
107
Trong đó x1(n) và x2(n) là các tín hiệu rời rạc. Phép * ở trên là phép tích chập
của 2 tín hiệu liên tục, được định nghĩa như sau:
( )
1 2 1 2( )* ( ) ( ) ( )j j j jX e X e X e X e dω ω υ ω υ υ∞
−
−∞= ∫
3.7 Vi phân trong miền tần số
Nếu FT(x(n))=X(ejω) thì ( )
( ( ))jdX e
FT nx n jd
ω
ω=
3.8 Quan hệ Parseval
2 j 21
| ( ) | | ( ) |2n
x n X e dπ
ω
π
ωπ
++∞
=−∞ −
=∑ ∫
Công thức trên cho ta thấy năng lượng của tín hiệu trên miền thời gian và miền
tần số luôn bằng nhau.
4. Biểu diễn tín hiệu và hệ thống rời rạc trong miền tần số liên tục
4.1. Đáp ứng tần số
Trong modul XLS01-02 chúng ta đã biết rằng đáp ứng xung h(n) là một tham số
đặc trưng cho hệ xử lý tín hiệu TTBB, mặt khác h(n) chính là tín hiệu ra khi tín
hiệu vào hệ là δ(n) hay: h(n) = T(δ(n)). Chuyển sang miền tần số ta có tín hiệu
vào
X(ejω) = FT(δ(n)) = ejωn
Khi đó đáp ứng ta của hệ được tính như sau:
( )( ) ( ) ( ) ( )
( )
j n m
m m
j m j n
m
y n h m x n m h m e
h m e e
ω
ω ω
+∞ +∞−
=−∞ =−∞
+∞−
=−∞
= − =
=
∑ ∑
∑
Đặt ( ) ( )j j m
m
H e h m eω ω+∞
−
=−∞
= ∑ khi đó ta có: ( ) ( )j j ny n H e eω ω= .
H(ejω) được gọi là đáp ứng tần số của hệ TTBB.
Nhận xét: Đáp ứng tần số của hệ TTBB chính là biến đổi Fourier của đáp ứng
xung. Từ đó ta có cặp công thức:
108
( ) ( )
1( ) ( )
2
j j n
n
j n j
H e h n e
h n e H e d
ω ω
πω ω
πω
π
+∞−
=−∞
+
−
=
=
∑
∫
4.2. Quan hệ vào ra trên miền tần số
Theo tính chất biến đổi Fourier của tổng chập mà ta xét ở trên thì ta có:
Trên miền thời gian: y(n) = x(n)*h(n)
Trên miền tần số: Y(ejω) = X(ejω)H(ejω)
Ý nghĩa: Phổ của tín hiệu cho ta biết các thành phần tần số của tín hiệu còn đáp
ứng tần số của hệ TTBB cho ta biết ứng xử của hệ TTBB với các thành phần tần
số của tín hiệu vào.
4.3. Các bộ lọc lý tưởng
Bộ lọc thông thấp lý tưởng
Đáp ứng biên độ của bộ lọc số thông thấp lý tưởng được định nghĩa như sau:
j
1| ( ) |
0 | | 0
c c
c
H e ωω ω ω
ω ω
− < <=
> >
Hình dưới đây minh hoạ đáp ứng biên độ của bộ lọc thông thấp lý tưởng
Hình 25: Đáp ứng biên độ của bộ lọc thông thấp lý tưởng
Ví dụ: Xét bộ lọc thông thấp lý tưởng có đáp ứng xung cho bởi
j1
( )0 | | 0
c c
c
H e ωω ω ω
ω ω
− < <=
> >
109
Sử dụng công thức biến đổi Fourier ngược ta có thể tính được đáp ứng xung của
bộ lọc thông thấp lý tưởng như sau:
1( ) ( )
2
1
2 2
2 sin( ) sin( )
2
j j n
j nj n
h n H e e d
ee d
jn
j n n
jn n
πω ω
π
π ωω
π
ωπ
πω
ππ π
π π
π π
−
−
=
= =−
= =
∫
∫
Nhận xét:
Đáp ứng xung h(n) là đối xứng
Đáp ứng xung h(n) không nhân quả
Bộ lọc thông thấp lý tưởng không thực hiện được về mặt vật lý
Bộ lọc thông cao lý tưởng
Bộ lọc thông cao lý tưởng có đáp ứng biên độ được cho bởi
j0
| ( ) |1 | | 0
c c
c
H e ωω ω ω
ω ω
− < <=
> >
Hình 26: Đáp ứng biên độ của bộ lọc thông cao lý tưởng
Bộ lọc thông dải lý tưởng
Bộ lọc thông dải lý tưởng có đáp ứng biên độ cho bởi
110
1 2j
2 1
1 | || ( ) |
0 | | , | |
c c
c c
H e ωω ω ω
ω ω ω ω
< <=
> <
Hình 27: Đáp ứng biên độ của bộ lọc thông dải lý tưởng
Bộ lọc dải chặn lý tưởng Bộ lọc dải chặn lý tưởng có đặc tính biên độ tần số khi ω ∈ [-π , π ] như sau :
∈−−∈
=ntrªngkho¶c¸cthuéckh«ng
vµ
ωKhi
ω,ωωω,ωωKhie
ccccjbsH
1
0 ][][)(
2121ω
Đồ thị đặc tính biên độ tần số của bộ lọc dải chặn lý tưởng ở Hình 28. Các tham số thực của bộ lọc dải chặn lý tưởng
- Tần số cắt : fc1 , fc2 - Dải thông : f ∈ [ 0 , fc1 ] và [fc2 , ∞ ] - Dải chặn : f ∈ [fc1 , fc2 ]
Bộ lọc dải chặn lý tưởng chặn không cho tín hiệu số có phổ nằm trong dải tần fc1 < f > fc2 đi qua, cho tín hiệu số ngoài dải tần đó đi qua.
)( ωjbp eH
Đặc tính xung hbs(n) của bộ lọc dải chặn lý tưởng Xét bộ lọc dải chặn lý tưởng pha tuyến tính αωωθ −=)( , đặc tính tần số của nó có dạng :
∈−−∈
=− ntrªngkho¶c¸cthuéckh«ng
vµ
ωKhie
ω,ωωω,ωωKhie
j
ccccjbsH
αω
ω][][
)(21210
Có thể biểu diễn Hbs(ejω) qua đặc tính tần số Hlp1(e
jω) và Hlp2(ejω) của các bộ lọc
thông thấp lý tưởng có tần số cắt ωc1 và ωc2 như sau : )()()( 121
ωωω jlp
jlp
jbs eee HHH +−=
1
Hình 28: Đặc tính biên độ tần số của bộ lọc dải chặn lý tưởng
111
Có thể tìm được đặc tính tần số của bộ lọc dải chặn có các tần số cắt ωc1 và ωc2 từ đặc tính tần số của hai bộ lọc thông thấp có tần số cắt ωc1 và ωc2 tương ứng. Biểu diễn Hbs(e
jω) qua đặc tính tần số Hbp(ejω) của bộ lọc dải thông:
)()( 1ωω j
bpj
bs ee HH −= Có thể tìm được đặc tính tần số của bộ lọc dải chặn có các tần số cắt ωc1 và ωc2 , từ đặc tính tần số của bộ lọc dải thông có tần số cắt tương ứng. Đặc tính xung hbs(n) của bộ lọc trên được xác định bằng IFT :
[ ] [ ]∫−
+−==π
π
ωωωω ωπ
deeeeIFTnh njjlp
jlp
jbsbs HHH .)()()()( 121
2
1
∫∫∫−
−
−
−
−
+−=1
1
2
2
2
1
2
1
2
1)(
c
c
c
c
deedeedenh njjnjjnjbs
ω
ω
ωαω
ω
ω
ωαωπ
π
ω ωωωπππ
1
1
2
2
)()(
)()()(
1
2
11
2
11
2
1 c
c
c
c
njnjnjbs e
nje
nje
jnnh
ω
ω
αωω
ω
αωπ
π
ω
αα πππ −
−
−
−
− −+
−−=
)(
)](sin[
)(
)](sin[)sin()( 12
.
.
α
αω
α
αω
πππ
π
−
−+
−
−−=
n
n
n
n
n
nnh cc
bs
)]([
)](sin[
)(
)](sin[
.
)sin()(
1
11
2
22.
αω
αωω
αω
αωω
πππ
π
−
−+
−
−−=
n
n
n
n
n
nnh
c
cc
c
ccbs
Hay : )()()()( 12 nhnhnnh lplpbs +−= δ
Hoặc : )()()( nhnnh bpbs −= δ
Có thể tìm được đặc tính xung hbp(n) của bộ lọc dải chặn khi biết đặc tính xung hlp1(n) và hlp1(n) của các bộ lọc thông thấp tương ứng. Tìm được đặc tính xung hbs(n) của bộ lọc dải chặn khi biết đặc tính xung hbp(n) của bộ lọc dải thông tương ứng. Ví dụ : Hãy xác định và vẽ đặc tính xung hbs(n) của bộ lọc số dải chặn lý tưởng pha không có các tần số cắt 31 πω =c và 22 πω =c . Giải : Có đặc tính xung của bộ lọc dải chặn pha không lý tưởng :
π
π
π
π
π
πδ
.
)sin(
.
)sin(
.
)sin()()()(
32.
n
n
n
n
n
nnhnnh bpbs +−=−=
N 0 ± 1 ± 2 ± 3 ± 4 ± 5 ± 6 ± 7 ± 8
hbp(n) 0,17 0,04 -
0,14 -
0,11 0,07 0,01 0
-0,08
-0.03
hbs(n) 0,83 -
0,04 0,14 0,11
-0,07
-0,01
0 0,08 0.03
Theo các số liệu trên, xây dựng được đồ thị đặc tính xung của bộ lọc dải
chặn lý tưởng với 31 πω =c và 22 πω =c .
112
Nhận xét : Bộ lọc dải chặn lý tưởng là hệ xử lý số IIR không nhân quả, vì thế nó không thể thực hiện được trên thực tế.
B. Thực hành
1. Bài tập củng cố lý thuyết
Ví dụ: Xác định biến đổi Fourier thời gian rời rạc của dãy ( ) 0.5 ( )nx n u n=
Giải:
0
( ) ( ) (0.5)j j n n j nX e x n e eω ω ω∞ ∞
− −
−∞
= =∑ ∑
0
1(0.5 )
1 0.5 0.5
jj n
j j
ee
e e
ωω
ω ω
∞−
−= = =
− −∑
Ví dụ: Xác định biến đổi Fourier thời gian rời rạc của chuỗi sau:
1,2,3,4( ) ,5x n↑
=
Giải:
2 3( ) ( ) 2 3 4 5j j n j j j jX e x n e e e e eω ω ω ω ω ω∞
− − − −
−∞
= = + + + +∑
hhp(n)
0,83
0,14
-0,07 -0,07
0,14 0,11
0,08 0,11
0,08
n ... ...
-0,04 -0,04
Hình 29: Đặc tính xung của bộ lọc dải chặn lý tưởng
113
2.Bài tập với Matlab
2.1.Đánh giá phổ của tín hiệu
Ví dụ: Đánh giá hàm )(0.5
jj
j
eX e
e
ωω
ω=
− tại 501 điểm trong khoảng từ [0,π] và vẽ
độ lớn, pha, phần thực và ảo.
w = [0:1:500]*pi/500; % khoang [0,pi]duoc chia thanh
501 diem
X = exp(j*w) ./ (exp(j*w) - 0.5*ones(1,501));
magX = abs(X); angX = angle(X);
realX = real(X); imagX = imag(X);
subplot(2,2,1); plot(w/pi,magX); grid
xlabel('tan so theo don vi \ pi'); title('Do lon cua
X(e^j\omega)'); ylabel('Do lon')
subplot(2,2,3); plot(w/pi,angX); grid
xlabel('tan so theo don vi \ pi'); title('Phan ao cua
X(e^j\omega)'); ylabel('Radians')
subplot(2,2,2); plot(w/pi,realX); grid
xlabel('tan so theo don vi \ pi'); title('Phan thuc
cua X(e^j\omega)'); ylabel('phan thuc')
subplot(2,2,4); plot(w/pi,imagX); grid
xlabel('tan so theo don vi \ pi'); title('Phan ao cua
X(e^j\omega)'); ylabel('phan ao')
114
0 0.5 10.5
1
1.5
2
tan so theo don vi π
Do lon cua X(ejω)
Do lon
0 0.5 1-0.8
-0.6
-0.4
-0.2
0
tan so theo don vi π
Phan ao cua X(ejω)
Radia
ns
0 0.5 10.5
1
1.5
2
tan so theo don vi π
Phan thuc cua X(ejω)
phan t
huc
0 0.5 1-0.8
-0.6
-0.4
-0.2
0
tan so theo don vi π
Phan ao cua X(ejω)
phan a
o
Ví dụ: Sử dụng Matlab tính biến đổi Fourier thời gian rời rạc của chuỗi sau:
1,2,3,4( ) ,5x n↑
=
n = -1:3; x = 1:5;
k = 0:500; w = (pi/500)*k;
X = x * (exp(-j*pi/500)) .^ (n'*k);
magX = abs(X); angX = angle(X);
realX = real(X); imagX = imag(X);
subplot(2,2,1); plot(w/pi,magX); grid
xlabel('frequency in pi units'); title('Magnitude
Part'); ylabel('Magnitude')
subplot(2,2,3); plot(w/pi,angX); grid
xlabel('frequency in pi units'); title('Angle Part');
ylabel('Radians')
subplot(2,2,2); plot(w/pi,realX); grid
xlabel('frequency in pi units'); title('Real Part');
115
ylabel('Real')
subplot(2,2,4); plot(w/pi,imagX); grid
xlabel('frequency in pi units'); title('Imaginary
Part'); ylabel('Imaginary')
0 0.5 10
5
10
15
frequency in pi units
Magnitude Part
Magnitude
0 0.5 1-4
-2
0
2
4
frequency in pi units
Angle Part
Radia
ns
0 0.5 1-5
0
5
10
15
frequency in pi units
Real Part
Real
0 0.5 1-10
-5
0
5
frequency in pi units
Imaginary Part
Imagin
ary
2.2.Khảo sát một số tính chất của biến đổi Fourier
Khảo sát tính chất tuyến tính
Cho x1(n) và x2(n) là hai chuỗi ngẫu nhiên phân bố đều trong khoảng [0,1].
Khảo sát tính chất tuyến tính của biến đổi Fourier
x1 = rand(1,11); x2 = rand(1,11); n = 0:10;
alpha = 2; beta = 3;
k = 0:500; w = (pi/500)*k;
X1 = x1 * (exp(-j*pi/500)).^(n'*k);
X2 = x2 * (exp(-j*pi/500)).^(n'*k);
x = alpha*x1 + beta*x2;
X = x * (exp(-j*pi/500)).^(n'*k);
116
X_check = alpha*X1 + beta*X2;
error = max(abs(X-X_check))
Kết qu ả:
error = 7.3241e-015
Do sai số giữa hai chuỗi nhỏ hơn 10-14, hai chuỗi là giống nhau. Sự sai khác là
do giới hạn của Matlab.
Khảo sát tính dịch chuyển theo thời gian
x = rand(1,11); n = 0:10;
k = 0:500; w = (pi/500)*k;
X = x * (exp(- j*pi/500)).^(n'*k); % bi?n ??i
Fourier c?a x
% D?ch chuy?n tín hi?u 2 m?u
y = x; m = n+2;
Y = y * (exp(- j*pi/500)).^(m'*k); % Bi?n ??i
Fourier c?a y
Y_check = (exp(-j*2).^w).*X; % nhan voi exp(-
j2w)
error = max(abs(Y-Y_check)) % Sai khac
Kết qu ả:
error = 9.2542e-015
Khảo sát tính chất dịch chuyển theo tần số
Cho ( ) ( / 2),0 100x n cos n nπ ≤ ≤= và ( /4)( ) ( )j ny n e x nπ=
n = 0:100; x = cos(pi*n/2);
k = -100:100; w = (pi/100)*k;
X = x * (exp(-j*pi/100)).^(n'*k);
y = exp(j*pi*n/4).*x;
Y = y * (exp(-j*pi/100)).^(n'*k);
117
subplot(1,1,1)
subplot(2,2,1); plot(w/pi,abs(X)); grid; axis([-
1,1,0,60])
xlabel('frequency in pi units'); ylabel('|X|')
title('Magnitude of X')
subplot(2,2,2); plot(w/pi,angle(X)/pi); grid; axis([-
1,1,-1,1])
xlabel('frequency in pi units');
ylabel('radiands/pi')
title('Angle of X')
subplot(2,2,3); plot(w/pi,abs(Y)); grid; axis([-
1,1,0,60])
xlabel('frequency in pi units'); ylabel('|Y|')
title('Magnitude of Y')
subplot(2,2,4); plot(w/pi,angle(Y)/pi); grid; axis([-
1,1,-1,1])
xlabel('frequency in pi units'); ylabel('radians/pi')
title('Angle of Y')
118
-1 -0.5 0 0.5 10
20
40
60
frequency in pi units
|X|
Magnitude of X
-1 -0.5 0 0.5 1-1
-0.5
0
0.5
1
frequency in pi units
radia
nds/p
i
Angle of X
-1 -0.5 0 0.5 10
20
40
60
frequency in pi units
|Y|
Magnitude of Y
-1 -0.5 0 0.5 1-1
-0.5
0
0.5
1
frequency in pi units
radia
ns/p
i
Angle of Y
Ví dụ: Cho 3( ) (0.9 , n 1) 0 0j
nx n eπ
≤ ≤= . Xác định ( )jX e ω và kiểm tra tính tuần
hoàn.
n = 0:10; x = (0.9*exp(j*pi/3)).^n;
k = -200:200; w = (pi/100)*k;
X = x * (exp(-j*pi/100)) .^ (n'*k);
magX = abs(X); angX =angle(X);
subplot(2,1,1); plot(w/pi,magX);grid
axis([-2,2,0,8])
xlabel('tan so don vi \pi'); ylabel('|X|')
title('Thanh phan do lon')
subplot(2,1,2); plot(w/pi,angX/pi);grid
axis([-2,2,-1,1])
xlabel('tan so don vi \pi'); ylabel('radians/pi')
title('Thanh phan goc pha')
119
-2 -1.5 -1 -0.5 0 0.5 1 1.5 20
2
4
6
8
tan so don vi π
|X|
Thanh phan do lon
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-1
-0.5
0
0.5
1
tan so don vi π
radia
ns/p
i
Thanh phan goc pha
Ví dụ: Kiểm tra tính đối xứng của tín hiệu thực: n( ) ( ), 52
10n
x n sinπ
≤ ≤= −
n = -5:10; x = sin(pi*n/2);
k = - 100:100; w = (pi/100)*k; % tan so bien
thien trong khoang tu -pi:pi
X = x * (exp(- j*pi/100)).^(n'*k); % Bien doi
Fourier thoi gian roi rac cua x
% phan ra tin hieu thanh phan chan va le
[xe,xo,m] = evenodd(x,n);
XE = xe * (exp(- j*pi/100)).^(m'*k); % Bien doi
Fourier roi rac phan chan
XO = xo * (exp(- j*pi/100)).^(m'*k); % Bien doi
Fourier roi rac cua phan le
% verification
XR = real(X); % Phan thuc cua
X
120
error1 = max(abs(XE-XR)) % Sai khac
XI = imag(X); % Phan ao cua X
error2 = max(abs(XO-j*XI)) % Sai khac
% graphical verification
subplot(1,1,1)
subplot(2,2,1); plot(w/pi,XR); grid; axis([-1,1,-
2,2])
xlabel('Tan so theo don vi \pi'); ylabel('Re(X)');
title('Thanh phan thuc cua X')
subplot(2,2,2); plot(w/pi,XI); grid; axis([-1,1,-
10,10])
xlabel('Tan so theo don vi \pi'); ylabel('Im(X)');
title('Thanh phan ao cua X')
subplot(2,2,3); plot(w/pi,real(XE)); grid; axis([-
1,1,-2,2])
xlabel('Tan so theo don vi \pi'); ylabel('XE');
title('Bien doi Fourier thanh phan chan')
subplot(2,2,4); plot(w/pi,imag(XO)); grid; axis([-
1,1,-10,10])
xlabel('Tan so theo don vi \pi'); ylabel('XO');
title('Bien doi Fourier thanh phan le')
121
-1 -0.5 0 0.5 1-2
-1
0
1
2
Tan so theo don vi π
Re(X
)
Thanh phan thuc cua X
-1 -0.5 0 0.5 1-10
-5
0
5
10
Tan so theo don vi π
Im(X
)
Thanh phan ao cua X
-1 -0.5 0 0.5 1-2
-1
0
1
2
Tan so theo don vi π
XE
Bien doi Fourier thanh phan chan
-1 -0.5 0 0.5 1-10
-5
0
5
10
Tan so theo don vi π
XO
Bien doi Fourier thanh phan le
Ví dụ trên sử dụng hàm bổ sung cho Matlab làm nhiệm vụ phân tích chuỗi thành
các thành phần chẵn và lẻ:
function [xe, xo, m] = evenodd(x,n)
% Real signal decomposition into even and odd parts
% -------------------------------------------------
% [xe, xo, m] = evenodd(x,n)
if any(imag(x) ~= 0)
error('x is not a real sequence')
end
m = -fliplr(n);
m1 = min([m,n]); m2 = max([m,n]); m = m1:m2;
nm = n(1)-m(1); n1 = 1:length(n);
x1 = zeros(1,length(m));
x1(n1+nm) = x; x = x1;
xe = 0.5*(x + fliplr(x));
122
xo = 0.5*(x - fliplr(x));
2.3. Tính toán đáp ứng tần số
Ví dụ: Xác định đáp ứng tần số ( )jH e ω của một hệ thống được đặc trưng bởi đáp
ứng xung ( ) (0.9) ( )nh n u n=
Giải:
0
( ) ( ) (0.9)j j n n j nH e h n e eω ω ω∞ ∞
− −
−∞
= =∑ ∑
0
1(0.9 )
1 0.9j n
je
eω
ω
∞−
−= =
−∑
Do đó:
2 2
1 1| ( ) |
(1 0.9 ) (0.9 ) 1.81 1.8
jH ecos sin cos
ω
ω ω ω= =
− + −
Và 0.
H9
(e ) [ ]1 0.9
j sinarctan
cosω ω
ω= −
−∠
w = [0:1:500]*pi/500;
X = exp(j*w) ./ (exp(j*w) - 0.9*ones(1,501));
magX = abs(X); angX = angle(X);
subplot(2,1,1); plot(w/pi,magX); grid;
axis([0,1,0,10])
xlabel('frequency in pi units'); ylabel('|H|');
title('Magnitude Response');
subplot(2,1,2); plot(w/pi,angX/pi); grid
xlabel('frequency in pi units'); ylabel('Phase in pi
Radians');
title('Phase Response');
123
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
5
10
frequency in pi units
|H|
Magnitude Response
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.4
-0.3
-0.2
-0.1
0
frequency in pi units
Phase in p
i R
adia
ns
Phase Response
Ví dụ: Tính đáp ứng tần số từ phương trình sai phân
Cho hệ thống tuyến tính được xác định bởi phương trình sai phân sau:
y(n)=0.8y(n-1)+x(n)
Xác định ( )jH e ω
Tính và vẽ đáp ứng ra trong trường hợp ( ) (0.05 ) ( )x n cos n u nπ=
Giải: Viết lại phương trình dưới dạng: y(n)-0.8y(n-1)=x(n)
Biến đổi Fourier hai vế ta thu được:
1
( )1 0.8
j
jH e
eω
ω−=
−
Trong trạng thái ổn định, lối vào ( ) (0.05 )x n cos nπ= với tần số 0 0.05ω π= và
0 0oθ = . Đáp ứng ra của hệ thống là:
0.05 0.5377
0.05
1( ) 4.0928
1 0.8j j
jH e e
eπ
π
−= =−
Do đó:
( ) 4.0928 (0.05 0.5377) 4.0928 [0.05 ( 3.42)]ssy n cos n cos nπ π= − = −
124
subplot(1,1,1)
b = 1; a = [1,-0.8];
n=[0:100];x = cos(0.05*pi*n);
y = filter(b,a,x);
subplot(2,1,1); stem(n,x);
xlabel('n'); ylabel('x(n)'); title('Input sequence')
subplot(2,1,2); stem(n,y);
xlabel('n'); ylabel('y(n)'); title('Output sequence')
0 10 20 30 40 50 60 70 80 90 100-1
-0.5
0
0.5
1
n
x(n
)
Input sequence
0 10 20 30 40 50 60 70 80 90 100-5
0
5
n
y(n
)
Output sequence
Ví dụ: Một bộ lọc thông thấp bậc 3 được mô tả bởi phương trình sai phân:
Y(n)=0.0181x(n)+0.0543x(n-1)+0.0543x(n-2)+0.0181x(n-3)+1.76y(n-1)-
1.1829y(n-2) +0.2781y(n-3)
Vẽ đáp ứng độ lớn và pha của bộ lọc này.
b = [0.0181, 0.0543, 0.0543, 0.0181];
125
a = [1.0000, -1.7600, 1.1829, -0.2781];
m = 0:length(b)-1; l = 0:length(a)-1;
K = 500; k = 1:1:K;
w = pi*k/K; % [0, pi] axis divided into 501 points.
num = b * exp(-j*m'*w); % Numerator calculations
den = a * exp(-j*l'*w); % Denominator calculations
H = num ./ den;
magH = abs(H); angH = angle(H);
subplot(1,1,1);
subplot(2,1,1); plot(w/pi,magH); grid;
axis([0,1,0,1])
xlabel('frequency in pi units'); ylabel('|H|');
title('Magnitude Response');
subplot(2,1,2); plot(w/pi,angH/pi); grid
xlabel('frequency in pi units'); ylabel('Phase in pi
Radians');
title('Phase Response');
126
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
0.5
1
frequency in pi units
|H|
Magnitude Response
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1
-0.5
0
0.5
1
frequency in pi units
Phase in p
i R
adia
ns
Phase Response
Ví dụ: Chương trình cho hệ thống lấy trung bình động với M=7
%Tinh dap ung tan so cua he thong LTI
clf;
w=0:8*pi/511:2*pi;
num=[1/8 1/8 1/8 1/8 1/8 1/8 1/8]; den=1;
H=freqz(num,den,w);
%Ve dap ung tan so
figure(1)
subplot(2,1,1);
plot(w/pi,real(H));grid;
title('Phan thuc cua H(e^j\omega)');
xlabel('\omega/\pi');
ylabel('Bien do');
subplot(2,1,2);
127
plot(w/pi,imag(H));grid;
title('Phan ao cua H(e^j\omega)');
xlabel('\omega /\pi');
ylabel('Bien do');
figure(2)
subplot(2,1,1)
plot(w/pi,abs(H));grid
title('Pho bien do |H(e^j\omega)|');
xlabel('\omega/\pi');
ylabel('Bien do');
subplot(2,1,2);
plot(w/pi,angle(H));grid
title('Pho pha arg[H(e^j\omega)]');
xlabel('\omega /\pi');
ylabel('Pha do bang raidan');
%Tinh va ve dap ung xung don vi
figure(3)
h=impz(num,den,30);
subplot(2,1,1);
stem(h);grid
xlabel('chi so thoi gian');
ylabel('Bien do');
title('Dap ung xung don vi');
%Tinh va ve gian do diem cuc/diem khong cua he thong
subplot(2,1,2);
zplane(num,den);
128
title('Gian do diem cuc/diem khong');
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-0.5
0
0.5
1Phan thuc cua H(ejω)
ω/π
Bie
n d
o
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-1
-0.5
0
0.5
1Phan ao cua H(ejω)
ω /π
Bie
n d
o
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20
0.5
1Pho bien do |H(ejω)|
ω/π
Bie
n d
o
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-4
-2
0
2
4Pho pha arg[H(ejω)]
ω /π
Pha d
o b
ang r
aid
an
129
0 5 10 15 20 25 300
0.05
0.1
0.15
0.2
chi so thoi gian
Bie
n d
o
Dap ung xung don vi
-3 -2 -1 0 1 2 3
-1
-0.5
0
0.5
1
6
Real Part
Imagin
ary
Part
Gian do diem cuc/diem khong
C. Bài tập
Bài 1. Xác định biến đổi Fourier của
=
τ
ttriagtx )(
Với:
>
≤−=
τ
ττ
τ t
tt
ttriag
,0
,1
Bài 2. Tìm biến đổi Fourier của các tín hiệu sau
a. tjwetx 0)( =
b.
=
T
trecttx )(
Với:
>
≤=
Tt
TtTtrect
,0
,1)/(
c. ∑∞
−∞=
−=n
nTttx )()( δ
Bài 3. Tìm biến đổi Fourier của các tín hiệu
130
a. )6()()( −−= nununx
b. )(2)( nunx n −=
c. )4(4
1)( +
= nunx
n
d. ( ) 1,)(sin)( 0 <= αωα nunnx n
e. 1,sin)( 0 <= αωα nnxn
f.
≥
≤
−
=
4,0
4,2
12
)(
n
nnnx
g. 2,1,0,1,2)(↑
−−=nx
131
MÔDUL: THIẾT KẾ BỘ LỌC SỐ
THỜI GIAN (GIỜ) MÃ SỐ BÀI HỌC
XLS02-01
TÊN BÀI HỌC
BIỂU DIỄN TÍN HIỆU VÀ HỆ
THỐNG RỜI RẠC TRÊN
MIỀN TẦN SỐ RỜI RẠC
LT: 6 TH:10 TS:16
MỤC TIÊU:
Sau khi học xong bài này, học viên có thể: Biểu diễn tín hiệu và hệ thống trong miền tần số rời rạc
NỘI DUNG:
A. Lý thuyết
1. Biến đổi Fourier thời gian rời rạc
1.1. Biến đổi Fourier rời rạc đối với dãy tín hiệu tuần hoàn có chu kỳ N
Trong modul XLS01-04 chúng ta đã biết đến phép biến đổi Fourier liên tục
của tín hiệu rời rạc x(n): ( ) ( )j j n
n
X e x n eω ω+∞
−
=−∞
= ∑ . Chúng ta thấy ngay rằng trong
công thức trên X(ejω) là một hàm số phức liên tục theo ω, do đó phổ biên độ và
phổ pha tương ứng cũng sẽ là các hàm thực liên tục theo biên số ω tương ứng.
Mặt khác để thực hiện trên máy tính số, trong thực tế chúng ta chỉ có thể lưu trữ
được số lượng hữu hạn các giá trị rời rạc, do đó trong phần này chúng ta sẽ xem
xét một biểu diễn rời rạc của công thức biến đổi Fourier nói trên. Trước hết ta sẽ
rời rạc hoá miền giá trị ω từ 0 đến 2π thành N điểm với khoảng cách 2π/N.
2
0,1, 2...k k k NN
πΩ = =
Khi đó giá trị của X(ejω) tại các điểm rời rạc kΩ được tính bằng:
2
( ) ( )j kn
N
n
X k x n eπ+∞ −
=−∞
= ∑
132
Trong đó khoảng [-∞,+∞] là chu kỳ của tín hiệu của tín hiệu không tuần hoàn.
Do đó với tín hiệu x(n) tuần hoàn với chu kỳ N ta có công thức sau:
21
0
( ) ( ) 0,1,2...N j kn
N
n
X k x n e k Nπ− −
=
= =∑
Công thức trên được gọi là phép biến đổi Fourier rời rạc của tín hiệu tuần hoàn.
Nhận xét: Các giá trị X(k) chính là các mẫu rời rạc của X(ejω).
1.2. Biến đổi Fourier rời rạc đối với các dãy không tuần hoàn có
chiều dài hữu hạn
Trong thực tế chúng ta thường chỉ thu được các tín hiệu rời rạc có số lượng mẫu
hữu hạn (chiều dài hữu hạn) do đó để áp dụng được phép biến đổi Fourier rời
rạc nói trên với tín hiệu rời rạc có chiều dài hữu hạn, ta sẽ xem tín hiệu có chiều
dài hữu hạn như là một chu kỳ của một tín hiệu rời rạc tuần hoàn. Giả sử ta xét
tín hiệu x(n) có N mẫu, khi đó ta sẽ xem x(n) như một chu kỳ của tín hiệu rời rạc
tuần hoàn ( ) ( )k
x n x n kN+∞
=−∞
= +∑% . Áp dụng phép biến đổi Fourier rời rạc với tín
hiệu ( )x n% ta có:
21
0
( ) ( )N j nk
N
n
X k x n eπ− −
=
= ∑% %
Mặt khác ta thấy rằng ( )X k% cũng là một tín hiệu rời rạc tuần hoàn với chu kỳ N
và X(k) là một chu kỳ của ( )X k% từ đó ta có công thức biến đổi Fourier rời rạc
của tín hiệu x(n):
21
0
( ) ( ) 0,1, 2... 1N j nk
N
n
X k x n e k Nπ− −
=
= = −∑
Từ công thức trên ta có thể tinh được x(n) bằng công thức biến đổi Fourier rời
rạc ngược sau:
21
0
1( ) ( )
N j nkN
k
x n X k eN
π−
=
= ∑
Ví dụ: Cho tín hiệu x(n) có độ dài bằng 4 x(n) = -1,1,2,3 Hãy tính các giá trị
X(k) với k=0,1,2,3.
133
2. Các tính chất của phép biến đổi Fourier tần số rời rạc đối với các
dãy có chiều dài hữu hạn.
2.1. Tính chất tuyến tính:
DFT là một biến đổi tuyến tính, từ là nếu ta có hai dãy có chiều dài hữu hạn
x1(n), x2(n) và x3(n) là tổ hợp tuyến tính của hai dãy này, từ là:
3 1 2( ) ( ) ( )x n ax n bx n= +
Mà ta có:
DFT[ x1(n) ] = X1(k)
DFT[ x2(n) ] = X2(k)
Thì:
DFT[ x3(n) ] = X3p(k) = a.X1(k) + b.X2(k)
Chú ý, nếu chiều dài của x1(n) và x2(n) là khác nhau:
1 1[ ( )]L x n N=
2 2[ ( )]L x n N=
Thì ta phải chọn chiều dài của dãy x3(n) như sau: 3 3 1 2[ ( )] ( , )L x n N max N N= = và
tất cả các DFT[x1(n)], DFT[x2(n)] và DFT[x3(n)] đều phải tính trên N3 mẫu. Giả
sử N1<N2 thì dãy x1(n) phải được kéo dài thêm N2-N1 mẫu không và DFT[x1(n)]
phải được tính trên N3=N2 mẫu và DFT[x2(n)], DFT[x3(n)] cũng được tính trên
N2 mẫu.
2.2. Tính chất dịch vòng
Trễ vòng tương ứng với việc hoán vị vòng các mẫu của dãy x(n)N trong khoảng
[0,N-1] và ta có thể viết: ~
( ) ( ) ( )N N Nx n n rectx n=
0 0
~
( ) ( ) ( )N Nx n n rex nn ctn± ±=
Phép dịch vòng của một dãy là phép dịch trong đó các mẫu đi ra khỏi đoạn [0,
N-1] sẽ quay trở lại đầu kia.
Nếu ta có: [ ( ) ] ( )N NDFT x n X k= thì 0
0[ ( ) ] ( )knN N NDFT x n n W X k− =
134
2.3. Tính đối xứng
Chúng ta có dãy chiều dài hữu hạn N x(n)N và DFT[x(n)N]=X(k)N
Thì ta có: * *[ ( ) ] ( )N NDFT x n X k= −
ở đây dấu * là liên hợp phức.
2.4. Tích chập vòng
Đối với các dãy tuần hoàn có chu kỳ N ta đã có quan hệ sau:
~ 1
1 23 1 20
~
( ) ( )(*) ( ) ( ) ( )N
m
n n n x m xx x x n m−
=
= = −∑%
Và trong miền k ta có:
~ ~
3
~
1 2( ) ( ). ( )X X Xk k k=
Chú ý rằng, tất cả các dãy ở quan hệ trên đều là tuần hoàn với chu kỳ N. Còn đối
với dãy không tuần hoàn có chiều dài hữu hạn N, chúng ta có thể coi chúng
tương ứng với một chu kỳ của các dãy tuần hoàn chu kỳ N, vì vậy chúng ta cũng
có định nghĩa và tính chất tương tự như với các dãy tuần hoàn chu kỳ N.
Định nghĩa: Tích chập vòng của hai dãy không tuần hoàn x1(n)N và x2(n)N có
chiều dài hữu hạn N là một dãy không tuần hoàn cũng có chiều dài hữu hạn N
x3(n)N được cho bởi quan hệ sau:
1
3 1 20
( ) ( ) . ( )N
N N Nm
x n x m x n m−
=
= −∑
~
1 2( ) ( ) )* (N N Nx n x n=
~
(*)N là tích chập vòng chiều dài N.
Nếu trong miền n là tích chập vòng thì trong miền k ta dễ dàng chứng minh
được tính chất sau đây:
3 1 2( ) ( ) . ( )N N NX k X k X k=
Ở đây:
1 1
2 2
3 3
( ) [ ( ) ]
( ) [ ( ) ]
( ) [ ( ) ]
N N
N N
N N
X k DFT x n
X k DFT x n
X k DFT x n
=
=
=
135
3. Tích chập phân đoạn
Để ứng dụng DFT vào việc tính tích chập không tuần hoàn, tức là tích chập
tuyến tính, trước hết chúng ta phải phân biệt hai trường hợp. Trường hợp thứ
nhất khi các dãy chập với nhau có chiều dài gần bằng nhau và ngắn; trường hợp
thứ hai khi các dãy chập với nhau có chiều dài khác xa nhau.
Trong thực tế chúng ta thường gặp trường hợp thứ hai. Việc tính toán DFT của
dãy có chiều dài quá dài sẽ xẩy ra trường hợp vượt quá dung lượng của bộ nhớ
của máy tính và cần phải có thời gian tính toán quá lớn không cho phép. Hơn
nữa để có được mẫu đầu tiên của kết quả ta phải đợi kết thúc tất cả các tính toán.
Để giải quyết các vấn đề trên chúng ta phải chia tính toán ra nhiều giai đoạn.
Chúng ta có hai phương pháp (được Stockham nghiên cứu phát triển) nội dung
như sau:
- Chia dãy thành nhiều dãy con
- Chập từng dãy con một
- Tổ hợp các kết quả thành phần
Giả sử dãy x(n) có chiều dài là N, dãy h(n) có chiều dài là M, và N rất lớn hơn
M. Dãy y(n)=x(n)*h(n) có chiều dài là N+M-1 sẽ rất lớn. Vậy nếu ta dùng DFT
thì DFT sẽ được tính với chiều dài N+M-1. Vậy nếu N rất lớn thì chúng ta
không thể dùng DFT để tính tích chập này được. Vì thế nếu muốn dùng DFT thì
ta phải phân dãy x(n) ra làm nhiều đoạn nhỏ.
3.1. Phương pháp 1: Cộng xếp chồng
Giả sử ta cần tính tích chập tuyến tính: y(n)=x(n)*h(n)
L[x(n)]=N
L[h(n)]=M
N>>M
Dãy x(n) được coi như tổng của các dãy thành phần xi(n), mà L[xi(n)]=N1.
Tức là ta có:
( ) ( )N i Nii
x n x n= ∑
136
Với:
1 1( 1(
), ( 1)
,)
0ii N
x n iN n i N
nconl ix n
a
−≤ ≤ +=
Ta biết rằng:
( ) ( ) * ( ) ( ) ( ) ( )[ ( )]im m i
y n h n x n h m x n m h m x n m∞ ∞
=−∞ =−∞
= = − = −∑ ∑ ∑
1 1 1( ) ( ) ( ) * ( ) ( )i M i N i N Mi m i i
h m x n m h n x n y n∞
+ −=−∞
= − = =∑ ∑ ∑ ∑
1 11( ) ( ) * ( )i N M M i Ny n h n x n+ − = gọi là tích chập phân đoạn, đây là tích chập tuyến
tính, nếu dùng DFT thì mỗi tích chập phân đoạn này ta phải tính DFT với chiều
dài N1+M-1. Tức là ta phải tính tích chập vòng với chiều dài N1+M-1:
1 1 1 11 1 1 1( ) ( ) (*) ( )i N M N M N M i N My n h n x n+ − + − + − + −=
Như vậy tích chập vòng này sẽ bằng tích chập tuyến tính. Thế thì h(n)M sẽ được
kéo dài N1-1 mẫu không và xi(n)N1 sẽ được kéo dài M-1 mẫu không.
Trong miền tần số rời rạc k ta có:
1 1 11 1 1( ) ( ) ( )i N M N M i N MY k H k X k+ − + − + −=
Sau đó dùng IDFT để tính 1 1( )i N My n + −
1 11 1( ) [ ( ) ]i N M i N My n IDFT Y k+ − + −=
1
1 1
2
1 1 1 101
(1
( ) , 1)
0
21
N Mkn
i N M N Mk
iN n i N
nconla
Y k W MN M
i
+ −−
+ − + −=
+ −+
−≤ ≤ +
∑
Nhận xét:
- Nếu N1 rất dài thì ta có lợi là số lượng các đoạn sẽ ít đi,
nhưng vì N1 dài nên thời gian tính toán của một đoạn sẽ
tăng lên.
- Nếu N1 nhỏ thì có bất lợi là số lượng các đoạn sẽ tăng lên,
nhưng lại có lợi là thời gian tính toán một đoạn sẽ giảm
đi.
137
Vậy trong thực tế chúng ta phải chọn giá trị của N1 tối ưu so với chiều dài M của
h(n). Giá trị N1 tối ưu được chọn theo bảng, gọi là bảng HELMS
3.2. Phương pháp 2: đặt kề nhau
Chúng ta có một phương pháp nữa để tính tích chập nhanh gọi là phương pháp
đặt kề nhau, cũng giống như phương pháp cộng xếp chồng. Giả sử ta có:
L[x(n)]=N
L[h(n)]=M
N>>M
Ta cần tính tích chập tuyến tính: y(n)=x(n)*h(n)
Trong phương pháp này x(n) được coi như là tổng của các dãy thành phần đặt kề
lên nhau M-1 điểm, tức là M-1 điểm đầu tiên của dãy thành phần xi+1(n) sẽ kề
lên M-1 điểm cuối cùng của dãy thành phần xi(n). Còn dãy thành phần đầu tiên
x0(n) sẽ được bổ sung M-1 mẫu không đầu tiên.
Chúng ta gọi chiều dài của các dãy thành phần xi(n) là N1:
L[xi(n)]=N1
Sau đó ta phải chọn N1>M. Để ứng dụng biến đổi Fourier rời rạc để tính tích
chập phân đoạn này, chúng ta tính tích chập vòng xi(n)N1 với h(n)M như sau:
1 1 1( ) (*) ( ) ( )i N N M i Nx n h n y n′=
Tức là ở đây h(n)M được kéo dài thêm N1-(M-1) mẫu không và tích chập vòng ở
đây có chiều dài N1. Chuyển tích chập vòng sang trong công thức trên sang miền
k ta có:
1 1 1( ) ( .' ) ( )i N i N NkY k X H k=
ở đây:
1
1 1
1
1
10
0 1
0
( ) ,( )
Nkn
i N Nni N
k N
k
x n WX k
conlai
−
=
−=
≤ ≤
∑
1
1
1
1
10
0) 1)
0
((
Nkn
M NnN
k N
kconlai
h n WH k
−
=
−=
≤ ≤
∑
138
Sau đó dùng biến đổi Fourier ngược (IDFT) để tìm y‘(n)N1 như sau:
1
1 1
1
1
101
01
( ) , 1( )
0
Nkn
i N Nki N
Y k Wy n
n N
nconl
N
ai
−−
=
′ −′
≤ ≤
=
∑
Sau khi tính được ( )i Ny n′ chúng ta phải bỏ đi M-1 điểm đầu tiên để thu được
yi(n). Sau đó cộng các giá trị của yi(n) ta thu được y(n):
( ) ( )ii
y n y n= ∑
Cũng giống như phương pháp cộng xếp chồng, chiều dài DFT (N1) được chọn
tương ứng với chiều dài M của h(n)M sao cho thời gian tính toán tối ưu nhất.
4. Khôi phục biến đổi Z và biến đổi Fourier từ DFT
4.1. Khôi phục biến đổi Z
Giả sử có một dãy ( )Nx n có chiều dài hữu hạn N. Vậy ta có:
1
0
( ) ( ) ( )N
n nN N
n n
X Z x n Z x n Z∞ −
− −
=−∞ =
= =∑ ∑ Chúng ta có thể tìm X(Z) theo hàm của DFT [ ( ) ]Nx n
[ ( ) ] ( )N NDFT x n X k=
[ ( ) ] ( )N NIDFT X k x n=
Ta có [ ( ) ]NZT x n như sau:
1 1 1 1 1
0 0 0 0 0
11 1 11
10 0 0
1 1( ) [ ( ) ] ( ) ( )
1 1 1 ( )( ) ( ) ( )
1
knN N N N Nkn n n
N N N Nn k k n n N
kn NN N Nk n N
N N N kk n k N
X Z X k W Z X k X k W ZN N
W ZX k W Z X k
N N W Z
−− − − − −− − −
= = = = =
− −− − −− −
− −= = =
= =
−= =
−
∑ ∑ ∑ ∑ ∑
∑ ∑ ∑
Nhưng 1kNNW − =
Vậy: 1
10
1 ( )( )
1
N NN
kk N
Z X kX Z
N W Z
− −
− −=
−=
−∑ (*)
Nhận xét: -Có thể nói rằng chúng ta có thể nhận được biến đổi Z của một dãy có chiều dài hữu hạn N giá trị của X(k)N. - Các giá trị (N giá trị) của X(k)N chính là các mẫu của X(Z) được đánh giá trên vòng tròn đơn vị tại các điểm rời rạc
2k
N
π, vậy trên vòng tròn đơn vị ta lấy mẫu
X(Z) tại các điểm như sau: 2j k
j k kNNZ e e W
πω −= = =
Và ta có thể viết:
139
1
0
( ) | ( ) ( )kN
Nkn
N N NZ Wn
X Z x n W X k−
−
==
= =∑ Đến đây ta có thể nói rằng biểu thức (*) cho chúng ta công thức biến đổi Z của một dãy có chiều dài hữu hạn N từ N “mẫu tần số“ của X(Z) trên vòng tròn đơn vị.
4.2. Khôi phục biến đổi Fourier
Chúng ta có thể nhận được biến đổi Fourier từ biến đổi Z nếu vòng tròn đơn vị nằm trong miền hội tụ của biến đổi Z.
1
20
( )1( ) ( ) |
1
j
j N Nj N
Z e j kk jN
X keX e X Z
Ne e
ω
ωω
πω
− −
== −
−= =
−∑
1
2( )0
( )1
1
j N NN
j kk N
X ke
Ne
ω
πω
− −
−=
−=
−∑
Ta biết rằng:
2 2 2 21 ( ) 22
x x x xj j j j
jx xe e e e je sin
− − −−− = − =
Vậy:
11 [ ]2
0
1 2( ) ( )( )
2
NN j kj N
Nk
Nsin
X e X k eN sin k
N
πω
ω
ω
ω π
−− − +
=
=−
∑
Biểu thức trên chính là mối quan hệ cho phép ta tìm biến đổi Fourier bằng cách nội suy từ các giá trị X(k)N.
B. Thực hành
Bài tập với Matlab
Bổ xung một số hàm cho Matlab:
Hàm tính biến đổi Fourier của chuỗi x(n) gồm N điểm.
function [Xk]=dft(xn,N)
%Tind bien doi Fourier roi rac
%[Xk]=dft(xn,N)
n=[0:1:N-1]; %vecto hang n
k=[0:1:N-1]; %vecto hang k
WN=exp(-j*2*pi/N);
nk=n'*k; %tao ra matrix NxM cua nk gia tri
140
WNnk=WN.^nk; %matrix DFT
Xk=xn*WNnk;
Hàm tính biến đổi Fourier rời rạc ngược của chuỗi X(k) gồm N điểm:
function [xn]=idft(Xk,N)
%tinh Bien doi Fourier roi rac nguoc
n=[0:1:N-1]; %vector hang cho n
k=[0:1:N-1]; %vector hang cho k
WN=exp(-j*2*pi/N);
nk=n'*k;
WNnk=WN.^(-nk);
xn=(Xk*WNnk)/N;
Ví dụ 1: Cho chuỗi x(n) sau:
3(
,)
1, 0
0
n
nx n
≤=
≤
≠
a, tìm biến đổi Fourier thời gian rời rạc ( )jX e ω , vẽ độ lớn và pha
b,Tính DFT 4 điểm của x(n)
x = [1,1,1,1];
subplot(1,1,1);
% a) DTFT
w = [0:1:500]*2*pi/500;
[H] = freqz(x,1,w);
magH = abs(H); phaH = angle(H); phaH(126)=-
47.5841*pi/180;
subplot(2,1,1); plot(w/pi,magH); grid
xlabel('frequency in pi units');
141
ylabel('|X|'); title('Magnitude of the DTFT')
subplot(2,1,2); plot(w/pi,phaH/pi*180); grid
xlabel('frequency in pi units');
ylabel('Degrees'); title('Angle of the DTFT')
pause;subplot(1,1,1)
% b) 4-point DFT
N = 4; w1 = 2*pi/N; k = 0:N-1;
X = dft(x,N);
magX = abs(X), phaX = angle(X)*180/pi
subplot(2,1,1);plot(w*N/(2*pi),magH,'--');
axis([-0.1,4.1,-1,5]); hold on
stem(k,magX);
xlabel('k');
ylabel('|X(k)|'); title('Magnitude of the DFT: N=4')
hold off
subplot(2,1,2);plot(w*N/(2*pi),phaH*180/pi,'--');
axis([-0.1,4.1,-200,200]); hold on
stem(k,phaX);
xlabel('k');
ylabel('Degrees'); title('Angle of the DFT: N=4')
Kết quả:
magX =
4.0000 0.0000 0.0000 0.0000
phaX =
0 -129.6009 -90.0000 -45.3479
142
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20
1
2
3
4
frequency in pi units
|X|
Magnitude of the DTFT
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-200
-100
0
100
200
frequency in pi units
Degre
es
Angle of the DTFT
Ví dụ 2: Cho dãy ( ) (0.48 ) (0.52 )x n cos n cos nπ π= +
a. Xác định và vẽ phổ Fourier rời rạc của x(n), 0≤n≤10
b. Xác định và vẽ phổ Fourier rời rạc cua x(n), 0≤n≤100
n=[0:1:99];
x=cos(0.48*pi*n)+cos(0.52*pi*n);
n1=[0:1:9];y1=x(1:1:10);
subplot(2,1,1);stem(n1,y1);title('signal x(n), 0 <= n
<= 9');xlabel('n')
axis([0,10,-2.5,2.5])
Y1=fft(y1);magY1=abs(Y1(1:1:6));
k1=0:1:5;w1=2*pi/10*k1;
subplot(2,1,2);ste m(w1/pi,magY1);title('Samples of
DTFT Magnitude');
143
xlabel('frequency in pi units')
0 1 2 3 4 5 6 7 8 9 10
-2
-1
0
1
2
signal x(n), 0 <= n <= 9
n
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
5
10Samples of DTFT Magnitude
frequency in pi units
Nhận xét: Hình trên không đủ số mẫu cần thiết để kết luận về phổ độ lớn của
chuỗi x(n). Để có thể quan sát phổ dầy hơn ta có thể thêm vào các điểm không
gọi là zero-padding.
% High density spectrum (100 samples) based on the
first 10 samples of x(n)
n=[0:1:99];
x=cos(0.48*pi*n)+cos(0.52*pi*n);
n3=[0:1:99];y3=[x(1:1:10) zeros(1,90)];
subplot(2,1,1);stem(n3,y3);title('signal x(n), 0 <= n
<= 9 + 90 zeros');xlabel('n')
axis([0,100,-2.5,2.5])
Y3=fft(y3);magY3=abs(Y3(1:1:51));
k3=0:1:50;w3=2*pi/100*k3;
subplot(2,1,2);plot(w3/pi,magY3);title('DTFT
Magnitude');xlabel('frequency in pi units')
axis([0,1,0,10])
144
0 10 20 30 40 50 60 70 80 90 100
-2
-1
0
1
2
signal x(n), 0 <= n <= 9 + 90 zeros
n
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
5
10DTFT Magnitude
frequency in pi units
n=[0:1:99];
x=cos(0.48*pi*n)+cos(0.52*pi*n);
subplot(2,1,1);stem(n,x); title('signal x(n), 0 <= n
<= 99');xlabel('n')
axis([0,100,-2.5,2.5])
X=fft(x);magX=abs(X(1:1:51));
k=0:1:50;w=2*pi/100*k;
subplot(2,1,2);plot(w/pi,magX);title('DTFT
Magnitude');xlabel('frequency in pi units')
axis([0,1,0,60])
145
0 10 20 30 40 50 60 70 80 90 100
-2
-1
0
1
2
signal x(n), 0 <= n <= 99
n
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
20
40
60DTFT Magnitude
frequency in pi units
Ví dụ 3: Tính biến đổi fourier trong miền tần số rời rạc của dãy :
1,0 7
[ ]0,
nn
ngoaikhoanx
g
≤ ≤=
N=input('Chieu dai N cua day=');
M=input('chieu dai M cua day=');
%phat ra day x[n]
x=[ones(1,N)];
%Tinn DFT M diem
X=fft(x,M);
%ve day x[n] va X[k]
t=0:1:N-1;
stem(t,x);
title('day x[n]');
xlabel('chi so thoi gian n');ylabel('bien do');
pause
subplot(2,1,1)
k=0:1:M-1;
146
stem(k,abs(X));grid
title('Bien do cua DFT|X[k]|');
xlabel('Chi so tan so k');ylabel('Bien do');
subplot(2,1,2);
stem(k,angle(X));grid
title('Pha cua DFT X[k]');
xlabel('chi so tan so k');ylabel('Pha cua X[k]');
0 1 2 3 4 5 6 70
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1day x[n]
chi so thoi gian n
bie
n d
o
147
0 5 10 150
2
4
6
8Bien do cua DFT|X[k]|
Chi so tan so k
Bie
n d
o
0 5 10 15-2
-1
0
1
2Pha cua DFT X[k]
chi so tan so k
Ph
a c
ua
X[k
]
Kiểm tra một tính chất của biến đổi Fourier rời rạc
Ví dụ 4: Cho ( ) 10(0.8)nx n = 0≤n≤10. Xác định và vẽ x((-n))11
% a) plot x((-n))N
n = 0:10; x = 10*(0.8) .^ n;
y = x(mod(-n,11)+1);
subplot(2,1,1); stem(n,x); title('Original sequence')
xlabel('n'); ylabel('x(n)'); axis([-0.5,10.5,-1,11])
subplot(2,1,2); stem(n,y); title('Circularly folded
sequence')
xlabel('n'); ylabel('x(-n mod 11)'); axis([-
0.5,10.5,-1,11])
148
0 1 2 3 4 5 6 7 8 9 10
0
5
10
Original sequence
n
x(n
)
0 1 2 3 4 5 6 7 8 9 10
0
5
10
Circularly folded sequence
n
x(-
n m
od 1
1)
X = dft(x,11); Y = dft(y,11);
subplot(2,2,1); stem(n,real(X)); axis([-0.5,10.5,-
5,50])
title('RealDFT[x(n)]'); xlabel('k');
subplot(2,2,2); stem(n,imag(X)); axis([-0.5,10.5,-
20,20])
title('ImagDFT[x(n)]'); xlabel('k');
subplot(2,2,3); stem(n,real(Y)); axis([-0.5,10.5,-
5,50])
title('RealDFT[x((-n))11]'); xlabel('k');
subplot(2,2,4); stem(n,imag(Y)); axis([-0.5,10.5,-
20,20])
title('ImagDFT[x((-n))11]'); xlabel('k');
149
0 5 10
0
10
20
30
40
50RealDFT[x(n)]
k
0 5 10-20
-10
0
10
20ImagDFT[x(n)]
k
0 5 10
0
10
20
30
40
50RealDFT[x((-n))11]
k
0 5 10-20
-10
0
10
20ImagDFT[x((-n))11]
k
Dịch chuyển vòng theo thời gian
Trong Matlab, tính chất dịch chuyển vòng được thực hiện nhờ hàm circshift như
sau:
function y=ciccshift(x,M)
%Tao mot day bang cach dich vong say x M mau
if abs(M)>length(x)
M=rem(M,length(x));
end
if M<0
M=M+length(x);
end
y=[x(M+1:length(x)) x(1:M)];
Ví dụ 5:Chương trình thực hiện dịch chuyển vòng của một dãy hữu hạn:
%Chuong trinh mi nh hoa dich chuyen vong cua mot day
huu han
150
clf;
M=6;
a=[0:9];
b=circshift(a,M);
L=length(a)-1;
n=0:L;
subplot(2,1,1);
stem(n,a);axis([0,L,min(a),max(a)]);
title('Day goc');
subplot(2,1,2);
stem(n,b);axis([0,L,min(a),max(a)]);
title(['Day dich chuyen vong ',num2str(M),' mau']);
0 1 2 3 4 5 6 7 8 90
2
4
6
8
Day goc
0 1 2 3 4 5 6 7 8 90
2
4
6
8
Day dich chuyen vong6mau
Nhân chập thẳng dùng DFT
Nhờ có cặp biến đổi Fourier DFT và IDFT, có thể tính được phép nhân chập
thẳng giữa hai dãy. Dãy x[n] có chiều dài N, dãy h[n] có chiều dài M, để thu được dãy
151
lối ra y[n] có chiều dài N+M-1 ta phải tính N+M-1 mẫu DFT Y[k]=H[k].X[k]. Như
vậy, phải điền thêm (M-1) mẫu giá trị không vào dãy x[n] và (N-1) mẫu số không vào
dãy h[n] và sau đó thực hiện phép nhân sau đó biến đổi IDFT.
Ví dụ 6: áp dụng với chuỗi x[n]= [1 2 2 1] và h[n]=[1 -1 -1 1]
%Nhan chap thang dung DFT
x=input('Nhap day x[n]=');
h=input('Nhap day h[n]=');
%xac dinh chieu dai cua day y[n]=x[n]*h[n]
L=length(x)+length(h)-1;
%Tinh DFT cua hai day da dien them so 0
XE=fft(x,L);
HE=fft(h,L);
%Tind IDFT cua tich XE,HE
y1=ifft(XE.*HE);
%Ve day y1[n]
k=0:1:L-1;
subplot(2,1,1);
stem(k,y1);grid
xlabel('chi so thoi gian n');
ylabel('Bien do');
title('day y[n]=x[n]*h[n]');
%Ve day y2[n]=x[n]*h[n] tinh truc tiep
y2=conv(x,h);
%Xac dinh sai so giua hai phuong phap tinh
e=y1-y2;
subplot(2,1,2);
stem(k,abs(e));grid
152
xlabel('Chi so thoi gian n');
ylabel('Bien do');
title('Bien do cua day sai so');
0 1 2 3 4 5 6-2
-1
0
1
2
chi so thoi gian n
Bie
n d
o
day y[n]=x[n]*h[n]
0 1 2 3 4 5 60
2
4
6
8x 10
-16
Chi so thoi gian n
Bie
n d
o
Bien do cua day sai so
Tích chập phân đoạn
Cộng xếp chồng (overlap-add)
Matlab sử dụng M-file fftfilt để thực thi phương pháp cộng chồng phủ. Hàm này
có hai dạng khác nhau:
Y=fftfilt(h,x) và y=fftfilt(h,x,N)
Trong đó h là vector đáp ứng xung của mạch lọc FIR, x là vector tín hiệu lối vào
cần lọc đã được phân thành các phần liên tiếp nhau, còn y là tín hiệu lối ra đã
được lọc.
Trong phiên bản đầu tiên thì dữ liệu lối vào x được phân chia thành đoạn liên
tiếp nhau, mỗi đoạn có chiều dài 512 mẫu, trong khi phiên bản thứ hai tín hiệu
lối vào được phân chia thành các đoạn liên tiếp nhau mỗi đoạn có chiều dài N
mẫu tùy theo người dùng. Minh họa phương pháp này bằng ví dụ sau:
153
Ví dụ 7: Dùng phương pháp nhân chập khối cộng chồng phủ để lọc tín hiệu:
[ ] 2[ (0.9) ]ns n n= bị nhiễm tạp âm d[n] ngẫu nhiên: x[n]=s[n]+d[n]
Và 4
0
1 1[ ] [ ] [1111]
4 4m
h n n mδ=
= − =∑
Ở đây h[n] là đáp ứng xung đơn vị của mạch lọc FIR trung bình động có chiều
dài M=4.
%Nhan chap khoi dung phuong phap cong xep chong
R=64;
M=4;
d=rand(R,1)-0.5;
for m=1:1:R
s(m)=2*(m-1)*((0.9)^(m-1));
x(m)=s(m)+d(m);
end
k=0:1:R-1;
h=ones(1,M)/M;
y=fftfilt(h,x,4);
plot(k,s,'r-',k,y,'b--');
xlabel('chi so thoi gian');
ylabel('bien do');
legend('s[n]','y[n]');
154
0 10 20 30 40 50 60 700
1
2
3
4
5
6
7
8
chi so thoi gian
bie
n d
o
s[n]
y[n]
Phương pháp đặt kề nhau
Một số hàm bổ xung cho Matlab
function y=cirshftt(x,m,N)
if length(x)>N
error('N must be >=the length of x');
end
x=[x zeros(1,N-length(x))];
n=[0:1:N-1];n=mod(n-m,N);y=x(n+1);
function y=circonvt(x1,x2,N)
if length(x1)>N
error('N must be >=the length of x1');
end
if length(x2)>N
155
error('N must be >= the length of x2');
end
x1=[x1 zeros(1,N-length(x1))];
x2=[x2 zeros(1,N-length(x2))];
m=[0:1:N-1];x2=x2(mod(-m,N)+1);H=zeros(N,N);
for n=1:1:N
H(n,:)=cirshftt(x2,n-1,N);
end
y=x1*conj(H');
function [y]=ovrlpsav(x,h,N)
%nhan chap bang phuong phap xep ke nhau
Lenx=length(x);M=length(h);
M1=M-1;L=N-M1;
h=[h zeros(1,N-M)];
x=[zeros(1,M1),x,zeros(1,N-1)];
K=floor((Lenx+M1-1)/L);
Y=zeros(K+1,N);
%nhan chap voi cac khoi lien tiep nhau
for k=0:K
xk=x(k*L+1:k*L+N);
Y(k+1,:)=circonvt(xk,h,N);
end
Y=Y(:,M:N)';
y=(Y(:))';
Ví dụ 8: Cho x[n]=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] và h[n]=[1,0,-1]
156
Thực hiện phương pháp nhân chập đặt kề nhau với N=6 để tính nhân chập thẳng
giữa x[n] với h[n].
n=0:9;x=n+1;h=[1 0 -1];N=6;
y=ovrlpsav(x,h,N)
Kết quả:
y = 1 2 2 2 2 2 2 2 2 2 -9 -10
C. Bài tập
1. Hãy xác định DFT N điểm của các dãy sau :
1. NLnrecte L
nLj ≤víi)()2( π 3. )(.cos2
nrectn NN
π
2. )(.1 nrectn
NN
− 4. )(.sin
2nrectn N
N
π
2. Hãy xác định NLkX NLN nrectaDFT n ≤= víi])([)( . Tính NkX )( với a = 0,8 ; L =
2 ; N = 4 , vẽ các đồ thị NkX )( và [ ]NkXArg )( .
3. Hãy tính trực tiếp 5)(kX , với
=↑
2,1,0,1,2)(nx . Vẽ các đồ thị 5)(kX và
[ ]5)(kXArg .
4. Hãy tính 8)(kX , với
=↑
2,1,0,1,2)(nx Vẽ các đồ thị 8)(kX và [ ]8)(kXArg .
So sánh kết quả nhận được với kết quả của BT 4.4.
5. Cho dãy ])([)(1 NN nxDFTkX = , hãy xác định biểu thức của dãy
])()[()( 12 NN nxDFT nkX −= theo NkX )(1 .
6. Hãy tìm IDFT của các DFT N điểm sau :
1. )(.2 kNrectk− 3.
k
NkNrect
.2cos).(
π
2. )(.1 kN
kNrect
− 4.
k
NkNrect
.2sin).(
π
7. Cho dãy thực hữu hạn với NN nxnx N )()( 1 −−−= và N lẻ. Hãy tìm NkX )( tại các
điểm k = N/2 ; 3N/2 ; 5N/2 ; 7N/2 .
8. Hãy tính DFT 8 điểm của các dãy sau :
157
1. )(.sincos)( 814
.34
.2 nrectnnnx
+
=
ππ
2. )()()( 452 32 nrectnrectnx nn −− +=
3.
= nnx
8.4
23 cos)(
π
4. 854 )4()()( 32 −+= − nnrectnx n δ
9. Cho dãy hữu hạn
=↑
0,1,2,3)(nx .
1. Hãy xác định 4)(kX và 8)(kX .
2. Tìm )]([)( 241 −= nxDFTkY khi )( 2−nx là dịch tuyến tính.
3. Tìm ])([)( 442 2−= nxDFTkY khi 4)( 2−nx là dịch vòng.
10. Cho ])([)( NN nxDFTkX = , hãy tìm DFT N điểm của các dãy sau :
1. NNN nxnxny )()()( 321 −+= 4. NNN nxnxny )(*)()( 36 −−=
2. NNN nxnxny )()()( *2 2+= 5. NNN nxnxny N )(.)()( 15 +−=
11. Cho dãy hữu hạn
=↑
2,1,0,3)(nx , hãy điền giá trị các mẫu vào bảng dưới
đây :
Dịch tuyến tính Dịch vòng
n -
1
-
2 0 1 2 3 4 n 0 1 2 3
)(nx 4)(nx
)( 3+nx 4)( 3+nx
)( 3−nx 4)( 3−nx
)( 5−nx 4)( 5−nx
)( nx − 4)( nx −
)(3 nx − 4)(3 nx −
12. Hãy xác định năng lượng của các tín hiệu số có DFT sau :
158
1.
=↑
1,2,0,1,2,36)(kX 2.
= k
NkX N
.22cos)(π
13. Tính trực tiếp các tích chập sau và so sánh kết quả của chúng :
1. Tích chập tuyến tính : )(*)()( 43 32 nrectnrectny nn −−=
2. Tích chập vòng 6 điểm : )(*)()( 436 32 nrectnrectny nn −−=
14. Hãy tính các tích chập vòng sau :
1. )(.sin*)(.cos)( 4344
2
4
2nrectnnrectnny
=
ππ
2. )(.cos*)()( 6363
2 nrectnnrectny n
= − π
15. Cho ])([)( NN nxDFTkX = , hãy tìm DFT N điểm của các dãy sau :
1.
= nnxny
NNN
π2cos.)()(1 3.
= nnxny
NNN
π2sin.)()(3
2. NNN nxnxny )(.)()( .22 = 4. NNN nxnxny N )(.)()( 24 −=
16. Cho DFT 8 điểm
=↑
3,2,1,0,0,1,2,38)(kX , hãy tìm hàm )(zX bằng
phương pháp nội suy.
17. Cho DFT N điểm )(cos)(.2
krectkk NNN
X
=
π , hãy tìm )( ωjeX bằng phương
pháp nội suy.
18. Hãy tính trực tiếp IDFT của dãy X(k)5 có :
kk5
4
2)(
ππθ −= và
= −−↑
3,5,1,5,1,3,05)(kA
19. Hãy tính trực tiếp DFT của dãy x(n)6 = rect3(n) - rect3(n - 3) .
20. Hãy tính trực tiếp IDFT của dãy X(k)6 có :
kk6
5)(
πθ = và
= −−↑
5,1,5,0,0,5,0,5,1,36)(kA
21. Cho dãy hữu hạn
=↑
0,5,0,1,5,1,2,5,2,37)(nx
159
Hãy tính DFT 8 điểm của dãy bằng thuật toán FFT cơ số 2 phân chia theo
thời gian.
22. Hãy xấp xỉ phổ bằng cửa sổ chữ nhật )( 25 −nrect đối với tín hiệu số hữu hạn :
=↑
2,0,1,0,0,1,0,2,0,1,2,3,2,1,2,0,012)(nx .
Hãy giải thích tại sao chọn độ dài và vị trí cửa sổ như vậy ?
23. Hệ xử lý số TTBB có đặc tính xung )()( 32 nrectnh n−= và tác động :
=↑
05,0,15,0,1,0,0,1,0,2,0,1,5,1,2,3,2,6,2,8,2,3,3,3,316)(nx .
Hãy tìm phản ứng của hệ bằng phương pháp cộng xếp chồng DFT, khi chia x(n)
thành hai phân đoạn và bốn phân đoạn.
160
THỜI GIAN (GIỜ) MÃ SỐ BÀI HỌC
XLS02-02
TÊN BÀI HỌC
BIẾN ĐỔI FOURIER
NHANH(FFT) VÀ
PHÂN TÍCH PHỔ
LT: 6 TH:10 TS:16
MỤC TIÊU:
Sau khi học xong bài này, học viên có thể: Hiểu được các thuật toán tính
Fourier nhanh và vận dụng FFT để tính tích chập, phân tích phổ
NỘI DUNG:
A. Lý thuyết
Trong lĩnh vực xử lí số tín hiệu, biến đổi Fourier có vai trò rất quan trọng, vì
nó tồn tại các thuật toán tính toán DFT hiệu quả hơn. Từ khi Cooley phát hiện ra
thuật toán tìm nhanh biến đổi DFT, các thuật toán ngày càng được phát triển và
ứng dụng nhiều trong xử lí số tín hiệu.
1. Độ phức tạp tính toán của DFT
Trong modul XLS01-05 chúng ta đã tìm hiểu biến đổi Fourier rời rạc như sau:
−≤≤
= ∑−
=
conlaik
NknxkX
N
n
nk
0
10W).()(
1
0
.
M (6.1)
−≤≤
= ∑−
=
−
conlain
NnkXNnx
N
n
nk
0
10W).(1
)(
1
0
.
N (6.2)
Nhận xét:
- Từ (6.1) và (6.2) ta thấy: X(k) và x(n) chỉ khác nhau hệ số tỉ lệ (1/N) và
dấu của WN. Như vậy DFT và IDFT gần như là giống nhau, do đó các
thuật toán FFT được sử dụng cho cả DFT và IDFT, nghĩa là các thuật toán
tính nhanh FFT cũng áp dụng cho IFFT.
- Từ (3.3) ta thấy do x(n) có thể có giá trị thực hoặc phức vì thế để tìm X(k)
yêu cầu thực hiện N phép nhân phức và N phép cộng phức với 1 giá trị
161
của k. Với N giá trị k việc tính DFT- N điểm yêu cầu N2 phép toán nhân
phức và N2 phép toán cộng phức. Do đó khi N lớn số lượng phép toán sẽ
rất lớn vì vậy cần thuật toán tìm X(k) (x(n)) hiệu quả hơn.
- Giải thuật cơ bản của thuật toán tính nhanh FFT là việc phân giã DFT-N
điểm thành các DFT-Ni nhỏ hơn (Ni<N) khi đó số lượng phép toán sẽ
giảm đi rất nhiều (cỡ i.Ni2).
- Các thuật toán tính nhanh biến đổi Fourier đều dựa vào tính chất của WN.
Các tính chất của WN.
- Tính tuần hoàn
WNk.n = WN
(k’.n’ + iN) =WNk’.n’
Do n ∈[0, N-1]
k ∈[0, N-1]
nên k.n ∈ [0, (N-1).(N-1) ] và k.n = k’.n’ + iN
Ví dụ: Cho DFT – N=8 hãy dùng tính chất tuần hoàn để tính X(7)
Từ (3.3) Ta có:
X(7) = x(0). W87.0 + x(1). W8
7.1+ x(2). W87.2+ x(3). W8
7.3 + x(4). W87.4 +
x(5).W87.5 + x(6). W8
7.6 + x(7). W87.7
X(7) = x(0). W80 + x(1). W8
7+ x(2). W814+ x(3). W8
21 + x(4). W828 + x(5).W8
35
+ x(6). W842 + x(7). W8
49
Do tính chất tuần hoàn của WN nên ta có:
W08= W8
0
W78= W8
7
W148= W8
(6+1.8) = W68 W42
8= W8(2+5.8) = W2
8
W218= W8
(5+2.8) = W58 W49
8= W8(1+6.8) = W1
8
W288= W8
(4+3.8) = W48
W358= W8
(3+4.8) = W38
Vậy: X(7) = X(7) = x(0). W80 + x(1). W8
7+ x(2). W86+ x(3). W8
5 + x(4).W84 +
x(5).W83 + x(6). W8
2 + x(7). W81
162
-Tính chất đối xứng.
Wk’n’N = WN
(N-k’’n’’) = WNN . WN
-k’’.n’’ = WN-k”.n” do WN
N= 1
Ví dụ: W78= W8
(8-1)= W-18
......
Dựa vào các tính chất này người ta có các giải thuật phân chia theo thời gian và
phân chia theo tần số, trong chương trình chúng ta chỉ tìm hiểu giải thuật phân
chia theo thời gian với N = 2m còn các trường hợp khác sv tự ngiên cứu!
2. Thuật toán FFT cơ số 2 phân chia theo thời gian ( FFT – R2)
2.1. Trường hợp N=2m
Nội dung của giải thuật này là phân chia dãy x(n) thành các dãy có chiều dài nhỏ
hơn và tìm X(k) từ các DFT của chuỗi đã được chia nhỏ.
Thuật toán:
- Gọi x(n) là dãy có chiều dài là N = 2m, giả sử x(n) được chia thành 2 dãy
con x(2n) và x(2n+1), mỗi dãy có chiều dài là N/2
+ Dãy x(2n) là dãy chứa các mẫu chẵn của x(n).
+ Dãy x(2n+1) là dãy chứa các mẫu chẵn của x(n).
Ví dụ:
163
Do:
−≤≤
= ∑−
=
conlaik
NknxkX
N
n
nk
0
10W).()(
1
0
.
N nên với 10 −≤≤ Nk ta có:
∑∑−
=
+
−
=
++=
12
N
0n
1).k(2nN
12
N
0n
2n.kN W)12(W)2()( nxnxkX do
2
N2
2
2.2
2N WW ===
−
−N
j
Nj
ee
π
π
nên
kN
12
N
0n
n.k
2
N
12
N
0n
n.k
2
N W.W)12(W)2()( ∑∑−
=
−
=
++= nxnxkX do WkN không phụ thuộc vào n nên:
∑∑−
=
−
=
++=
12
N
0n
n.k
2
NkN
12
N
0n
n.k
2
N W)12(WW)2()( nxnxkX
Đặt ∑−
=
=
12
N
0n
n.k
2
N0 W)2()( nxkX là DFT – N/2 điểm chẵn của x(n)
∑−
=
+=
12
N
0n
n.k
2
N1 W)12()( nxkX là DFT – N/2 điểm lẻ của x(n)
ta có: X(k) = X0(k) + WNk.X1(k) (3.5)
Nhận xét: Các phép toán tìm X0(k) và X1(k) chỉ thực hiện trong khoảng từ: 0
đến( N/2 –1). Do vậy thực chất ta đã phân chia DFT – N điểm thành 2 DFT –
N/2 điểm. X0(k) và X1(k) tuần hoàn chu kì N/2.
Ví dụ:
Thực hiện DFT – N=8
Từ (3.5) ta có: X(k) = X0(k) + WNk.X1(k)
Suy ra: X(0) = X0(0) + W80.X1(0) X(4) = X0(4) + W8
4.X1(4)
X(1) = X0(1) + W81.X1(1) X(5) = X0(5) + W8
5.X1(5)
X(2) = X0(2) + W82.X1(2) X(6) = X0(6) + W8
6.X1(6)
X(3) = X0(3) + W83.X1(3) X(7) = X0(7) + W8
7.X1(7)
Do X0(k) và X1(k) tuần hoàn chu kì N/2 = 8/2 =4 do đó:
164
X(0) = X0(0) + W80.X1(0) X(4) = X0(0) + W8
4.X1(0)
X(1) = X0(1) + W81.X1(1) X(5) = X0(1) + W8
5.X1(1)
X(2) = X0(2) + W82.X1(2) X(6) = X0(2) + W8
6.X1(2)
X(3) = X0(3) + W83.X1(3) X(7) = X0(3) + W8
7.X1(3)
Từ đây ta có thể xây dựng lưu đồ sau:
Quy tắc xây dựng lưu đồ:
- Giá trị của một nút bằng tổng các nhánh đi vào nút đó.
- Giá trị của một nhánh bằng giá trị nút xuất phát nhân với hệ số truyền của
nhánh.
- Hệ số truyền của nhánh ghi ở mũi tên, nếu không ghi thì hệ số truyền
bằng 1.
Lưu đồ DFT –N=8 sau 1 lần phân chia. Vẽ hình sau
- Tiếp tục ta lại chia 2 dãy x(2n) và x(2n+1) mỗi dãy thành 2 dãy con giống như
trên. Giải thuật tiếp tục sau (m-1) lần chia thì chỉ còn là DFT – 2 khi đó các hệ
số truyền WkN chỉ mang 2 giá trị là: W0
2 = 1 và W12 = -1. Ta sẽ dừng phép chia
tại đây.
Ví dụ: N=8 sau 2 lần phân chia ta có:
DFT N/4
x(0)
x(4)
X00(0)
X00(1)
165
Và ta có:
Đây được gọi là dạng cánh bướm của FFT –R2. Kết hợp lại ta có lưu đồ sau:
N=8
• Hiệu quả thuật toán: Do N=2m nên suy ra có m ltầng tính toán, mỗi tầng
gồm N/2 phép nhân số phức với WkN và N phép cộng số phức. Vậy ta cần
có (1/2).N.m phép nhân phức và (1/2)N.m phép cộng. Số lượng phép toán
giảm đi đáng kể.
• Ví dụ: N=8 sử dụng công thức của DFT thì cỡ: N2=64
Sử dụng FFT-R2 số lượng phép toán cỡ: N.m = 8.3=24.
• Cải thiện thuật toán:
Xét giữa 2 tầng của thuật toán liền kề : i và i+1
x(0)
x(4)
X00(0)=x(0) + x(4)
X00(1)=x(0) – x(4)
W20=1
W21=-1
166
Theo hình vẽ ta thấy giữa 2 tầng i và (i+1) ta có:
Xi+1(p) = Xi(p) + WNr.Xi(q)
Xi+1(q) = Xi(p) + WN(r+N/2).Xi(q)
Ta lại thấy: rN
2
N
NrN
)2
N(r
WW.WW −==+
N vậy ta có:
Xi+1(p) = Xi(p) + WNr.Xi(q)
Xi+1(q) = Xi(p) - WNr.Xi(q)\
Sơ đồ được vẽ lại:
Vậy với một phép nhân WNr.Xi(q) ta có thể tính 2 giá trị Xi+1(p) và Xi+1(q). Do
đó số lượng phép nhân sẽ giảm đi 2 lần còn số lượng phép cộng vẫn giữ nguyên.
Vậy để tính được X(k)N thì cần:
N.log2N phép cộng phức
(½)N.log2N phép nhân phức.
Vậy ta có thể xây dựng lưu đồ thuật toán FFT – R2 ( ví dụ N=8 ) như sau:
Xi+1(q)
Xi(p)
Xi(q)
Xi+1(p)
WN(r+N/2)
WNr
Xi+1(q)
Xi(p)
Xi(q)
Xi+1(p)
WN-r
WNr
Xi+1(q)
Xi(p)
Xi(q)
Xi+1(p)
WNr
-1
167
Chú ý: Khi thực hiện trên máy tính hoặc thiết kế dãy vào x(n) thường được xắp
xếp theo mã nhị phân đảo còn X(k) được xắp xếp theo mã nhị phân thường.
x(n) Mã nhị phân đảo Mã nhị phân thường X(k)
x(0) 000 000 X(0)
x(4) 100 001 X(1)
x(2) 010 010 X(2)
x(6) 110 011 X(3)
x(1) 001 100 X(4)
x(5) 101 101 X(5)
x(3) 011 110 X(6)
x(7) 111 111 X(7)
Trục đảo Trục đảo
2.2. Trường hợp: N=Bα ; N=B1.B2
1. Thuật toán phân chia theo tần số ( Giống phân chia theo thời gian)
2. Tính tổng chập nhanh sử dụng FFT
168
y(n) =x(n)*h(n)
3. Thực hiện thuật toán FFT cơ số bốn phân chia theo thời gian Để thấy được trực quan thuật toán FFT cơ số bốn, xét ví dụ sau. Ví dụ: Hãy tính DFT 16 điểm của dãy x(n)10 bằng thuật toán FFT cơ số bốn phân chia theo thời gian. Giải : Để tính , cần thêm 6 mẫu 0 vào cuối dãy x(n)10 :
0000009876543210 )()()()()()()()()()( xxxxxxxxxx
Với M = N/4 = 16/4 = 4 thì L = 4 , mảng x(m, l) có 4 cột và 4 hàng. - Bước một : Lưu giữ dãy x(n)16 bằng mảng x(m, l) xắp xếp theo cột :
0073
0062
0951
0840
)()(
)()(
)()()(
)()()(
xx
xx
xxx
xxx
⇔
)()()()(
)()()()(
)()()()(
)()()()(
3,32,31,30,3
3,22,21,20,2
3,12,11,10,1
3,02,01,00,0
xxxx
xxxx
xxxx
xxxx
Trong đó hai hàng đầu có một phần tử ở cuối bằng 0, hai hàng cuối có hai phần tử ở cuối bằng 0. - Bước hai : Tính bốn DFT 4 điểm ứng với bốn hàng của mảng x(m, l) và nhận
được mảng F(l, q) : ∑=
−=
3
0
.2).,(),(
m
mjqemlxqlF
π
với l = 0 ÷ 3
- Bước ba : Tính mảng ljqNeqlql FG
..2
).,(),(π−
= :
)()()()(
)()()()(
)()()()(
)()()()(
3,32,31,30,3
3,22,21,20,2
3,12,11,10,1
3,02,01,00,0
FFFF
FFFF
FFFF
FFFF
⇔
)()()()(
)()()()(
)()()()(
)()()()(
3,32,31,30,3
3,22,21,20,2
3,12,11,10,1
3,02,01,00,0
GGGG
GGGG
GGGG
GGGG
- Bước bốn : Tính bốn DFT 4 điểm ứng với bốn cột của mảng G(l, q) và nhận được mảng X(p, q) :
∑=
−=
3
0
..2).,(),(
l
ljpeqlqp GX
π
với q = 0 ÷ 3
- Bước năm : Chuyển mảng X(p, q) thành dãy X(k)N xắp xếp theo hàng
FFT
x
FFT
IFFT
x(n)
h(n)
H(k)
X(k)
Y(k) y(n)=x(n)*h(n)
169
B. Thực hành
1.Nhân chập nhanh dùng FFT
%Nhan chap nhanh dung FFT
conv_time = zeros(1,150); fft_time = zeros(1,150);
for N = 1:150
tc = 0; tf=0;
L = 2*N-1; nu = round((log10(L)/log10(2))+0.45);
L = 2^nu;
for I=1:100
h = randn(1,N);
x = rand(1,N);
t0 = clock; y1 = conv(h,x); t1=etime(clock,t0);
tc = tc+t1;
t0 = clock; y2 = ifft(fft(h,L).*fft(x,L));
t2=etime(clock,t0);
tf = tf+t2;
end
conv_time(N)=tc/100;
fft_time(N)=tf/100;
end
n = 1:150; subplot(1,1,1);
plot(n(25:150),conv_time(25:150),n(25:150),fft_time(2
5:150))
2.Phân tích phổ dùng FFT
Ứng dụng quan trọng nhất của FFT là tính thành phần phổ của tín hiệu lối
vào dù nó là thời gian rời rạc hay liên tục.
170
Chương trình Matlab tính phổ của tín hiệu gồm hai thành phần sin có tần
số 0.22 và 0.34.
%Phan tich pho dung FFT
clf;
N=input('chieu dai cua tin hieu=');
M=input('So diem tinh FFT=');
%fr=input('nhap tan so cua các tin hieu sin=');
n=0:N-1;
x=0.5*sin(2*pi*n*0.22)+sin(2*pi*n*0.34);
Fx=fft(x,M);
k=0:M-1;
stem(k,abs(Fx));grid;
xlabel('chi so tan so k');ylabel('Bien do');
title(['N=',num2str(N),',M=',num2str(M)]);
0 20 40 60 80 100 120 1400
1
2
3
4
5
6
7
8
chi so tan so k
Bie
n d
o
N=16,M=128
171
3. Dùng FFT để tính mật độ phổ công suất của tín hiệu nhiễm tạp âm
%Tinh mat do pho cong suat
t=0:0.001:0.25;
x=sin(2*pi*50*t)+sin(2*pi*120*t)+2*randn(size(t))+cos
(2*pi*220*t);
figure(1)
plot(t,x);
xlabel('Thoi gian (giay)');
ylabel('Bien do');
title('Tin hieu nhieu tamp am');
Y=fft(x,256);%tinh fft cua x
Pxx=Y.*conj(Y)/256;%Mat do pho cong suat
%Ve mat do pho cong suat
f=1000/256*(0:127);%Chi lay 128 mau dau tien vi fft
doi xung
figure(2)
plot(f,Pxx(1:128));
title('Mat do pho cong suat');
xlabel('Tan so Hz');
ylabel('Bien do');
figure(3)
plot(f(1:50),Pxx(1:50));
title('Mat do pho cong suat co thang chia nho hon');
xlabel('Tan so Hz');
ylabel('Bien do')
172
0 0.05 0.1 0.15 0.2 0.25-6
-4
-2
0
2
4
6
Thoi gian (giay)
Bie
n d
o
Tin hieu nhieu tamp am
0 50 100 150 200 250 300 350 400 450 5000
10
20
30
40
50
60
70Mat do pho cong suat
Tan so Hz
Bie
n d
o
173
0 20 40 60 80 100 120 140 160 180 2000
10
20
30
40
50
60
70Mat do pho cong suat co thang chia nho hon
Tan so Hz
Bie
n d
o
C. Bài tập
Bài 1. Cho tín hiệu x(n) = 1, 0, 1 tìm DFT 3 điểm của tín hiệu x(n)
Bài 2. Tính chập vòng:
x1(n) = 1, 3, 5, 8 và x2(n) = 1, 1, 2, 4
x3(n) = 2, 4, 0, -2 và x4(n) = 1, 0, 3, 0
a. Sử dụng phương pháp trực tiếp trong miền thời gian
b. Sử dụng phương pháp biến đổi Fourier rời rạc
Bài 3. Xác định DFT N điểm của những tín hiệu sau:
a. )()( nnx δ=
b. ( )Nnnnnx ≤≤−= 00 0)()( δ
c. ( )10)( −≤≤= Nnanx n
d.
−≤≤
−≤≤=
12/,0
12/0,1)(
NnN
Nnnx
e. 10,)( 0)/2( −≤≤= Nnenx nkNj π
f. nkN
nx 0
2cos)(
π=
174
g. nkN
nx 0
2sin)(
π=
h.
−≤≤=
)10(,0
,1)(
Nnoddn
evennnx
Bài 4. Cho một hệ thống tuyến tính và bất biến với đáp ứng xung đơn vị là:
h(n)=1,2
và tín hiệu đầu vào: x(n) = 1,2,4,6,3,5,4,4,3
a. Tìm đáp ứng y(n) bằng cách tính tích chập
b. Sử dụng phương pháp Overlap-save để tính y(n), với L = 3
c. Sử dụng phương pháp Overlap-Add để tính y(n), với L=3
d. So sánh kết quả và nhận xét
Bài 5. Cho tín hiệu x(n) = -1, 2, 5, -1, 1
a. Xác định DFT 5 điểm của tín hiệu x(n)
b. Xác định năng lượng của tín hiệu sử dụng định lý Parseval
175
THỜI GIAN (GIỜ) MÃ SỐ BÀI HỌC
XLS02-03
TÊN BÀI HỌC
THIẾT KẾ BỘ LỌC SỐ CÓ
ĐÁP ỨNG XUNG CHIỀU
DÀI HỮU HẠN FIR
LT: 6 TH:10 TS:16
MỤC TIÊU:
Sau khi học xong bài này, học viên có thể: Thực hiện được các phương pháp thiết kế bộ lọc số có đáp ứng xung có chiều dài hữu hạn FIR
NỘI DUNG:
A. Lý thuyết
1. Bộ lọc số FIR
Trong thực tế các bộ lọc số có đáp ứng tần số ở dạng:
±
=chandaio
thongdaioeH j
2
11)(
δ
δω
+ δ1 độ gợn ở dải thông
+ δ2 độ gợn ở dải chắn
+ ωp tần số giới hạn dải thông
+ ωs tần số giới hạn dải chắn
176
∆ω = ωs - ωp: dải quá độ.
Các tham số của bộ lọc còn được cho dưới dạng Decibel
pR là độ gợn của dải thông
sA là độ gợn của dải chắn
Chuyển đổi giữa hai đơn vị đo:
)0(01
1log20
1
110 ≈>
+
−−=
δ
δpR
)1(01
log201
210 >>>
+−=
δ
δsA
-Trong thực tế ta chỉ xác định được N hệ số của đáp ứng xung h(n). Vì vậy
khi các bộ lọc FIR được xây dụng dựa trên các bộ lọc số lí tưởng thì chúng ta
phải :
+ Hạn chế chiều dài của đáp ứng xung bằng cách dùng các hàm cửa sổ có
chiều dài N ( rectN(n) ).
+ Chuyển h(n) từ dạng không nhân quả sang dạng nhân quả bằng cách tịnh
tiến đi một số mẫu.
2. Các đặc trưng của bộ lọc FIR pha tuyến tính.
Coi bộ lọc FIR có đáp ứng tần số là H(ejω) có pha tuyến tính, do đó nếu biết
đáp ứng pha của nó ta sẽ biết tín hiệu qua bộ lọc với độ trễ nhất định đã biết.
177
Hệ thống FIR là hệ thống luôn luôn ổn định:
[ ] )(1
0
. ).().()()( ωθωωω jjN
n
njj eeAenhnhDTFTeH === ∑−
=
−
Bộ lọc FIR có pha tuyến tính nếu: ωαβωθ .)( −= (1)
a. Trường hợp β =0
Từ (1) ta có: ωαωθ .)( −=
Suy ra:
[ ] [ ]∑∑−
=
−
=
−− −==−==1
0
1
0
.. sin.cos).()(sincos).().()(N
n
N
n
njjjjj njnnhenhjeAeeAeH ωωαωαω ωωωαωω
Suy ra: ∑−
=
=1
.cos).(.cos).(N
n
j nnheA ωωα (2)
∑−
=
=1
.sin).(.sin).(N
n
j nnheA ωωα (3)
Từ (2) và (3) ta có:
∑
∑−
=
−
==1
0
1
0
.cos).(
.sin).(
.cos
.sinN
n
N
n
nnh
nnh
ω
ω
ωα
ωα
+ Nếu α = 0 thì:
∑
∑−
=
−
==1
0
1
0
.cos).(
.sin).(
.cos
.sinN
n
N
n
nnh
nnh
ω
ω
ωα
ωα = 0
.cos).()0(
.sin).(
1
1
1
0 =
+ ∑
∑−
=
−
=
N
n
N
n
nnhh
nnh
ω
ω
suy ra h(n) = 0 với mọi n ≠ 0 và giá trị h(0) tuỳ ý với n=0. Đây là trường hợp
h(n) tầm thường, không cho chúng ta kết quả gì.
+ Nếu α ≠ 0 thì
∑
∑−
=
−
==1
0
1
0
.cos).(
.sin).(
.cos
.sinN
n
N
n
nnh
nnh
ω
ω
ωα
ωα ta viết lại như sau:
∑∑−
=
−
=
=1
0
1
0
.sin).(..cos.cos).(..sinN
n
N
n
nnhnnh ωωαωωα Đưa sinα.ω , cosα.ω vào trong tổng
ta có:
178
[ ] 0cos.sinsin.cos).(1
0
=−∑−
=
N
n
nnnh αωωαωω Vậy ta có:
[ ] 0)(sin).(1
0
=−∑−
=
N
n
nnh ωα
Phương trình này có dạng của một chuỗi Fourier. Nghiệm của nó có dạng như
sau:
−−=
−=
)1()(2
1
nNhnh
Nα
Nhận xét:
- Với một giá trị của N, chỉ có duy nhất một giá trị α để đảm bảo θ(ω)=-
αω là tuyến tính.
- Với giá trị α này đáp ứng xung h(n) = h(N-1-n) là đối xứng.
- Nếu N lẻ thì α là một số nguyên và tâm đối xứng của h(n) là mẫu thứ
(N-1)/2. Ta có bộ lọc FIR loại 1.
- Nếu N chẵn thì α là một số không nguyên và tâm đối xứng của h(n)
nằm giữa mẫu thứ (N-1)/2 và N/2. Ta có bộ lọc FIR loại 2.
Đặc điểm quan trọng của bộ lọc số FIR loại 1 và 2 là tính đối xứng của
đáp ứng xung h(n) có rất nhiều ứng dụng quan trọng ta sẽ xét sau.
Ví dụ: N=6, 7
Cho bộ lọc số FIR pha tuyến tính ( )θ ω αω= − có N=7, h(0)=1, h(1)=2,
h(2)=3, h(3)=4. Hãy tìm α và vẽ h(n).
Giải:
1
32
Nα
−= =
h(n)=h(6-n) vậy h(0)=h(6)=1, h(1)=h(5)=2, h(2)=h(4)=3
179
-2 -1 0 1 2 3 4 5 6 7 8-1
0
1
2
3
4
5Dap ung xung cua bo loc pha tuyen tinh θ(ω)=-αω N=7
n
h(n
)
Ví dụ:
Cho bộ lọc số FIR pha tuyến tính ( ) ( )θ ω α ω= − có N=6, h(0)=1, h(1)=2,
h(2)=3. Hãy tìm α và vẽ h(n).
Giải:
1
2.52
Nα
−= =
h(n)=h(5-n) vậy h(0)=h(5)=1, h(1)=h(4)=2, h(2)=h(3)=3
-2 -1 0 1 2 3 4 5 6 7 8-1
0
1
2
3
4
5Dap ung xung cua bo loc pha tuyen tinh θ(ω)=-αω co N=6
n
h(n
)
b. Trường hợp β ≠ 0.
Chứng minh tương tự như trường hợp a ta có:
180
[ ] 0)(sin).(1
0
=−+∑−
=
N
n
nnh ωαβ và nghiệm duy nhất của nó như sau:
−−−=
±=
−=
)1()(2
2
1
nNhnh
N
πβ
α
Nhận xét:
- Với một giá trị của N, chỉ có duy nhất một giá trị α để đảm bảo θ(ω)=β
- αω là tuyến tính.
- Với giá trị α này đáp ứng xung h(n) = -h(N-1-n) là phản đối xứng.
- Nếu N lẻ thì α là một số nguyên và tâm phản đối xứng của h(n) là mẫu
thứ (N-1)/2. Ta có bộ lọc FIR loại 3.
- Nếu N chẵn thì α là một số không nguyên và tâm phản đối xứng của
h(n) nằm giữa mẫu thứ (N-1)/2 và N/2. Ta có bộ lọc FIR loại 4.
Đặc điểm quan trọng của bộ lọc số FIR loại 3 và 4 là tính phản đối xứng của
đáp ứng xung h(n) có rất nhiều ứng dụng quan trọng ta sẽ xét sau.
Ví dụ: N=6, 7.
Ví dụ: Cho bộ lọc số FIR pha tuyến tính ( )θ ω β αω= − , có N=7, h(0)=1,
h(1)=2, h(2)=3. Hãy tìm α và vẽ h(n).
Giải:
1
32
Nα
−= =
h(n)=-h(6-n)
Vậy h(6)=-h(0)=-1, h(5)=-h(1)=-2, h(4)=-h(2)=3, h(3)=-h(3)=0
181
-2 -1 0 1 2 3 4 5 6 7 8-5
-4
-3
-2
-1
0
1
2
3
4
5Dap ung xung cua bo loc pha tuyen tinh θ(ω)=β-αω N=7
n
h(n
)
Ví dụ:
Cho bộ lọc số FIR pha tuyến tính ( )θ ω β αω= − có N=6, h(0)=1, h(1)=2,
h(2)=3. Hãy tìm α và vẽ h(n).
Giải:
1
2.52
Nα
−= =
h(n)=-h(5-n) vậy h(5)=-h(0)=-1, h(4)=-h(1)=-2, h(3)=-h(2)=-3
-2 -1 0 1 2 3 4 5 6 7 8-5
-4
-3
-2
-1
0
1
2
3
4
5Dap ung xung cua bo loc pha tuyen tinh θ(ω)=β-αω N=6
n
h(n
)
3. Đáp ứng tần số của các bộ lọc FIR pha tuyến tính
3.1. Trường hợp đáp ứng xung đối xứng, N lẻ (Bộ lòc FIR loại 1)
Ta biết rằng:
182
1
0
( ) ( ) ( )N
j j n j j
n
H e h n e A e eω ω ω αω−
− −
=
= =∑
Áp dụng tính đối xứng của h(n) ta chia tổng này ra làm 3 phần như sau:
11 1 12 ( )
2
101
2
1( ) ( ) ( ) ( )
2
NN Nj
j j n j n
Nnn
NH e h n e h e h n e
ωω ω ω
−− − −−
− −
−== +
−= + +∑ ∑
Đổi biến số ở thành phần thứ 3: n=N-1-m
Ta có:
11 1 02 ( )
( 1 )2
101
2
1( ) ( ) ( ) ( 1 )
2
NN
jj j n j N m
Nnm
NH e h n e h e h N m e
ωω ω ω
−− −
−− − − −
−== +
−= + + − −∑ ∑
1 11 112 2( )
( 1
0
)2
0
1( ) ( ) ( 1 )
2
N NN
jj n j N n
n n
Nh n e h e h N m e
ωω ω
− −− −−
−−
= =
− − −−= + + − −∑ ∑
Áp dụng h(n)=h(N-1-n) và biến đổi ta thu được kết quả:
112
2
0
( ) [ ( ) ( )]
NN
jj
n
H e a n cos n eω
ω ω
−−
−
=
= ∑
ở đây:
1(0) ( 0)
2
1( ) 2 ( )
2
Na h
Na n h n
−= −
−= −
với 12
n1N
≤ ≤−
So sánh với biểu thức: ( ) ( )j j jH e A e eω ω αω−=
Ta có:
1
2
0
( ) ( ) ( )
1
2
N
j
n
A e a n cos n
N
ω ω
α
−
=
=
−=
∑
Ví du:
183
Cho đáp ứng xung h(n) của bộ lọc số FIR pha tuyến tính như hình sau:
-1 0 1 2 3 4 5 6 7 8-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
2.5
3
n
h(n
)
Hãy tìm a(n), ( )jA e ω và | ( ) |jH e ω .
Giải:
N=5, N-1=4
Vậy: a(0)=h(2-0)=h(2)=2
a(1)=2h(2-1)=2h(1)=2
a(2)=2h(2-2)=2h(0)=-2;
Đồ thị của a(n) cho trên hình sau:
-1 0 1 2 3 4 5-3
-2
-1
0
1
2
3
n
a(n
)
184
2
0
( ) ( ) ( ) (0) 0 (1) ( ) (2) (2 ) 2 2 ( ) 2 (2 )j
n
A e a n cos n a cos a cos a cos cos cosω ω ω ω ω ω=
= = + + = + −∑
| ( ) | | ( ) |j jH e A eω ω=
3.2. Trường hợp đáp ứng xung đối xứng N chẵn (Bộ lọc FIR loại 2)
Áp dụng tính đối xứng của h(n) là h(n)=h(N-1-n)
Ta có:
12
2
1
1( ) ( ) [ ( )]
2
NN
jj
n
H e b n cos n eω
ω ω−
−
=
= −∑
ở đây
( ) 2 ( )2
Nb n h n= − với 1
2
Nn≤ ≤
So sánh với biểu thức ( ) ( )j j jH e A e eω ω αω−=
Ta có:
2
1
1( ) ( ) [ ( )]
2
N
j
n
A e b n cos nω ω=
= −∑
1
2
Nα
−=
Chú ý rằng với ω π= thì:
1 1
[ ( )] [ ( )] [ (2 1)]2 2 2
cos n cos n cos nπ
ω π− = − = −
(2n-1) lẻ với mọi n, vậy [ (2 1)] 02
cos nπ
− = với mọi n
Như vậy, ta có thể nói rằng tại ω π= thì ( ) 0jA e ω = với bất kỳ b(n) nào (hoặc với
bất kỳ h(n) nào), từ đây rút ra kết luận: các bộ lọc loại này không thể sử dụng để
185
tổng hợp các bộ lọc có đáp ứng tần số khác không tại ω π= (ví dụ như bộ lọc
thông cao)
3.3. Trường hợp đáp ứng xung phản đối xứng, N lẻ (Bộ lọc FIR loại 3)
Với cách biến đổi tương tự như ở mục 3.2 và 3.3 ta có:
112 ( )
2 2
1
( ) [ ( ) ( )]
NN
jj
n
H e c n sin n eπ
ωω ω
−−
−
=
= ∑
ở đây 1
( ) 2 ( )2
Nc n h n
−= −
So sánh với biểu thức: ( )( ) ( )j j jH e A e eω ω β αω−=
Ta có:
1
2
1
( ) ( ) ( )
N
j
n
A e c n sin nω ω
−
=
= ∑
1
2
Nα
−=
2
πβ =
Nhận xét:
Với 0ω = và ω π= thì:
0 0
( ) 0
sin n sin n
sin n sin n
ω
ω π
= =
= = với mọi n
Như vậy ta có thể nói rằng ( ) 0jA e ω = tại 0ω = và ω π= với bất kỳ c(n) nào
(hoặc bất kỳ h(n) nào), từ đây ta thấy rằng các bộ lọc loại này không thể dùng để
tổng hợp các loại bộ lọc có đáp ứng tần số khác không tại 0ω = và ω π= (ví dụ
như bộ lọc thông thấp và thông cao).
3.4. Trường hợp đáp ứng xung phản đối xứng, N chẵn ( Bộ lọc FIR loại 4)
Áp dụng tính chất phản đối xứng của h(n): h(n)=-h(N-1-n)
Ta có:
186
12 ( )
2 2
1
1( ) ( ) [ ( )]
2
NN
jj
n
H e d n sin n eπ
ωω ω
−−
=
= −∑
ở đây:
( ) 2 ( )2
Nd n h n= − với 1
2
Nn≤ ≤
So sánh với biểu thức: ( )( ) ( )j j jH e A e eω ω β αω−= ta có:
2
1
1( ) ( ) [ ( ]
2
N
j
n
A e d n sin nω ω=
= −∑
1
2
Nα
−=
2
πβ =
Nhận xét:
Với 0ω = thì: 1
[ ( )] 02
sin nω − = với mọi n. Vậy ta có thể nói rằng ( ) 0jA e ω = tại
0ω = với bất kỳ d(n) nào (hoặc bất kỳ h(n) nào) và từ đây ta thấy rằng bộ lọc
loại này không thể dùng để tổng hợp các loại bộ lọc có đáp ứng tần số khác
không tại 0ω = (ví dụ như bộ lọc thông thấp)
4. Tổng hợp bộ lọc FIR có pha tuyến tính sử dụng phương pháp cửa
sổ.
Việc nghiên cứu các phương pháp tổng hợp bộ lọc FIR ở phần này chúng
ta chỉ dừng lại ở việc tính toán các hệ số của h(n). Các hệ số của h(n) được
tính toán sao cho thoả mãn các chỉ tiêu kĩ thuật đã cho. Bộ lọc FIR có ưu
điểm hơn bộ lọc IIR là nó luôn ổn định, chúng ta sẽ xét các bộ lọc FIR có pha
tuyến tính (Đáp ứng xung h(n) đối xứng hoặc phản đối xứng). Các hệ thống
thực hiện được về mặt vật lý là các hệ thống nhân quả, ổn định.
Có 3 phương pháp chính để tổng hợp bộ lọc số FIR là:
- Phương pháp cửa sổ.
- Phương pháp lấy mẫu tần số.
187
- Phương pháp lặp.
Nhận xét.
Ta đã biết đáp ứng tần số của bộ lọc FIR nhân quả bậc N là:
∑−
=
−=1
0
).()(N
n
njj enheH ωω ; ∫−
=π
π
ωω ωπ
deeHnh njj .).(2
1)(
+ Gọi h(n) là đáp ứng xung của bộ lọc số lí tưởng, vì vậy h(n) có chiều dài
vô hạn nên không thể thực hiện được. L[h(n) ] = [-∞; +∞]
+ h(n) không nhân quả, vì thế không thể thực hiện được.
+ Để cho đáp ứng xung của bộ lọc số lí tưởng trở thành đáp ứng xung của
bộ lọc FIR thì ta phải làm cho h(n) nhân quả và hạn chế chiều dài của nó.
+ Để hạn chế chiều dài của h(n) ta sẽ sử dụng hàm cửa sổ, hay được gọi là
cửa sổ Nnw )( là cửa sổ nhân quả có chiều dài là N.
=
−≤≤≠=
laiconn
Nnnw N
0
100)(
4.1. Các bước chính. Phương pháp cửa sổ được thực hiện cho bộ
lọc số loại 1.
- Bước 1: Chọn 4 chỉ tiêu kĩ thuật của bộ lọc số thực tế: ωp ,ωs ,δ1 ,δ2. Để
tìm ωc, trong chương trình cho ωc .
- Bước 2: Chọn dạng cửa sổ Nnw )( và chiều dài cửa sổ N, trong miền N
cửa sổ có tâm đối xứng tại 2
1−=
Nn , có pha tuyến tính là
ωωθ2
1)(
−−=
N.
- Bước 3: Chọn loại bộ lọc số lí tưởng có đáp ứng xung là h(n), h(n) có
tâm đối xứng tại 2
1−=
Nn ,có pha tuyến tính là ωωθ
2
1)(
−−=
N. ( Thay
2
1−−=
Nnn ).
- Bước 4: Nhân cửa sổ Nnw )( với h(n) thu được đáp ứng xung thực tế của
bộ lọc FIR loại 1.
hd(n)= Nnw )( .h(n)
188
L[ Nnw )( ] = N
L[h(n) ] =∞
L[hd(n) ]= N
- Bước 5: Sau khi có hd(n) thử lại trong miền tần số xem đã đạt chỉ tiêu
kĩ thuật chưa, nếu chưa đạt làm lại với N lớn hơn.
4.2. Một số cửa sổ điển hình.
Cửa sổ chữ nhật.
Trong miền n cửa sổ chữ nhật được định nghĩa như sau:
=−≤≤
= )(0
101)( nrect
laiconn
Nnnw NR
Ta thấy cửa sổ chữ nhật chính là dãy chữ nhật rectN(n).
Cửa sổ này 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ổ ( )R Nw n là đối xứng, tâm đối xứng nằm tại n=(N-1)/2 (N lẻ) vậy trong
miền tần số ( )jRW e ω sẽ có pha tuyến tính là
1( )
2
Nθ ω ω
−= − . Khi ( )jH e ω và
( )jRW e ω đểu có cùng pha tuyến tính là
1( )
2
Nθ ω ω
−= (FIR loại 1) thì trong
miền n, h(n) và ( )R Nw n sẽ có cùng tâm đối xứng tại 1
2
Nn
−= (N lẻ). Như vậy
phiên bản chiều dài hữu hạn của h(n) sẽ cho bởi biểu thức sau:
( ) ( ) ( )d R Nh n h n w n=
Tức là:
( )
(0
)0 1
d
h n
nh
nn
N≤ ≤ −=
≠
Hiện tượng Gibbs: Ta biết rằng để hạn chế chiều dài của h(n) của bộ lọc lý
tưởng, chúng ta sử dụng cửa sổ w(n)N. Đối với các bộ lọc số lý tưởng, trong dải
thông ( ) 1jA e ω = , trong dải chắn ( ) 0jA e ω = và tại tần số cắt cω thì ( )jA e ω chuyển
đột ngột từ 1 về 0 hoặc từ 0 về 1. Nhưng do tích chập trong miền tần số sẽ gây
dao động ở dải thông và dải chắn xung quanh cω , từ đây dẫn đến hiện tượng
Gibbs
189
Định nghĩa: Các dao động ở dải thông và dải chắn xung quanh trục chuyển biến
đột ngột cω do việc hạn chế chiều dài của đáp ứng xung h(n) của bộ lọc số lý
tưởng bằng cửa sổ sinh ra được gọi là hiện tượng Gibbs.
Trong thực tế ( )jdH e ω cũng thường được đánh giá theo thang logarith của các
biên độ theo đơn vị dB như sau:
10( ) 20 | |j
j dd j
d
H eG e log
H e
ωω
ω= dB
10 0
( )20 | |
( )
jd
jd
A elog
A e
ω
=
Cửa sổ Hanning và Hamming.
Trong miền n cửa sổ Hanning và Hamming được định nghĩa như sau:
−≤≤
−−−
=laiconn
NnnNnwH
0
101
2cos)1(
)(π
αα
Nếu α = 0.5 thì ta có cửa sổ Hanning:
−≤≤
−−
=laiconn
NnnNnwHan
0
101
2cos5.05.0
)(π
Nếu α = 0.54 thì ta có cửa sổ Hanning:
−≤≤
−−
=laiconn
NnnNnwHam
0
101
2cos46.054.0
)(π
Đồ thị của các cửa sổ này như sau:
Ví dụ với N = 9
WHan(n)9và wHam(n)9 đối xứng tại n = 4
0 4 9 n
1
WHan(n)
0.5
0.85
0.15
190
Cửa sổ tam giác, Blackman
Trong miền n, cửa sổ Blackman được định nghĩa như sau:
−≤≤
−+
−−
=
otherwise
MnM
n
M
n
nw
,0
10,1
4cos08.0
1
2cos5.042.0
)(
ππ
Ví dụ: Thiết kế bộ lọc thông thấp với các chỉ tiêu kĩ thuật, ωc = π/2, N = 9
dùng cửa sổ Hanning. Vẽ sơ đồ bộ lọc số:
- Cửa sổ Hanning wHan(n) có N = 9 là cửa sổ nhân quả có tâm đối xứng
tại 42
1=
−N.
- Chọn bộ lọc số lí tưởng thông thấp cũng có tâm đối xứng tại 42
1=
−N
và tần số cắt ωc =π/2.
- Vậy ta có:
)4(
2
)4sin(
2
1
)2
1(
)2
1(sin
)(
−
−=
−−
−−
=
n
n
Nn
Nn
nh
c
cc
πω
ω
π
ω
- Do đó đáp ứng xung của bộ lọc số thực tế là:
9)().()( nwnhnh Hand =
Minh hoạ bằng đồ thị ta có:
0 4 9 n
1
WHam(n)
0.54 0.08 0.08
191
Vậy ta có:
)7(05.0
)5(85.0
)4(2
1)3(
85.0)1(
05.0)( −−−+−+−+−−= nnnnnnh δ
πδ
πδδ
πδ
π
192
Từ đây ta có sơ đồ mạch như sau:
B. Thực hành
Thiết kế bộ lọc số theo phương pháp cửa sổ, cần sử dụng hàm tạo đáp ứng xung
lý tưởng. Để tiện sử dụng, ta viết hàm tạo đáp ứng xung của bộ lọc thông thấp lý
tưởng:
function hd = ideal_lp(wc, M)
% Ideal LowPass filter computation
% ----------------------------------------
% [hd] = ideal_lp(wc, M)
% hd = ideal impulse response between 0 to M-1
% wc = cutoff frequency in radians
% M = length of the ideal filter
D
D
D
D
D
D
D
+
+
+
+
+
y(n) x(n)
π
85.0
85.0
π
05.0−
05.0
2
1
π
85.0
π
05.0−
05.0
193
%
alpha = (M-1)/2;
n = [0:1:(M-1)]
M = n – alpha + eps; % add smallest number to avoid
divide by zero
hd = sin(wc*M) ./ (pi*M);
Để vẽ hình ảnh bộ lọc số trong miền tần số, hàm sau cho độ lớn của đáp ứng tần
số dưới dạng tuyệt đối trong thang dB, đáp ứng pha trễ nhóm.
function [db, mag, pha, grd, w] = freqz_m(b, a)
% Modified version of freqz sunroutine
% ---------------------------------------------
% [db,mag,pha,grd,w] = freqz_m(b, a)
% db = Relative magnitude in dB computed over 0 to
pi radians
% mag = absolute magnitude computed over 0 to pi
radians
% pha = Phase response in radians over 0 to pi
radians
% grd = group delay over 0 to pi radians
% w = 501 frequency samples between 0 to pi radians
% b = numerator polynimial of H(z) (for FIR: b=h)
% a = denominator polynomial of H(z) (for FIR:
a=[1])
%
[H,w] = freqz(b,a,1000,’whole’);
H = (H(1:1:501))’;
w = (w(1:1:501))’;
mag = abs(H);
194
db = 20*log10((mag+eps)/max(mag));
pha = angle(H);
grd = grpdelay(b,a,w);
% End of function
1.Thiết kế các mạch lọc số FIR dùng các hàm cửa sổ
Hộp công cụ của Matlab có 5 hàm cửa sổ:
W=blackman(L)
W=hamming(L)
W=hanning(L)
W=chebwin(L,Rs)
W=kaiser(L,beta)
Các hàm cửa sổ trên phát ra vector w của các hệ số của cửa sổ có chiều dài lẻ L.
Thông số beta trong hàm cửa sổ Kaiser có thể thay đổi được. Trong mục này,
chúng ta sẽ sử dụng các hàm cửa sổ trên để thiết kế các loại mạch lọc FIR theo
quy định cho trước.
Ví dụ: Thiết kế mạch lọc thông thấp dùng hàm cửa sổ Hamming với các quy
định sau:
Ωp=0.2π, ωs=0.3 π, Rp=0.25dB, As=50dB
Chương trình sau minh họa thủ tục thiết kế mạch lọc thông thấp dùng hàm cửa
sổ Hamming với các quy định trên.
%Thiet ke mach loc thong thap
wp=0.2*pi;ws=0.3*pi;
tr_width=ws-wp;
M=ceil(6.6*pi/tr_width)+1;
n=[0:1:M-1];
wc=(ws+wp)/2;
195
hd=ideal_lp(wc,M);
w_ham=(hamming(M))';
h=hd.*w_ham;
[db,mag,pha,grd,w]=freqz_m(h,[1]);
delta_w=2*pi/1000;
Rp=-(min(db(1:1:wp/delta_w+1)));
As=-round(max(db(ws/delta_w+1:1:501)));
subplot(2,2,1);stem(n,hd);title('Dap ung xung ly
tuong');
axis([0 M-1 -0.1 0.3]);
xlabel('n');ylabel('hd[n]');
subplot(2,2,2);stem(n,w_ham);title('Cua so hamming');
axis([0 M-1 0 1.1]);
xlabel('n');ylabel('w(n)');
subp lot(2,2,3);stem(n,h);title('Dap ung xung thiet
ke');
axis([0 M-1 -0.1 0.3]);
xlabel('n');ylabel('h(n)');
subplot(2,2,4);plot(w/pi,db);title('Dap ung bien do,
dB');grid;
axis([0 1 -100 10]);
xlabel('Tan so, w/pi');ylabel('Decibels');
196
0 20 40 60-0.1
0
0.1
0.2
0.3Dap ung xung ly tuong
n
hd[n
]
0 20 40 600
0.5
1
Cua so hamming
n
w(n
)
0 20 40 60-0.1
0
0.1
0.2
0.3Dap ung xung thiet ke
n
h(n
)
0 0.5 1-100
-50
0
Dap ung bien do, dB
Tan so, w/pi
Decib
els
Ví dụ: Cùng yêu cầu như ví dụ trên, thiết kế bộ lọc thông thấp sử dụng cửa sổ
Kaiser
%Lowpass filter design - Kaiser window
wp = 0.2*pi; ws = 0.3*pi; As = 50;
tr_width = ws - wp;
M = ceil((As-7.95)/(14.36*tr_width/(2*pi))+1) + 1
n=[0:1:M-1];
beta = 0.1102*(As-8.7)
wc = (ws+wp)/2;
hd = ideal_lp(wc,M);
w_kai = (kaiser(M,beta))';
h = hd .* w_kai;
[db,mag,pha,grd,w] = freqz_m(h,[1]);
delta_w = 2*pi/1000;
As = - round(max(db(ws/delta_w+1:1:501))) % Min
197
Stopband Attenuation
% Plots
subplot(1,1,1)
subplot(2,2,1); stem( n,hd); title('Ideal Impulse
Response')
axis([0 M-1 -0.1 0.3]); xlabel('n'); ylabel('hd(n)')
subplot(2,2,2); stem(n,w_kai);title('Kaiser Window')
axis([0 M-1 0 1.1]); xlabel('n'); ylabel('w(n)')
subplot(2,2,3); stem(n,h);title('Actual Impulse
Response')
axis([0 M-1 -0.1 0.3]); xlabel('n'); ylabel('h(n)')
subplot(2,2,4);plot(w/pi,db);title('Magnitude
Response in dB');grid
axis([0 1 - 100 10]); xlabel('frequency in pi
units'); ylabel('Decibels')
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1])
set(gca,'YTickMode','manual','YTick',[-50,0])
set(gca,'YTickLabelMode','manual','YTickLabels',['50'
;' 0'])
198
0 20 40 60-0.1
0
0.1
0.2
0.3Ideal Impulse Response
n
hd(n
)
0 20 40 600
0.5
1
Kaiser Window
n
w(n
)
0 20 40 60-0.1
0
0.1
0.2
0.3Actual Impulse Response
n
h(n
)
0 0.20.3 1
50
0
Magnitude Response in dB
frequency in pi units
Decib
els
2.Thiết kế mạch lọc số FIR thông dải và chặn dải
Ví du: Thiết kế bộ lọc thông dải với yêu cầu sau:
Biên dải chặn thấp: 1 0.2sω π= , 60sA dB=
Biên dải thông thấp 1 0.35pω π= , 1pR dB=
Biên dải thông cao 2 0.65pω π= , 1pR dB=
Biên dải chặn cao 2 0.8sω π= , 60sA dB=
Giải:
Có hai giải chuyển tiếp 1 1 1p sω ω ω∆ −@ và 2 2 2s pω ω ω∆ −@ . Hai dải này phải có
cùng độ rộng trong thiết kế theo phương pháp cửa sổ. Đối với ví dụ này, chúng
ta có thể thiết kế bằng cửa sổ Kaiser hoặc Blackman. Ta cần một tìm đáp ứng
xung của bộ lọc thông thấp. Đáp ứng xung này có thể thu được từ hai bộ lọc
thông thấp có cùng đáp ứng pha.
%Bandpass filter design - Blackman window
ws1 = 0.2*pi; wp1 = 0.35*pi;
199
wp2 = 0.65*pi; ws2 = 0.8*pi;
As = 60;
tr_width = min((wp1-ws1),(ws2-wp2))
M = ceil(11*pi/tr_width) + 1 %;M=68
n=[0:1:M-1];
wc1 = (ws1+wp1)/2; wc2 = (wp2+ws2)/2;
hd = ideal_lp(wc2,M) - ideal_lp(wc1,M);
w_bla = (blackman(M))';
h = hd .* w_bla;
[db,mag,pha,grd,w] = freqz_m(h,[1]);
delta_w = 2*pi/1000;
Rp = -min(db(wp1/delta_w+1:1:wp2/de lta_w)) % Actua;
Passband Ripple
As = - round(max(db(ws2/delta_w+1:1:501))) % Min
Stopband Attenuation
% plots
subplot(1,1,1);
subplot(2,2,1); stem(n,hd); title('Ideal Impulse
Response')
axis([0 M-1 -0.4 0.5]); xlabel('n'); ylabel('hd(n)')
subplot(2,2,2); s tem(n,w_bla);title('Blackman
Window')
axis([0 M-1 0 1.1]); xlabel('n'); ylabel('w(n)')
subplot(2,2,3); stem(n,h);title('Actual Impulse
Response')
axis([0 M-1 -0.4 0.5]); xlabel('n'); ylabel('h(n)')
subplot(2,2,4);plot(w/pi,db);%set(gca,'FontName','cmr
12');
200
title('Magnitude Response in dB');grid;
xlabel('frequency in pi units'); ylabel('Decibels')
axis([0 1 -150 10]);
set(gca,'XTickMode','manual','XTick',[0,0.2,0.35,0.65
,0.8,1])
set(gca,'YTickMode','manual','YTick',[-60,0])
set(gca,'YTickLabelMode','manual','YTickLabels',['60'
;' 0'])
0 20 40 60-0.4
-0.2
0
0.2
0.4
Ideal Impulse Response
n
hd(n
)
0 20 40 600
0.5
1
Blackman Window
n
w(n
)
0 20 40 60-0.4
-0.2
0
0.2
0.4
Actual Impulse Response
n
h(n
)
0 0.2 0.35 0.65 0.8 1
60
0
Magnitude Response in dB
frequency in pi units
Decib
els
Ví dụ:
Đáp ứng tần số của một bộ lọc chặn dải lý tưởng được cho bởi:
| / 3
( ) / 3 | / 3
/ 3 |
1, 0 |
0, | 2
1, 2 |
je eH ω
ω π
π ω π
π ω π
≤
≤ ≤
≤
=
<
<
201
Sử dụng cửa sổ Kaiser, thiết kế bộ lọc chặn dải chiều dài 45 với độ suy giảm dải
chặn 60dB.
Giải:
Trong yêu cầu này, dải chuyển tiếp không cho, nó sẽ được xác định bởi độ dài
M=45 và tham số β của cửa sổ Kaiser. Ta có thể xác định β từ As:
0.1102 ( 8.7)sx Aβ = −
Đáp ứng xung của bộ lọc chặn dải lý tưởng có thể xác định từ đáp ứng xung của
bộ lọc thông thấp lý tưởng.
% Bandstop filter design - Kaiser window
M = 45; As = 60; n=[0:1:M-1];
beta = 0.1102*(As-8.7)
w_kai = (kaiser(M,beta))';
wc1 = pi/3; wc2 = 2*pi/3;
hd = ideal_lp(wc1,M) + ideal_lp(pi,M) -
ideal_lp(wc2,M);
h = hd .* w_kai;
[db,mag,pha,grd,w] = freqz_m(h,[1]);
%
subplot(1,1,1)
subplot(2,1,2);plot(w/pi,db);
title('Magnitude Response in dB');grid;
xlabel('frequency in pi units'); ylabel('Decibels')
axis([0 1 -80 10]);
set(gca,'XTickMode','manual','XTick',[0;0.333;0.667;1
])
set(gca,'XTickLabelMode','manual',...
'XTickLabels',[' 0 ';'1/3';'2/3';' 1 '])
set(gca,'YTickMode','manual','YTick',[-60,0])
202
set(gca,'YTickLabelMode','manual','YTickLabels',['60'
;' 0'])
%pause;
print -deps2 ex071101.eps
%
M = 45; As = 60; n=[0:1:M-1];
beta = 0.1102*(As-8.7)+.3
w_kai = (kaiser(M,beta))';
wc1 = pi/3; wc2 = 2*pi/3;
hd = ideal_lp(wc1,M) + ideal_lp(pi,M) -
ideal_lp(wc2,M);
h = hd .* w_kai;
[db,mag,pha,grd,w] = freqz_m(h,[1]);
%
% plots
subplot(1,1,1);
subplot(2,2,1); stem(n,hd); title('Ideal Impulse
Response')
axis([-1 M -0.2 0.8]); xlabel('n'); ylabel('hd(n)')
subplot(2,2,2); stem(n,w_kai);title('Kaiser Window')
axis([-1 M 0 1.1]); xlabel('n'); ylabel('w(n)')
subplot(2,2,3); stem(n,h);title('Actual Impulse
Response')
axis([-1 M -0.2 0.8]); xlabel('n'); ylabel('h(n)')
subplot(2,2,4);plot(w/pi,db);
title('Magnitude Response in dB');grid;
xlabel('frequency in pi units'); ylabel('Decibels')
203
axis([0 1 -80 10]);
set(gca,'XTickMode','manual','XTick',[0;0.333;0.667;1
])
set(gca,'XTickLabelMode','manual',...
'XTickLabels',[' 0 ';'1/3';'2/3';' 1 '])
set(gca,'YTickMode','manual','YTick',[-60,0])
set(gca,'YTickLabelMode','manual','YTickLabels',['60'
;' 0'])
0 10 20 30 40-0.2
0
0.2
0.4
0.6
Ideal Impulse Response
n
hd(n
)
0 10 20 30 400
0.5
1
Kaiser Window
n
w(n
)
0 10 20 30 40-0.2
0
0.2
0.4
0.6
Actual Impulse Response
n
h(n
)
0 1/3 2/3 1
60
0
Magnitude Response in dB
frequency in pi units
Decib
els
Thiết kế bộ lọc số với FDA tool (Filter Design and Analysis tool)
Phần mềm Matlab cung cấp một công cụ dành riêng cho việc thiết kế các bộ lọc
số là FDA tool.
Các bước thiết kế bộ lọc số bằng FDA tool:
Bước 1: khởi động FDA tool: từ dấu mời lệnh nhập: fdatool
Cửa sổ FDA tool xuất hiện:
204
Các thông tin tổng quan về bộ lọc xuất hiện bên góc trên bên trái. Các thông số
của bộ lọc mô tả bên góc phải.
Cửa sổ cho phép lựa chọn phương pháp thiết kế.
205
Cửa sổ lựa chọn độ lớn bộ lọc
Ví dụ: thiết kế bộ lọc FIR thông thấp dùng cửa sổ Kaiser có các thông số được
xác định như sau:
C. Bài tập
1.Cho bộ lọc FIR loại 1 với N=7 có đáp ứng xung h(n) được xác định h(0)=1,
h(1)=2, h(2)=3, h(3)= 4.
Tìm α và đáp ứng xung h(n)
2.Cho bộ lọc FIR loại 2 với N=6 có đáp ứng xung h(n) được xác định h(0)=1,
h(1)=2, h(2)=3.
Tìm α và đáp ứng xung h(n).
3.Cho bộ lọc FIR loại 3 với N=7 có đáp ứng xung h(n) được xác định h(0)=1,
h(1)=2, h(2)=3.
206
Tìm α và đáp ứng xung h(n).
4.Cho bộ lọc FIR loại 4 với N=6 có đáp ứng xung h(n) được xác định h(0)=1,
h(1)=2, h(2)=3.
Tìm α và đáp ứng xung h(n).
5.Hãy thiết kế bộ lọc số FIR thông cao pha tuyến tính, dùng cửa sổ tam giác
Barlett với N = 9, 4
c
πω =
6.Hãy thiết kế bộ lọc số FIR thông cao pha tuyến tính, dùng cửa sổ chữ nhật với
N = 9,
4c
πω =
7.Hãy thiết kế bộ lọc số FIR thông dải pha tuyến tính, dùng cửa sổ chữ nhật với
N = 9, 14
c
πω = , 2
3c
πω =
8 .Hãy thiết kế bộ lọc số FIR chắn dải pha tuyến tính, dùng cửa sổ tam giác
Barlett với N = 9, 14
c
πω = , 2
3c
πω =
207
THỜI GIAN (GIỜ) MÃ SỐ BÀI
HỌC
XLS01-08
TÊN BÀI HỌC
THIẾT KẾ BỘ LỌC SỐ CÓ
ĐÁP ỨNG XUNG CHIỀU
DÀI VÔ HẠN IIR
LT:
6
TH:10 TS:16
MỤC TIÊU:
Sau khi học xong bài này, học viên có thể: Thực hiện được các phương pháp thiết kế bộ lọc số có đáp ứng xung có chiều dài vô hạn IIR
NỘI DUNG:
A. Lý thuyết
Cũng giống như bộ lọc FIR, người ta thường dùng một số phương pháp tổng
hợp bộ lọc IIR có đáp ứng xung có chiều dài vô hạn (IIR: Infinite Impulse
Response). Phương pháp sẽ được trình bày ở modul này là biến đổi từ bộ lọc
tương tự sang bộ lọc số theo các phép ánh xạ. Việc tổng hợp bộ lọc tương tự coi
như đã biết trong các kiến thức về Cơ sở kỹ thuật Điện - Điện tử, khi tổng hợp
bộ lọc số IIR ta sẽ bắt đầu việc tổng hợp bộ lọc trong miền tương tự tức là xác
định hàm truyền đạt Ha(s) và sau đó biến đổi sang miền số.
Có 3 phương pháp chính để chuyển từ bộ lọc tương tự sang bộ lọc số tương
đương
- Phương pháp bất biến xung
- Phương pháp biển đổi song tuyến
- Phương pháp tương đương vi phân
Với điều kiện đã tổng hợp được Ha(s)
Để tìm được hàm truyền đạt tương tự Ha(s) , người ta có 3 phương pháp tổng
hợp là:
- Butterworth
- Chebyshev
- Elip hay Cauer
208
Sau đây chúng ta sẽ lần lượt nghiên cứu các nội dung chính trên.
1.Cơ sở tổng hợp bộ lọc số IIR
Ta có thể mô tả bộ lọc tương tự bằng hàm hệ thống của nó:
ở đây αk và βk là các hệ số lọc, hoặc bằng đáp ứng xung liên quan với
Ha(s) thông qua biến đổi Laplace:
Bộ lọc tương tự có hàm hệ thống hữu tỷ Ha(s) cũng có thể được mô tả bằng
phương trình vi phân tuyến tính hệ số hằng:
ở đây x(t) là tín hiệu vào và y(t ) tín hiệu ra của bộ lọc.
Một trong ba đặc trưng tương đương của bộ lọc tương tự sẽ tạo ra phương pháp
biến đổi bộ lọc sang miền số khác nhau như sẽ được xét dưới đây. Ta biết rằng,
hệ thống tuyến tính bất biến tương tự với hàm hệ thống Ha(s ) là ổn định, nếu tất
cả các điểm cực phân bố toàn bộ bên trái của mặt phẳng s (s: là biến số phức, s =
σ+jΩ ). Do đó, nếu phép biến đổi là có kết quả, nó sẽ có các tính chất sau:
1. Trục jΩ trong mặt phẳng s sẽ ánh xạ lên đường tròn đơn vị trong mặt phẳng
z. Như vậy sẽ có quan hệ trực tiếp giữa hai biến tần số trong hai miền.
2. Nửa trái của mặt phẳng s sẽ ánh xạ vào phía trong đường tròn đơn vị thuộc
mặt phẳng z. Như vậy một bộ lọc tương tự ổn định sẽ được biến đổi thành bộ lọc
số ổn định.
Ta lưu ý rằng thể hiện vật lý bộ lọc IIR ổn định không thể có pha tuyến tính vì
nếu hàm hệ thống của bộ lọc pha tuyến tính phải thoả mãn điều kiện sau:
209
ở đây z-N biểu diễn độ trễ N đơn vị thời gian, bộ lọc sẽ có điểm cực ánh xạ
gương ngoài đường tròn đơn vị ứng với mỗi điểm cực trong đường tròn này. Vì
thế bộ lọc sẽ là không ổn định.
Do đó, một bộ lọc IIR nhân quả và ổn định không thể có pha tuyến tính.
Đặc điểm của bộ lọc IIR là chiều dài đáp ứng xung L [h(n)] = ∞
2.Phương pháp bất biến xung
Trong phương pháp bất biến xung, mục đích của ta là tổng hợp bộ lọc IIR có
đáp ứng xung đơn vị h(n) là phiên bản được lấy mẫu của đáp ứng xung bộ lọc
tương tự. Nghĩa là:
ở đây T là khoảng lấy mẫu.
Được biểu diễn trong phạm vi của việc lấy mẫu đáp ứng xung một bộ lọc tương
tự với đáp ứng tần sốHa (F), bộ lọc số với đáp ứng xung đơn vị h(n ) ≡ha(nT) có
đáp ứng tần số:
Hoặc:
Rõ ràng, bộ lọc số với đáp ứng tần số H(ejω)sẽ có đặc tuyến đáp ứng tần số của
bộ lọc
tương tự tương ứng nếu khoảng lấy mẫu (hiện tượng alias) T được chọn đủ nhỏ
để tránh hoàn toàn hoặc tối thiểu hoá ảnh hưởng của lẫn mẫu. Điều rõ ràng là
phương pháp bất biến xung không phù hợp đối với bộ lọc thông cao vì sự lẫn
phổ khi xử lý lấy mẫu.
(1)
210
Muốn tìm hiểu sự ánh xạ giữa mặt phẳng z và mặt phẳng s được biểu thị bởi quá
trình lấy mẫu, ta dựa vào công thức tổng quát hoá (1) để có mối liên hệ giữa
biến đổi z của h(n) và biến đổi Laplace của ha(t) . Mối quan hệ này là:
ở đây
Chú ý rằng, khi s=jΩ , (2) trở thành (1), ở đây thừa số j trong Ha (ω) đã bị bỏ
đi trong ký hiệu của ta.
Đặc tính chung của ánh xạ:
sTz e= (3)
có thể đạt được bằng cách thay s=σ+jΩ và biểu diễn biến phức z theo toạ độ
cực
jz re ω= . Với sự thay thế này (3) trở thành:
j j TTre e eω σ Ω=
Rõ ràng, ta phải có:
Tr e
T
σ
ω
=
= Ω
Do đó, 0 < σ nói lên rằng 0 < r <1 và 0 > σ nói lên rằng 1 > r . Khi σ=0 , ta
có r=1 .
Như vậy nửa trái mặt phẳng s được ánh xạ vào trong đường tròn đơn vị thuộc z
và nửa phải mặt phẳng s được ánh xạ thành các điểm ngoài đường tròn đơn vị
thuộc z. Đây là một trong các tính chất có lợi của ánh xạ đang xét.
Như đã chỉ ở trên, trục jΩ cũng được ánh xạ lên đường tròn đơn vị trong z . Tuy
nhiên, sự ánh xạ này là không một-một. Vì ω là duy nhất trên khoảng ( -π ,π)
(2)
211
nên sự ánh xạ T ω =ΩT hàm ý rằng khoảng –π/T ≤ Ω ≤ π/T ánh xạ lên các giá
trị tương ứng của -π≤ ω≤ π . Ngoài ra, khoảng tần số π/T ≤ Ω ≤ 3π/T cũng ánh
xạ vào khoảng -π ≤ ω ≤ π và nói chung, khoảng (2k-1)π/T ≤ Ω ≤ (2k+1) π/T
đều thế, khi k là số nguyên. Như vậy việc ánh xạ từ tần số tương tự Ω vào biến
tần số ω trong miền tần số là nhiều lên một, nó là sự phản ánh ảnh hưởng sự
chồng phổ khi lấy mẫu. Hình mô tả sự ánh xạ từ mặt phẳng s lên mặt phẳng z.
Hình 8.1: Ánh xạ từ mặt phẳng s lên mặt phẳng z
Để tìm hiểu tiếp ảnh hưởng của phương pháp bất biến xung đến đặc tuyến bộ lọc
thu được, ta hãy biểu diễn hàm hệ thống của bộ lọc tương tự dưới dạng phân
thức tối giản. Với giả thiết rằng các cực của bộ lọc tương tự là phân biệt, ta có
thể viết:
ở đây spk là các cực của bộ lọc tương tự và Ak là các hệ số của khai triển
phân thức.
Bởi vậy:
Nếu lấy mẫu ha(t ) một cách tuần hoàn tại t =nT , ta có
212
Thay (4) vào, hàm hệ thống bộ lọc số IIR sẽ là
Tổng phía trong của (5) là hội tụ, vì spk<0 và có
Do đó, hàm hệ thống bộ lọc số là:
Ta nhận thấy rằng bộ lọc số có các cực trị
Với hàm hệ thống H(z) này, bộ lọc số IIR dễ được thực hiện nhờ một dãy các
bộ lọc đơn cực song song.
3.Phương pháp biến đổi song tuyến
Trong mục này ta sẽ trình bày sự ánh xạ mặt phẳng s vào mặt phẳng z, được gọi
là biến đổi song tuyến tính. Biến đổi song tuyến tính là phép ánh xạ biến đổi trục
jΩ thành đường tròn đơn vị trong mặt phẳng z chỉ một lần, như vậy tránh được
sự lẫn mẫu của các thành phần tần số. Hơn nữa, tất cả các điểm trong nửa trái
mặt phẳng s, được ánh xạ vào phía trong đường tròn đơn vị và tất cả các điểm
cực ở nửa phải mặt s được ánh xạ vào các điểm tương ứng ngoài đường tròn đơn
vị thuộc mặt phẳng z.
Biến đổi song tuyến tính có thể liên kết với công thức hình thang để lấy tích
phân bằng số.
(4)
(5)
213
Ví dụ, ta hãy xét bộ lọc tương tự tuyến tính với hàm hệ thống:
Hệ thống này cũng được đặc trưng bởi phương trình vi phân.
Tránh sự thay thế phép đạo hàm bằng phép sai phân hữu hạn, giả sử rằng ta tích
phân đạo hàm và lấy gần đúng nó bằng công thức hình thang. Như vậy:
ở đây y'(t) là ký hiệu của đạo hàm y (t ) . Việc lấy gần đúng tích phân (6) bằng
công
thức hình thang tại t = nT và t0=nT-T cho:
( ) [ ( ) ( )] ( )2
Ty nT y nT y nT T y nT T′ ′= + − + −
Đánh giá phương trình vi phân (6.20) tại nT t = sẽ có:
Ta dùng (7) để thay cho đạo hàm trong phương trình vi phân sẽ có được phương
trình sai phân của hệ thống rời rạc tương đương. Với y(n ) ≡y (nT) và x(n ) ≡
x(nT) , ta có kết quả:
Biến đổi z của phương trình sai phân này là:
Do đó, hàm hệ thống của bộ lọc số tương đương là:
1
1
( ) ( / 2)(1 )( )
( ) 1 / 2 (1 / 2)
Y z bT zH z
X z aT aT z
−
−
+= =
+ − −
(6)
(7)
214
hoặc tương đương:
Rõ ràng, ánh xạ từ mặt phẳng s vào mặt phẳng z là:
Đây được gọi là biến đổi song tuyến tính.
4. Bộ lọc tương tự Butterworth
Định nghĩa bộ lọc Butterworth: Bộ lọc thông thấp Butterworth là loại toàn cực
được đặc trưng bởi đáp ứng bình phương biên độ tần số.
ở đây N là cấp bộ lọc và Ωc là tần số ứng với mức -3dB của nó (thường gọi là
tần số cắt). Vì H(s) H(-s ) ước lượng tại s=jΩ là đúng bằng H(Ω)2 , nên
Các cực của H(s)H(-s) xuất hiện trên đường tròn bán kính Ωc tại các điểm cách
đều. Từ (8) , ta tìm được.
và từ đó:
(2 1) /2j k N
s eckπ+
= Ω với k=0,1,....N-1 (9)
Đặc tuyến đáp ứng biên độ tần số của một lớp bộ lọc Butterworth được trình bày
ở Hình với một vài giá trị N . Ta lưu ý rằng H(Ω)2 là đơn điệu trong cả băng
(8)
215
thông và băng chắn. Cấp bộ lọc, cần để đạt suy giảm δ2 tại tần số đã định Ωs,
được xác định một cách dễ dàng nhờ (9). Như vậy, tại Ω = Ωs ta có:
Và vì thế:
Như vậy các tham số N,δ2 và tỷ số Ωs/ Ωc là đặc trưng đầy đủ cho bộ lọc
Butterworth.
Hình 8.2: Đáp ứng biên độ tần số của bộ lọc
5. Bộ lọc tương tự Chebyshev
Có hai loại bộ lọc Chebyshev. Loại I là bộ lọc toàn cực, nó biểu lộ độ gợn sóng
đồng đều trong băng thông và có đặc tuyến đơn điệu trong băng chắn. Ngược
lại, bộ lọc Chebyshev loại II gồm cả cực không, thể hiện tính đơn điệu trong
băng thông và độ gợn sóng đều nhau trong băng chắn. Các điểm không của loại
bộ lọc này nằm trên trục ảo thuộc mặt phẳng s.
Bình phương đặc tuyến đáp ứng biên độ tần số của bộ lọc Chebyshev loại I là:
216
ở đây ε là một tham số của bộ lọc, có liên quan đến gợn sóng trong băng thông;
TN(x) là đa thức Chebyshev bậc ε và được định nghĩa như sau:
Có thể tổng quát hoá đa thức Chebyshev bằng phương trình đệ quy.
Các đa thức này có một số tính chất sau:
1. TN(x) ≤1 với mọi x≤1 .
2. TN(1)=1 với mọi N
3. Tất cả các nghiệm của đa thức TN(x)xuất hiện trong khoảng -1 ≤x ≤ 1 .
Tham số lọc ε liên quan tới độ gợn sóng trong băng thông,với N lẻ và chẵn.
Đối với N lẻ, TN(0)=0 và do đó H(0)2=1 . Mặt khác, với N chẵn, TN(0)=1 và
do đó H (0)2=1/(1+ε2). Tại tần số biên băng Ω = Ωc , ta có TN(1)= 1 , bởi vậy:
Hoặc tương đương:
ở đây δ1 là giá trị gợn sóng trong băng thông.
Các cực của bộ lọc Chebyshev loại I nằm trên một elíp thuộc mặt phẳng s với
trục chính là:
Và trục đối xứng là:
217
ở đây β quan hệ với ε theo phương trình
Nếu ký hiệu vị trí góc của các cực bộ lọc Butterworth là:
thì các vị trí cực của bộ lọc Chebyshev sẽ nằm trên elíp tại các toạ độ ( xk ,yk ),
k=0,1,2,....N-1, với:
Hình 30: Đáp ứng biên độ tần số của bộ lọc Chebyshev loai I
Bộ lọc Chebyshev loại II gồm cả các điểm không và các điểm cực.
Bình phương của đáp ứng biên độ tần số là:
2
2 2 2
1| ( ) |
1 [ ( / ) / ( / )]N S C N s
HT T
Ω =+ Ω Ω Ω Ωò
ở đây () x TN cũng là đa thức Chebyshev bậc N và s Ω là tần số băng chắn.
218
Các không được đặt trên trục ảo, tại các điểm:
Các điểm cực được đặt tại các tọa độ (vk,wk), ở đây:
Hình 8.3: Đáp ứng biên độ tần số bộ lọc Chebyshev loại II
B. Thực hành
Thiết kế mạch lọc số IIR dùng Matlab
Quá trình thiết kế mạch lọc số IIR gồm 2 bước. Bước thứ nhất là xác định bậc
của mạch lọc N và thừa số chia thang tần số Wn được xác định từ các quy định
cho trước cần thiết kế. Bước thứ hai là sử dụng các thông số vừa được xác định
ở bước một cùng với độ mấp mô cho phép để xác định các hệ số của hàm
truyền. Trong Matlab, hai bước này được tiến hành như sau:
Xác định bậc:
Nếu các mạch lọc số IIR được thiết kế dùng biến đổi song tuyến, thì các lệnh
Matlab được sử dụng như sau:
[N, Wn]=butterord(Wp,Ws,Rp,Rs)
219
[N, Wn]=cheb1ord(Wp,Ws,Rp,Rs)
[N, Wn]=cheb2ord(Wp,Ws,Rp,Rs)
[N, Wn]=ellipord(Wp,Ws,Rp,Rs)
Đối với các mạch lọc thông thấp thì Wp và Ws là các tần số ở mép dải thông và
dải chặn với ωp< ωs. Các tần số này phải nằm giữa 0 và 1, ở đây tần số lấy mẫu
F lấy bằng 2. Nếu tần số lấy mẫu F, tần số của dải thông fp và của dải chặn fs
quy định bằng Hz, thì khi đó Wp=2fp/F và Ws=2fs/F. Hai thông số khác là Rp và
Rs lấy theo dB. Các hàm trên cho biết bậc N của mạch lọc và thừa số chia thang
tần số Wn. Hai thông số này đều cần thiết trong các hàm của Matlab để thiết kế
mạch lọc thỏa mãn các quy định cho trước. Đối với mạch lọc Butterworth thì
Wn là tần số cắt 3dB. Đối với các mạch lọc Chebyshev loại 1 và elliptic thì Wn
là tần số ở mép của dải thông, trong khi đối với mạch lọc Chebyshev loại 2 thì
Wn lại là tần số ở mép của dải chặn.
Đối với các mạch lọc thông cao Wp>Ws. Đối với các mạch lọc thông dải và chặn
dải thì Wp và Ws là những vector có chiều dài bằng 2 quy định các mép của dải
chuyển tiếp, tần số ở mép thấp hơn là phần tử đầu tiên của vector. Trong hai
trường hợp sau, thì Wn cũng là vector có độ dài bằng 2, còn N là nửa bậc của
mạch lọc cần thiết kế.
Ví dụ: Xác định bậc thấp nhất của mạch lọc ellip hoạt động tại tần số lấy mẫu
1600Hz với các quy định sau: Các mép của dải thông tại 200Hz và 280Hz. Các
mép của dải chặn tại 160Hz và 300Hz. Độ mấp mô của dải thông Rp=0.1dB và
độ suy giảm của dải chặn là 70dB.
Chuẩn hóa các mép của dải thông: 2(200/1600)=0.25 và (2(280/1600)=0.35. Do
đó, ωp =[0.25 0.35]. Chuẩn hóa các mép của dải chặn: 2(160/1600)=0.2 và
2(300/1600)=0.375. Do vậy ωs=[0.2 0.375]. Nếu sử dụng biến đổi song tuyến để
thiết kế mạch lọc số thì phải sử dụng lệnh:
[N, ωn]=ellip([0.25 0.35],[0.2 0.375],0,1,70)
Kết quả N=8 và Wn=[0.25 0.35]. Cần lưu ý rằng N ở đây là bậc của mạch lọc
nguyên thủy thông thấp. Bậc của mạch lọc thông dải là 2N=16.
Thiết kế mạch lọc
220
Để thiết kế mạch lọc IIR dựa trên biến đối song tuyến, Toolbox xử lý tín hiệu
của Matlab có chứa 4 hàm số gần đúng: Butterworth, Chebyshev1, Chebyshev 2
và elliptic. Các m file sau đây được sử dụng:
[b,a]=butter(N,Wn)
[b,a]=cheby1(N,Rp,Wn)
[b,a]=cheby2(N,Rs,Wn)
[b,a]=ellip(N,Rp,Rs,Wn)
Các hàm này xác định hàm truyền của mạch lọc thông thấp với bậc N và với
thừa số chia thang tần số Wn nằm giữa 0 và 1 và với tấn số lấy mẫu được giả
thiết bằng 2Hz. Hai thông số này đã được xác định trong bước 1. Các thông số
bổ xung cho mạch lọc Chebyshev và ellip là Rp quy định độ mấp mô của dải
thoong đo trong dB và Rs quy định độ suy giảm ít nhất của dải chặn cũng được
đo bằng dB. Các hàm này cho các vector b và a là các vector có độ dài N+1 hệ
số của tử số và mẫu số của hàm truyền theo thứ tự tăng dần của số mũ z-1=. Dạng
của hàm truyền thu được là:
0
1
( )( )
( )1
Nm
mm
Nk
kk
b zN z
H zD z
a z
−
=
−
=
= =
+
∑
∑
Sau khi các hệ số của hàm truyền của mạch lọc số cần thiết kế đã được xác định,
thì đáp ứng tần số của mạch lọc số có thể xác định được nhờ M file freqz(b,a,ω),
trong đó ω là tập hợp các tần số góc đã được quy định( giá trị của ω nằm giữa 0
và π). Hàm freqz tạo ra một vector phức mà từ đó đáp ứng biên độ và đáp ứng
pha có thể xác định được.
Muốn xác định điểm cực và điểm không của hàm truyền của mạch lọc mong
muốn, các hàm thiết kế mạch lọc IIR sau đây có thể được vận dụng:
[z,p,k]=butter(N,Wn)
[z,p,k]=cheby1(N,Rp,Wn)
[z,p,k]=cheby2(N,Rs,Wn)
[z,p,k]=butter(N,Rp,Rs,Wn)
Các điểm này cho N điểm không z và N điểm cực p và hệ số khuyếch đại k.
221
Ví dụ: thiết kế mạch lọc elliptic và Butterworth thông thấp với các quy định sau:
Tần số mép của dải thông fp=800Hz, mép của dải chặn fs=1kHz, độ mấp mô của
dải thông 0.5dB, độ suy giảm cực tiểu của dải chặn 40dB và tần số lấy mẫu
F=4kHz.
%Thiet ke mach loc elliptic
[N,Wn]=ellipord(0.4,0.5,0.5,40);
[b,a]=ellip(N,0.5,40,Wn);
[h,omega]=freqz(b,a,256);
plot(omega/pi,20*log10(abs(h)));grid;
xlabel('\omega/\pi');ylabel('Bien do, dB');
title('Mach loc IIR Elliptic');
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-140
-120
-100
-80
-60
-40
-20
0
20
ω/π
Bie
n d
o, d
B
Mach loc IIR Elliptic
%Thiet ke mach loc Butterworth
[N,Wn]=buttord(0.4,0.5,0.5,40);
[b,a]=butter(N,Wn);
[h,omega]=freqz(b,a,256);
plot(omega/pi,20*log10(abs(h)));grid;
222
xlabel('\omega/\pi');ylabel('Bien do, dB');
title('Mach loc IIR Butterworth');
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-400
-350
-300
-250
-200
-150
-100
-50
0
50
ω/π
Bie
n d
o,
dB
Mach loc IIR Butterworth
Thiết kế mạch lọc số thông thấp Butterworth và Chebyshev 1
Bổ sung hàm cho Matlab:
function [b0,B,A] = dir2cas(b,a);
% DIRECT-form to CASCADE- form conversion (cplxpair
version)
% --------------------------------------------------
------
% [b0,B,A] = dir2cas(b,a)
% b0 = gain coefficient
% B = K by 3 matrix of real coefficients containing
bk's
% A = K by 3 matrix of real coefficients containing
ak's
% b = numerator polynomial coefficients of DIRECT
223
form
% a = denominator polynomial coefficients of DIR ECT
form
% compute gain coefficient b0
b0 = b(1); b = b/b0;
a0 = a(1); a = a/a0;
b0 = b0/a0;
%
M = length(b); N = length(a);
if N > M
b = [b zeros(1,N-M)];
elseif M > N
a = [a zeros(1,M-N)]; N = M;
else
NM = 0;
end
%
K = floor(N/2); B = zeros(K,3); A = zeros(K,3);
if K*2 == N;
b = [b 0];
a = [a 0];
end
%
broots = cplxpair(roots(b));
aroots = cplxpair(roots(a));
for i=1:2:2*K
224
Brow = broots(i:1:i+1,:);
Brow = real(poly(Brow));
B(fix((i+1)/2),:) = Brow;
Arow = aroots(i:1:i+1,:);
Arow = real(poly(Arow));
A(fix((i+1)/2),:) = Arow;
end
Ví dụ: thiết kế bộ lọc thông thấp Butterworth
%xac dinh cac tham so cua bo loc
wp = 0.2*pi; %bien dai thong
(Hz)
ws = 0.3*pi; %bien dai chan
(Hz)
Rp = 1; %Do gon dai
thong (dB)
As = 15; %Do gon dai chan
(dB)
T = 1;
OmegaP = (2/T)*tan(wp/2);
OmegaS = (2/T)*tan(ws/2);
ep = sqrt(10^(Rp/10)-1);
Ripple = sqrt(1/(1+ep*ep));
Attn = 1/(10^(As/20));
225
N =ceil((log10((10^(Rp/10)-1)/(10^(As/10)-
1)))/(2*log10(OmegaP/OmegaS)));
fprintf('\n*** Do lon bo loc Bu tterworth = %2.0f
\n',N)
%%*** Do lon bo loc Butterworth = 6
OmegaC = OmegaP/((10^(Rp/10)-1)^(1/(2*N)));
wn = 2*atan((OmegaC*T)/2);
wn = wn/pi;
[b,a]=butter(N,wn);
[b0,B,A] = dir2cas(b,a)
%%C = 5.7969e-004
%%B = 1.0000 2.0297 1.0300
%% 1.0000 1.9997 1.0000
%% 1.0000 1.9706 0.9709
%%A = 1.0000 -0.9459 0.2342
%% 1.0000 -1.0541 0.3753
%% 1.0000 -1.3143 0.7149
Ví dụ: thiết kế bộ lọc số thông thấp Chebyshev loại I
% Cac tham so cua bo loc
wp = 0.2*pi;
ws = 0.3*pi;
Rp = 1;
As = 15;
T = 1;
OmegaP = (2/T)*tan(wp/2);
226
OmegaS = (2/T)*tan(ws/2);
ep = sqrt(10^(Rp/10)-1);
Ripple = sqrt(1/(1+ep*ep));
Attn = 1/(10^(As/20));
ep = sqrt(10^(Rp/10)-1);
A = 10^(As/20);
OmegaC = OmegaP;
OmegaR = OmegaS/OmegaP;
g = sqrt(A*A-1)/ep;
N=ceil(log10(g+sqrt(g*g1))/log10(OmegaR+sqrt(OmegaR*O
megaR-1)));
fprintf('\ n*** Do lon cua bo loc Chebyshev loai 1 =
%2.0f \n',N)
%Thiet ke bo loc Chebyshev loai 1
wn = wp/pi;
[b,a]=cheby1(N,Rp,wn);
[b0,B,A] = dir2cas(b,a)
%%b0 = 0.0018
%%B = 1.0000 2.0000 1.0000
%% 1.0000 2.0000 1.0000
%%A = 1.0000 -1.4996 0.8482
%% 1.0000 -1.5548 0.6493
Ví dụ: Mô phỏng quá trình lọc số dùng mạch lọc IIR
%Minh hoa loc tin hieu dung bo loc IIR
clf;
%xac dinh tin hieu vao
227
k=0:50;
w2=0.7*pi;w1=0.2*pi;
x1=1.5*cos(w1*k);x2=2*cos(w2*k);
x=x1+x2;
%Chon ham truyen cua mach loc
[N,Wn]=ellipord(0.25, 0.55, 0.5, 50);
[num,den]=ellip(N,0.5,50,Wn);
%phat tin hieu loi ra
y=filter(num,den,x);
%Ve tin hieu vao va ra
subplot(2,1,1);
stem(k,x);grid;axis([0 50 -4 4]);
xlabel('Chi so thoi gian n');ylabel('Bien do');
title('Tin hieu so loi vao');
subplot(2,1,2);
stem(k,y);grid;axis([0 50 -4 4]);
xlabel('Chi so thoi gian n');ylabel('Bien do');
title('Tin hieu loi ra');
228
0 5 10 15 20 25 30 35 40 45 50-4
-2
0
2
4
Chi so thoi gian n
Bie
n d
o
Tin hieu so loi vao
0 5 10 15 20 25 30 35 40 45 50-4
-2
0
2
4
Chi so thoi gian n
Bie
n d
o
Tin hieu loi ra
C. Bài tập
1.Cho hàm truyền đạt bộ lọc tương tự: 1
( )1
aH ss
=+
Hãy chuyển sang bộ lọc số bằng phương pháp tương đương vi phân với tthời
gian lấy mẫu T=0.1
2.Biến đổi bộ lọc tương tự có hàm hệ thống:
2
0.1( )
( 0.1) 9a
sH s
s
+=
+ +
thành bộ lọc số IIR nhờ phương pháp bất biến xung.
3.Hãy chuyển bộ lọc tương tự sau sang bộ lọc số bằng phương pháp biến đổi
song tuyến.
229
4.Xác định cấp và các cực của bộ lọc Butterworth thông thấp có độ rộng băng -
3dB là 500Hz và độ suy giảm 40dB tại 1000Hz.
5.Bộ lọc Butterworth được mô tả ở dạng như sau
Hãy xác định hàm truyền đạt Ha(s) khi n= 3
230
Phụ lục A: Giới thiệu về Matlab
1.1. Khởi động MATLAB
Ðể khởi động làm việc với MATLAB, ta nhắp đúp vào biểu tượng
của MATLAB. Màn hình nền xuất hiện bao gồm các cửa sổ:
Cửa sổ lệnh Command Windows: Ðâ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 dữ liệu và xuất kết quả tính toán. Dấu nhắc
>> để gõ các lệnh.
Có một số lệnh tổng quát liên quan đến cửa sổ này như sau:
clc: xóa cửa sổ lệnh.
home: di chuyển con chạy lên góc trên trái của cửa sổ (khi chạy chương
trình).
231
help: trợ giúp thông tin về một mục nào đó
echo, echo on/off: tắt mở hiển thị các dòng của file m khi chạy chương trình.
edit: gọi chương trình soạn file *.m. type
tên_file: đọc nội dung file *.m. demo: gọi
chương trình demo.
quit, exit: thoát chương trình MATLAB. Ngoài ra còncó một số phím hỗ trợ
thao tác:
Phím Chức năng Phím Chức năng
↑ Gọi lại hàng trước End Về cuối hàng
↓ Gọi lại hàng kế Esc Xóa hàng
← Lui lại một ký tự Delete Xóa ký tự ở con chạy
→ Tới một ký tự Backspace Xóa ký tự trước con chạy
Ctrl → Qua phải một từ Ctrl K Xóa đến cuối hàng
Ctrl ← Qua trái một từ Shift
home
Đánh dấu đến cuối hàng
Home Về đầu hàng Shift end Đánh dấu đến cuối hàng
Cửa sổ lịch sử lệnh Command History: liệt kê các lệnh đã sử dụng trước đó
kèm thời gian bắt đầu. Có thể lặp lại lệnh cũ bằng cách nhắp chuột kép vào
lệnh đó. Cũng có thể cắt, sao hoặc xóa cả nhóm lệnh hoặc từng nhóm lệnh
riêng rẻ.
Cửa sổ không gian làm việc Workspace Browser: cho biết các biến sử dụng
trong chương trình.
Cửa sổ Launch Pad: cho phép người sử dụng truy cập nhanh các công cụ, tài
liệu của MATLAB.
Cửa sổ thư mục hiện tại Current Directory Browser: cho biết thư mục hiện
tại đang sử dụng. Người sử dụng có thể nhanh chóng nhận biết, chuyển đổi
thư mục hiện tại của môi trường công tác, mở File, tạo thư mục mới.
232
1.2. Sử dụng lệnh trực tiếp với MATLAB
Những lệnh của MATLAB có thể được sử dụng trực tiếp hoặc chạy từ các
file lệnh, nhưng nói chung, chúng ta thường sử dụng cả hai phương pháp trên.
Ví dụ: Giải phương trình bậc hai 2 0ax bx c+ + =
Các nghiệm của phương trình có dạng: 2 4
2
b b acx
a
− ± −=
Vì MATLAB là một chương trình tính toán số nên chúng ta phải xác định các
giá trị của a, b, c. Dấu = được sử dụng để gán một giá trị nào đó cho một
biến. Ta nhập các giá trị của a, b và c như sau (gõ phím Enter ở cuối mỗi hàng)
>>a=2
a=
2
>>b=5
b=
5
>>c=-3
c=
-3
Nếu có sử dụng dấu ; ở cuối dòng thì MATLAB sẽ không hiển thị lại giá trị
vừa nhập.
Ta hướng dẫn MATLAB tính nghiệm thứ nhất bằng cách gõ tiếp:
x1=(-b+sqrt(b^2-4*a*c))/(2*a)
x1=
233
0.5000
Tính nghiệm thứ hai bằng cách gọi lại lệnh trước và thay dấu + bằng dấu -
x2=(-b-sqrt(b^2-4*a*c))/(2*a)
x2=
-3
Các phép toán cơ bản để tạo nên biểu thức trong MATLAB:
Phép tính Ký hiệu Ví dụ
Phép cộng a+b + 2+7=9
Phép trừ a-b - 7-3=4
Phép nhân a.b * 6*2=12
Phép chia a\b \ hoặc / 8/2 =4 hoặc 2\8=4
Phép lũy thừa ab ^ 5^2=25
1.3. Sử dụng lệnh từ các file lệnh
Những lệnh của MATLAB có thể được đưa vào một file. Sau đó hướng
dẫn MATLAB làm việc với các lệnh đó. Tên của file phải được bắt đầu bằng
một ký tự và có phần mở rộng là .m.
Dùng lệnh edit hoặc vào menu File - New - M_file môi trường soạn thảo
Editor/ Debugger sẽ xuất hiện. Trên màn hình soạn thảo, ta gõ các lệnh
MATLAB:
a=2; b=5; c=-3;
x1=(-b+sqrt(b^2-4*a*c))/(2*a)
x2=(-b-sqrt(b^2-4*a*c))/(2*a)
Sau khi gõ xong lệnh, ta lưu tâp tin với tên vidu.m rồi thoát khỏi môi trường
soạn thảo để trở về Command Window. Ðể chạy các lệnh trong tập tin
vidu.m ta chỉ cần gõ tên tập tin:
>>vid
234
u x1 =
0.5000
x2 =
-3
1.4. Dòng nhắc gán giá trị các biến
Ðể thay đổi các giá trị a, b, c ta phải soạn thảo lại file vidu.m rồi chạy lại. Ta
có thể sửa lại chương trình để có dòng nhắc nhập a, b, c với các lần lượt
chạy chương trình khác nhau.
a=input ('nhap vao gia tri a=');
b=input ('nhap vao gia tri b =');
c=input ('nhap vao gia tri c = ');
x1=(-b+sqrt(b^2-4*a*c))/(2*a)
x2=(-b-sqrt(b^2-4*a*c))/(2*a)
Khi chạy chương trình ta sẽ được kết quả như sau:
>>vidu
nhap vao gia tri a =
1 nhap vao gia tri b
= 0 nhap vao gia tri
c = -2 x1 =
1.4142
x2 =
-1.4142
1.5. Cách tạo một hàm
Mỗi một file hàm của MATLAB (M_file) đều được bắt đầu với khai báo
như
sau:
Function [tên kết quả] = tên hàm (danh sách các biến) File.m
235
thường lấy tên là tên của hàm.
Phần thân của chương trình trong hàm là các lệnh của MATLAB thực hiện
việc tính toán giá trị của đại lượng được nêu trong phần tên kết quả theo
các biến được nêu trong phần danh sách các biến. Các biến chỉ có tác dụng
nội trong hàm vừa được khai báo. Tên của các biến được ngăn cách nhau bằng
dấu phẩy.
Ví dụ: tạo hàm giải phương trình bậc hai, tên tập tin hàm được đặt là
bachai.m function [x1,x2]=bachai(a,b,c)
delta=b^2-4*a*c;
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
Giải phương trình bậc hai với a = 1, b = 0, c = -2, ta gõ:
>> [x1,x2]=bachai(1,0,-2)
x1 =
1.4142
x2 =
-1.4142
1.6. Sử dụng hàm có sẵn
MATLAB có thư viện hàm rất lớn, muốn biết cách sử dụng các hàm như thế
nào trong màn hình Command Window ta gõ lệnh:
Help tên hàm
1.7. Vẽ các hàm
Khi muốn vẽ một hàm nào đó, phải xác định hàm đó trong một file.m, sau đó
sử
dụng lệnh:
fplot(‘tên file’,[khoảng vẽ])
236
Ví dụ: Vẽ hàm bậc hai 4x2 + 6x - 7 trong đoạn [-6,6].
+ Tạo file bachai.m:
function y=bachai(x)
a=4; b=6; c=-7;
y=a*x^2+b*x+c;
+ Vẽ hàm:
fplot('bachai',[-6,6])
1.8. Lưu và lấy dữ liệu
Ta có thể tạo một file dữ liệu, sau đó khi cần dùng thì lấy ra.
Ví dụ: Tạo một ma trận A, sau đó lưu file này với tên là dulieu A=[1 2 3;4 5
6;7 8 9];
>>Save dulieu
Khi cần sử dụng dữ liệu này, ta gõ lệnh:
>>load dulieu
>>
A A
=
237
1 2 3
4 5 6
7 8 9
1.9. Các toán tử logic và quan hệ
Ðối với các số thì trong toán tử và quan hệ quy định các số khác không là
True còn số không là False. Kết quả của phép toán logic và quan hệ đưa ra
là 1 cho True, 0 cho False.
1.9.1. Toán tử quan hệ
Toán tử quan hệ Matlab bao gồm:
Ví dụ:
>>12.2>12
ans =
1
>> 1~=1
ans =
0
1.9.2. Toán tử logic
Biểu thức logic với các toán tử tổ hợp được xác định theo qui luật sau:
238
Ðôi khi gặp những biểu thức phức tạp chứa cả toán tử & lẫn toán tử | ,
MATLAB
sẽ có qui luật về trình tự xử lý như sau:
Ðầu tiên là xử lý các tính toán số học. Sau đó, các toán tử logic được xem xét
từ
trái sang phải. Những biểu thức con có trong biểu thức cần xử lý (có các toán
tử
& và | ) cũng được xem xét từ trái sang phải với các toán tử & được xử lý
trước các toán tử |
Ví dụ:
>>A=1:5;
>>B=(A>2)&(A
<5) B =
0 0 1 1 0
1.10. Các câu lệnh điều kiện
Dạng đơn giản nhất của lệnh điều kiện trong MATLAB là:
if biểu thức điều kiện
Khối các lệnh được thực hiện
end
Nếu biểu thức điều kiện là true thì thực hiện các lệnh tiếp theo, nếu không
thì thực hiện các lệnh tiếp sau end.
Trong cấu trúc lệnh điều kiện, ta có thể sử dụng cấu trúc if với nhiều phần
thân cấu trúc như sau:
239
if biểu thức điều kện 1
Khối các lệnh được thực hiện nếu điều kiện 1
là đúng elseif biểu thức điều kiện 2
Khối các lệnh được thực hiện nếu điều kiện 2
là đúng else
Khối các lệnh được thực hiện nếu không có điều kiện
nào đúng end
Ví dụ: Căn cứ vào số điểm để xét kết quả học tập của một học sinh.
diem=input('nhap vao so diem = ');
if (diem>=0)&(diem<=10)
if diem<=4
disp('loai yeu')
elseif (diem>=5)&(diem<=6)
disp('loai trung binh')
elseif (diem>=7)&(diem<=8)
disp('loai gioi')
elseif (diem>=9)&(diem<=10)
disp('loai xuat sac')
end
else ('so lieu khong hop le')
end
1.11. Vòng lặp
1.11.1. Vòng lặp for
Vòng lặp for cho phép một nhóm lệnh thực hiện lặp lại một số lần cố định.
Cú pháp của vòng lặp for như sau:
240
for i=i1:∆i:i2
Khối các
lệnh end
Trong vòng lặp trên i1 và i2 lần lượt là các giá trị bắt đầu và kết thúc của i, ∆i
là bước nhảy (nếu không đặt bước nhảy thì giá trị mặc định của bước nhảy
bằng 1). Mỗi lần lặp sẽ kết thúc khi gặp từ khóa end. Ðầu tiên MATLAB sẽ
xác định có bao nhiêu lần lặp và sau đó mới tiến hành thực thi các lệnh
trong vòng lặp với các giá trị của i. Vì vậy, nếu như i2 < i1 với ∆i>0 thì
MATLAB sẽ không thực thi vòng lặp.
Ví dụ:
for i=1:10
x(i)=sin(i*pi/1
0); end
>>
x x
=
Columns 1 through 8
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511
0.8090
0.5878
Columns 9 through 10
0.3090 0.0000
1.11.2. Vòng lặp While
Vòng lặp While thực hiện lặp lại một số lần cố định, nhưng không biết
trước
được số lần lặp lại. Cú pháp của vòng lặp While như sau:
241
while biểu thức điều kiện
Khối các
lệnh end
Ví dụ: Tính giá trị đặc biệt của eps trong MATLAB
num=0;
>> EPS=1;
>> while (EPS+1)>1
EPS=EPS/2
;
num=num+
1; end
>> num
num =
53
>> EPS=EPS*2
EPS =
2.2204e-016
1.12. Các hàm toán học thông thường
Tương tự như hầu hết các máy tính kỹ thuật, MATLAB có thể đưa ra rất
nhiều các hàm toán học, kỹ thuật thông dụng, ngoài ra MATLAB còn cung
cấp hàng trăm các hàm đặc biệt và thuật toán, nó rất hữu ích để giải quyết các
vấn đề khoa học. Tất cả các hàm được liệt kê trong menu help. Ở đây chỉ đề
cập đến các hàm thông dụng nhất.
1.12.1. Hàm toán học cơ bản
abs(x) Hàm tính giá trị tuyệt đối của x
242
sqrt(x) Hàm tính căn bậc hai của x
round(x) Làm tròn x về số nguyên gần nhất
fix(x) Làm tròn số x về
0 floor(x) Làm tròn về phía
-∞ ceil(x) làm tròn về phía
∞
sign(x) Hàm cho giá trị là -1 nếu x nhỏ hơn 0, giá trị bằng 0 nếu
x bằng 0, có giá trị là 1 nếu x lớn hơn 0
rem (x,y) Hàm trả lại số dư của phép chia x cho y
exp(x) Hàm tính giá trị của
ex log(x) Hàm tính giá trị ln(x)
log10(x) Hàm tính giá trị
log10(x)
1.12.2. Hàm lượng giác cơ bản
Ðơn vị của các tham số phải là
radian sin(x) Tính sin của góc x
cos(x) Tính cos của góc x
tan(x) Tính tan của góc x
asin(x) Tính arcsin của x, khi x nằm trong khoảng [-1,1], hàm
trả lại góc có giá trị radian trong khoảng -π/2 đến π/2
acos(x) Tính arccos của x, khi x nằm trong khoảng [-1,1], hàm
trả lại góc có giá trị radian trong khoảng 0 đến π
atan(x) Tính arctang của x trong khoảng -π/2 đến π/2
atan2 (x,y) Tính arctang của y/x trong khoảng -π đến π, tùy thuộc
vào dấu của x và y
243
1.12.3. Các hàm hyperbolic
sinh(x) Hàm tính hyperbolic sin của x
cosh(x) Hàm tính hyperbolic cos của x
asinh(x) Hàm tính nghịch đảo của hyperbolic sin
của x acosh(x) Hàm tính nghịch đảo của hyperbolic
cos của x atanh(x) Hàm tính nghịch đảo của
hyperbolic tang của x
1.13. Ðịnh dạng số
Các phép tính trong MATLAB được thực hiện với độ chính xác cao, ta có
thể định dạng cho các số xuất ra màn hình tùy từng yêu cầu cụ thể.
Ta lấy ví dụ với số a = -2/3
Một chú ý quan trọng là MATLAB không thay đổi số khi định lại khuôn
dạng hiển thị được chọn, mà chỉ thay đổi màn hình thay đổi.
244
PHỤ LỤC B: CÁC HÀM THƯ VIỆN THÔNG DỤNG TRONG
TOOLBOX - DSP / XỬ LÝ TÍN HIỆU SỐ
1. HÀM SINH RA CÁC DẠNG SÓNG
Chirp Phát hàm cosin
Diric hàm tuần hoàn sinc
Gauspull Phát xung Gaussian
Pulstran Phát một dãy xung
Rectpuls Phát hình vuông lấy mẫu không tuần hoàn
sawtooth Hàm răng cưa
sinc Hàm sinc hoặc sin(pi*x)/(pi*x)
square Hàm sóng bình phương
tripuls Máy phát hình thang lấy mẫu không tuần hoàn
2. PHÂN TÍCH BỘ LỌC VÀ THỰC HIỆN CHÚNG
Abs Giá trị tuyệt đối của số ảo
Angle Góc pha
Conv Quay
Fftfilt Thực hiện bộ lọc over lap-add
Filter Thực hiện bộ lọc
filtfilt Bộ lọc pha không
filtic Bộ lọc xác định điều kiện đầu
freqs Biến đổi Laplace tần số đáp ứng
245
freqspace Đặt tần số cho đáp ứng tần số
freqz Biến đổi z tần số đáp ứng
grpdelay Một nhóm trễ
impz Đáp ứng xung (rời rạc)
latcfilt Thực hiện bộ lọc Lattice
unwrap Không bó pha
upfirdn Bộ lọc FIR không lấy mẫu, lấy mẫu xuống
zplane Chấm điểm cực rời rạc
3.CÁC BIẾN ĐỔI HỆ TUYẾN TÍNH
Convmtx Ma trận quay( Ma trận chuyển vị, hay nghịc đảo)
latc2tf Lưới và hoặc lưới bậc thang để truyền hàm chuyển đổi
poly2rc Đa phương đến hệ số biến đổi
rc2poly Hệ số phản xạ để biến đổi đa phương
residuez Miền mở rộng thập phân của biến đổi z
sos2ss Chuyển đổi các vùng thứ hai đến đặt trạng thái chuyển đổi
sos2tf Chuyển đổi các vùng thứ hai để truyền hàm chuyển đổi
sos2zp Chuyển đổi các vùng thứ hai đến trường không
ss2sos Đặt trạng thái để đạt điểm thứ hai của vùng chuyển đổi
ss2zp Đặt trạng thái đến chuyển đổi trường không
ss2tf Đặt trạng thái để truyền hàm chuyển đổi
tf2latc Truyền hàm đến lưới hoặc chuyển đổi lưới hình thang
tf2ss Truyền hàm đến chuyển đổi trạng thái
tf2zp Truyền hàm đến vùng chuyển đổi trường không
zp2sos Chuyển đổi từ trường không đến vùng đặt thứ hai
246
zp2ss Chuyển đổi từ trường không đến điểm trạng thái
zp2tf Chuyển đổi từ trường không đến hàm truyền
4. THIẾT KẾ BỘ LỌC SỐ IIR
butter Thiết kế hàm lọc đơn giản nhất
cheby1 Thiết kế bộ lọc ChebyshewI
cheby2 Thiết kế bộ lọc ChebyshewII
ellip Thiết kế bộ lọc Elliptic (dạng Ellip)
maxflat Thiết kế bộ lọc thông thấp được sinh ra một cách đơn giản
nhất
yulewalk Thiết kế bộ lọc Yule-Walker
5. CHỌN BỘ LỌC CHO TRƯỚC IIR
Buttord Chọn bộ lọc đơn giản Butterworth cho trước
cheb1ord Chọn bộ lọc Chebyshew 1 cho trước
cheb2ord Chọn bộ lọc Chebyshew 2 cho trước
ellipord Chọn bộ lọc Ellip cho trước
6. THIẾT KẾ BỘ LỌC FIR
cremez Thiết kế bộ lọc FIE số phức và hiệu ứng (méo nhỏ )ripple
pha không tuyến tính
fir1 Thiết kế cửa sổ cở bản của bộ lọc FIR- -thấp ,cao, thông
giữa,dừng,tích
fir2 Thiết kế cửa sổ cơ bản của bộ lọc FIR -Đáp ứng tuỳ ý
247
fircls Thiết kế bộ lọc ở điều kiện bình phương lớn nhất- Đáp ứng
tuyf ys
fircls1 Thiết kế bộ lọc FIR ở điều kiện bình phương lớn nhất- thông
thấp và thông cao
girrcos Thiết kế bộ lọc FIR cosine lớn dần
firls Thiết kế bộ lọc FIR- đáp ứng tuỳ ý cùng với vùng chuyển
đổi
inflit Thiết bọ lọc FIR nội suy
kaiserord Chọ điểm đặt cửa sổ cơ bản của bộ lọc sử dụng cửa sổ
Kaiser
remez Thiết kế hàm lọc tối ưu FIR Parks-McChellan
remezord Chọn hàm lọc đặt trước Parks-McChellan
7. CÁC CHUYỂN ĐỔI
czt Biến đổi Z
dct Biến đổi Cosine rời rạc
dftmtx Ma trận biến đổi Fourier rời rạc
fft Biến đổi Fourier nhanh
fftshift Chuyển đổi vector halves
hilbert Biến đổi Hilbert
idct Biến đổi cosin rời rạc ngược
ifft Biến đổi fourier ngược nhanh
8. XỬ LÝ TÍN HIỆU THỐNG KÊ VÀ PHÂN TÍCH PHỔ
cohere Hàm đánh giá trặt trẽ
corrcoef Hệ số hiệu chỉnh (hệ số bù)
cov Ma trận sai lệch
csd Mật độ phổ cắt nhau
248
pburg Định lượng phổ công suất theo phương pháp Burg
pmtm Định lượng phổ công suất theo phương pháp Thomson
pmusic Định lượng phổ công suất theo phương pháp amm nhacj
psd Định lượng phổ công suất theo phương pháp Welch
pyulear Định lượng phổ công suất theo phương pháp Yule-Walker
spectrum psd, csd, dính kết và tổ hợp tfe
tfe Đánh giá hàm truyền
xcorr Hàm bù (hiệu chỉnh) giao nhau
xcov Hàm sai lệch
9. CỬA SỔ
Bartlett Cửa sổ Bartlett
Blackman Cửa sổ Blackman
Boxcar Cửa sổ Boxcar
Chebwin Cửa sổ Chebwin
hamming Cửa sổ hamming
hamning Cửa sổ hamning
kaiser Cửa sổ Kaiser
triang Cửa sổ có dạng tam giác
10. THÔNG SỐ KHI MÔ HÌNH HOÁ
invfreqs Bộ lọc tương tự phù hợp với đáp ứng tần số
invfreqz Bộ lọc rời rạc phù hợp với đáp ứng tần số
lpe Các hệ số tuyến tính đoán trước sự dụng phương pháp tự bù
prony Bộ lọc rời rạc Prony phù hợp với đáp ứng thời gian
stmcb
249
11. CÁC THAO TÁC ĐẶC BIỆT
decimate Lấy mẫu lại số liệu ở khoảng lấy mẫu thấp nhất
deconv Quay ngược trước
demod Mô hình hoá để chạy mô phỏng quá trình truyền tin
dpss Rời rạc miền không gian tần số
dpssclear Chuyển miền không gian tần số rời rạc vào niền cơ sở dữ
liệu
dpssload Nạp vào miền không gian tần số rời rạc từ miền cơ sở dữ
liệu
dpsssave Cất miền không gian tần số rời rạc vào miền cơ sở dữ liệu
interp Lấy mẫu lại số liệu ở khoảng lấy mẫu cao hơn
interp1 Nội suy một chiều chung cho toolbox
medfilt1 Sự lọc điểm giữa một chiều
modulate MOdul hoá để mô phỏng các quá trình truyền tin
resample Lấy mẫu lại tần số với khoảng lấy mẫu mới
specgram ảnh phổ, đối với tốc độ , tín hiệu
spline Nội suy theo hình hộp
vco Tạo giao động điều khiển áp
12. LÀM MẪU BỘ LỌC TƯƠNG TỰ THÔNG THẤP
besselap Làm mẫu bộ lọc Bessel
buttap Làm mẫu bộ lọc Butter
cheb1ap Làm mẫu bộ lọc Chebyshev dạng 1( Sai nhỏ ở giữa giải
thông)
cheb2ap Làm mẫu bộ lọc Chebyshev dạng 2( Sai nhỏ ở cuối giải
thông)
ellipap Làm mẫu bộ lọc dạng Ellip
250
13. CHUYỂN ĐỔI TẦN SỐ (DỊCH TẦN SỐ)
lp2bp Biến đổi bộ lọc thông thấp thành thông theo dải
lp2bs Biến đổi bộ lọc thông thấp thành thông đỉnh
lp2hp Biến đổi bộ lọc thông thấp thành thông cao
lp2lp Biến đổi bộ lọc thông thấp thành thông thấp
14. RỜI RẠC HOÁ BỘ LỌC
bilinear Sự chuyển đổi nủa tuyến tính với vùng được chọn trước
impinvar Chuyển đổi xung bất biến tương tự thành số
15.NHỮNG HÀM KHÁC
besself Thiết kế bộ lọc tương tự Bessel
conv2 quay hai chiều
cplxpair Vector đặt trước vào bộ số phức liên hợp
fft2 Biến đổi Fourier nhanh hai chiều
ifft2 Chuyển đổi ngược hai chiều Fourier nhanh
polystab Sự bên vững đa dạng
stan chấm điểm số liệu tần số rời rạc
strips Chấm điểm phóng ra
xcorr2 giao bù hai chiều
251
Tài liệu tham khảo
[1]. Nguyễn Quốc Trung(2006). Xử lý tín hiệu và lọc số. Hà Nội: NXB Khoa
Học và Kỹ thuật
[2]. John G. Proakis,Dimitris G.Manolakis(1996). Digital Signal Processing:
Principles, Algorithms, and Aplications.Third Edition. Prentice-Hall
[3]. Vinay K. Ingle, J. G. (2007). Digital Signal Processing Using Matlab.
Thomson.