251
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

Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

Embed Size (px)

Citation preview

Page 1: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 2: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 3: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 4: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 5: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

5

Page 6: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 7: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 8: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 9: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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, đỏ).

Page 10: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 11: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 12: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 13: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

13

4. Biểu diễn và biến đổi tín hiệu số trong Matlab

Page 14: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 15: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 16: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 17: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 18: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 19: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 20: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 21: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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%.

Page 22: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 23: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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).

Page 24: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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 .

Page 25: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 26: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 27: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao nă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 ≤≤− :

Page 28: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 29: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 30: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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).

Page 31: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 32: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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ề

Page 33: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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=

Page 34: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

==

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];

Page 35: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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');

Page 36: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

%

Page 37: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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])

Page 38: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 39: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 40: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)])

Page 41: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 42: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

)

Page 43: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 44: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 45: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 46: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 47: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 48: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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).

Page 49: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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ó:

Page 50: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 51: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 52: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao nă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:

Page 53: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 54: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 55: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 56: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 57: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao nă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);

Page 58: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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');

Page 59: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 60: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 61: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 62: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 63: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao nă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');

Page 64: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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= − + − = − − + − (*)

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

Page 65: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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);

Page 66: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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).

Page 67: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 68: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

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)

Page 69: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 70: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 71: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 72: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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|

Page 73: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 74: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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 đó

Page 75: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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]

Page 76: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 77: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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à :

Page 78: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

++=

−==

Page 79: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 80: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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]

Page 81: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 82: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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 :

Page 83: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 84: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 85: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 86: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao nă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−↔

Page 87: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 88: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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);

Page 89: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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');

Page 90: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 91: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 92: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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).

Page 93: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 94: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 95: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 96: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 97: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 98: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 99: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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ổ.

Page 100: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 101: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 102: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 103: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 104: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 105: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 106: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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))

Page 107: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 108: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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 ωω ω ω

ω ω

− < <=

> >

Page 109: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 110: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

ω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

ω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

Page 111: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao nă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 .

Page 112: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 113: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao nă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')

Page 114: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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');

Page 115: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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);

Page 116: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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);

Page 117: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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')

Page 118: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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')

Page 119: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 120: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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')

Page 121: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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));

Page 122: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

ω

∞−

−= =

−∑

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');

Page 123: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

ω−=

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

π

−= =−

Do đó:

( ) 4.0928 (0.05 0.5377) 4.0928 [0.05 ( 3.42)]ssy n cos n cos nπ π= − = −

Page 124: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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];

Page 125: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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');

Page 126: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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);

Page 127: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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);

Page 128: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 129: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 130: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 131: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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π+∞ −

=−∞

= ∑

Page 132: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 133: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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− =

Page 134: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

=

=

=

Page 135: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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= ∑

Page 136: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 137: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

=

−=

≤ ≤

Page 138: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 139: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 140: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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');

Page 141: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 142: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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');

Page 143: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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])

Page 144: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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])

Page 145: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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;

Page 146: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 147: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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])

Page 148: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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');

Page 149: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 150: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 151: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 152: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 153: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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]');

Page 154: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 155: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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]

Page 156: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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 :

Page 157: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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 :

Page 158: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 159: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 160: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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ị

Page 161: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 162: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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ụ:

Page 163: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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 đó:

Page 164: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 165: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 166: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 167: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 168: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 169: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 170: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 171: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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')

Page 172: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 173: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)(

π=

Page 174: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 175: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 176: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 177: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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ó:

Page 178: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

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

−= =

h(n)=h(6-n) vậy h(0)=h(6)=1, h(1)=h(5)=2, h(2)=h(4)=3

Page 179: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

−= =

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ó:

Page 180: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

−= =

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

Page 181: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

−= =

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:

Page 182: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao nă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:

Page 183: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

)

Page 184: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

−=

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 để

Page 185: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao nă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

−=

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ó:

Page 186: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

−=

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ố.

Page 187: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 188: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 189: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 190: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 191: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

191

Vậy ta có:

)7(05.0

)5(85.0

)4(2

1)3(

85.0)1(

05.0)( −−−+−+−+−−= nnnnnnh δ

πδ

πδδ

πδ

π

Page 192: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 193: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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);

Page 194: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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;

Page 195: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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');

Page 196: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 197: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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'])

Page 198: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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;

Page 199: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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');

Page 200: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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 ω

ω π

π ω π

π ω π

≤ ≤

=

<

<

Page 201: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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])

Page 202: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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')

Page 203: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 204: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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ế.

Page 205: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 206: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

πω =

Page 207: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 208: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 209: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 210: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 211: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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ó

Page 212: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 213: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 214: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 215: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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à:

Page 216: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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à:

Page 217: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 218: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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)

Page 219: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 220: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 221: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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;

Page 222: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 223: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 224: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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));

Page 225: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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);

Page 226: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 227: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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');

Page 228: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 229: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 230: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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).

Page 231: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 232: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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=

Page 233: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 234: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 235: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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ẽ])

Page 236: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

=

Page 237: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 238: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 239: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 240: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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:

Page 241: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 242: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 243: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.

Page 244: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 245: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao nă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

Page 246: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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ỳ ý

Page 247: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 248: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 249: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 250: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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

Page 251: Chương trình Bồi dưỡng công nghệ mới Thiết kế bộ lọc sốuet.vnu.edu.vn/~tantd/DSP/Thiet_ke_bo_loc_so.pdf · 2009-08-20 · (Dùng bồi dưỡng nâng cao năng

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.