Toàn bộ nội duuq của x ử lý sô tín hiệu tử phẩn cơ sỏ đến năng cao, từ việc mô tả và biểu diễn tín hiệu đến các quá trình x ử lý đa tốc độ và dàn lọc, cũng như các hệ thống xử lý tín hiệ
Trang 2Cuốn sách này là phần quan trọng nhấí của bộ sách " x ử lý số tín hiệu" Biên soạn cuốn sách nàv, chúng tôi muốn thể hiện cúc nguyên tắc, tính chất, các phép biến đổi và các ihĩg dụng của xử lý sô' tín hiệu bằng phần mềm máy tính PC Toàn bộ nội duuq của x ử lý sô tín hiệu tử phẩn cơ sỏ đến năng cao, từ việc mô tả và biểu diễn tín hiệu đến các quá trình x ử lý đa tốc độ và dàn lọc, cũng như các hệ thống xử lý tín hiệu thời gian thực trên
"chíp” xử lý SỐTMS320C6711 cũng như các ứng dụng thực tế của DSP như phân tích phổ, lọc số, biến đổi AID và D/A nhanh, từ kỹ thuật điều c h ế đến các máy p h á t quét tần sô' đã được thể hiện trên 14 bài thí nghiệm mô phỏng
và mô hình hoá bằng ngôn ngữ MATLAB kết hợp với c
Các tlĩí nghiệm tiến hành trên phần mềm máy tính được gọi là các thí nghiệm ảo Với phần mềm MATLAB, các thí nghiệm này được thực lìiện một cách hết sức mềm dẻo và linh lỉọat Các tính chất và các thông sô' của hệ thống xử lý được thay đổi, thử nghiệm và tính toán hết sức nlìơnlì chóng và chính xác Do vậy hệ thống xử lý được đánh giá, xem xét dưới nhiều góc độ trước khi đưa vào thực thi thực tế Về phương diện này thì phần mềm MATLAB là một công cụ hàng đầu Phần mềm bậc cao này dược các bộ chuyển đổi dữ ỉiệu thời gian thực (KTDX) sử dụng đ ể cung cấp cãc giao diện giữa máy tính PC với các bộ xử lý sô' DSK như C671L C6713, hay C670ẨEVM đ ể thực hiện các thí nghiệm và các hệ thống íhóng tin thòi gian thực.
Mỗi thí nghiệm, đều có phẩn tóm tắt lý thuyết, hướng dản viết chương trình điều hành và hướng dẫn thực hiện, ciiổi cùng là kết quả thể hiệ n trên màn hình máy tínlì hoặc trên máy hiện sóng Với khoảng 100 chương trình gốc, hàng vài trăm hàm MATLAB và hàng trăm bài tập thực hành, bạn đọc
có th ể tự mình biến lìoá, phát triển thành lừìỉìg trăm các chương trình khác, hoặc vận dụng các chương trình đó đ ể giải quyết các bài toán do chính nghê nghiệp củơ các bạn đề ra Đấy chính là sức hấp dẫn và ỷ nghĩa quan trọng
mà chúng tôi muốn dề cập khi soạn thảo cuốn sách này.
Trang 3Toàn bộ nội dung của chươní> trình xử lý só tín hiệu từ cơ sở đến nâng cao được tóm gọn trong 14 thí nghiệm: tronỊị dó thí nghiệm 1 và 2 giành đ ể nghiên cứu tín hiệu và cúc hệ thống LTỈ trái lĩnh vực thòi gian; thí nghiệm 3, 4, 5 vả 6 dùng đê nghiên cứu, phân rích và l)iểu diễn tín hiệu cũng như hệ thống L T I trên lĩnh vực tần số; íhí Ii^liiệm H, 9 và 10 dùng riêng cho thiết k ế các h ạ i mạch lọc s ố ; nhiểii công cụ thiết k ế mạch lọc mới đã dược đưa vào chương 10, chẳng hạn như Giao diện đổ họa người dùng (GUI) và các trình tiện ích cũng như các công cụ đ ể phân rích, thiết k ế mạch lọc, thiết k ế hệ thống như PDATool, PVTool vù SPTool Thí nghiệm 13 dùng d ể nghiên cứií các hệ thống x ử lý sổ đa tốc độ và dàn lọc Thí nghiệm 14 dùng
đ ể xử lý tín hiệu thời gian thực trên DSK TM S320C67Ỉỉ Chúng tôi giành trọn thí nghiệm 7 đ ể nghiên cứu, x ử lý sô' các tín hiệu thời gian liên tục; trong đó nghiên cứu kỹ càng các kỹ thuật chuyển dổi AID và DIA tốc độ cao cũng như các hệ thống lấy mầu quá áp dụng cho các hệ thống xử lý tín hiệu thời gian thực Toàn bộ thí nghiệm 11 dừng đ ể nghiên cíãi và thực thi CCIC loại cấu trúc khác nhau cho các mạch lọc SỐIIR và FIR Toàn bộ thí nghiệm
12 dùng đ ể x ử ỉv các tín hiệu thống kê và tín hiệu hình ảnh.
Với 14 bài thí nghiệm trên phần mềm MATLAB và trên DSK 320C 67ỈỈ này, bạn đọc sẽ thấy sức hấp dẫn và hiệu quả tuyệt vời mà ngôn ngữ lập trinh kỹ thuật phần mềm bậc cao này mang lại Các kết quả thực tế cũng như nhĩmg kiến thức mà bạn thu nhận trong qíia trình tiến hành thi nghiệm sẽ kích thích sự say mé hiểu biết vả khả năng sáng tạo, giúp bạn nhận thức rõ hơn tầm quan trọng cũng như tính cấn thiết và sức mạnh của cônỊ nghệ xử lý s ố tín hiệu tiên tiến này.
Chúng tôi mong miiốn cuốn sách cập nhật dược nhiTỉĩg kiến thức cũng như nliữtĩg phiên bản mới nhất về xử lý số tín hiệu và về phần mềm MATLAB, đồng thời lại muốn cuốn sáclỉ nhanh clìónịỉ đến tay người đọc, nên trmg quâ trình soạn thảo khó tránh đươc nhữìì^ khiếm khuyết Chúng tôi xin chân thành cảm ơn và mong được quỷ dộc giả góp ỷ đ ể lần tái bản sau cucn sách được hoàn thiện hơn Các ỷ kiến đóng góp xin gỉrì theo địa chỉ: N h ì xuất bản Khoa học và K ỹ thuật 70 Trần Hưiĩịỉ Đạo Hà Nội.
nr» ■' » 9
Tác giả
Trang 5LỜI NÓI ĐẦU
Sau nhiều lần xuất bản, và tái bản, bộ sách "Xử lý số tín hiệu trên máy tính PC với M A T L A B " đã được rất nhiềii người sử dụng; từ sinh viên của các trường Đại học đến các công tihíììi và các kỹ sư thực hành; cả ngành Điện tử Viễn thông lẫn Công nghệ Thóììg tin Trong sô'các cuốn sách
đó, cuốn "Thực hành x ử lý số tín hiệu trên máy tính PC với M A TLA B " là cuốn được quan tám nhiều hơn cả Vì vậy, đ ể cỉcip ứng nhu cầu học tập ngày càng cao của bạn đọc cũng như sự lăng trưởng mạnh m ẽ của công nghệ xử lý tín hiệu, trong lần xuất bản này, tác iịiả nhận thấy cẩn đổi tên mới cho cô đọng hơn; đó là "Thực hành x ử lý sô tín hiệu với M A TLA B "; đồng thời cần bổ sung và cập nhật thêm những kiến thức mới, cụ thể là:
1 Đưa thêm hai th í nghiệm mói là:
• Thí nghiệm thứ 12: x ử lý tín hiệu thống kê.
• Thí nghiệm thứ 14: x ử lý tín hiệu thời gian thực dùng
TMS320C6711.
2 Tăng cường và b ổ sung nhiều chuyên mục mói:
• Giao diện đồ họa người dùng (GUI) và các trình tiện ích cũng như các công cụ đ ể phân tích, thiết k ể mạch lọc, thiết k ế hệ thống như P D À T ooỉ , PVTool và SPTool.
• M ã hoá tiếng nói và tín hiệu âm thanh dìiìig dàn lọc QMF
Trang 6Dãy xung đơn vị được ký hiệu bằng ô[n] và được xác định từ
Trang 7x[n] = Acos(co,,n + O) ( 1 10)
Trong đó A, co„ và (T’ là những số thực được gọi là biên độ, tần sô góc
và pha ban đẩu của dãy hàm số sine x[n] f„ = (ừJ2n là tần số.
Dãy sin phức và sin thực là những dãy tuần hoàn với chu kỳ N nếu:
CO N = 2iĩr
trong đó N là số nguyên dưcfng còn r là một số nguyên bất kỳ Giá trị N nhỏ
nhất thoả mãn điều kiện (1.11) là chu kỳ cơ bản của dãy x[n] đó.
• Tích hai dãy dữ liệu x[n] và h[n] có cùng chiều dài N sẽ thu
được dãy dữ liệu y[n] có cùng chiều dài N và được thực hiện bằng hệ thức:
y[n] = x[n] h[n] (1.12)x[n]
h[n]
— ►y[n] = x[n].h[n]
• Cộng hai dãy dữ iiệu x[n] với h[n] có cùng chiều dài N sẽ thu
được dãy dữ liệu y[n] có cùng chiều dài N và được thực hiện bằng hệ thức:
Trang 8Phan ỉh u c20
Ịe ĩ ĩ l ĩ ỉ .Ọ?99o,e q o q q q o o q-2
Ổcí>è
Hình 1.2 Mô tả phần thực và phần ảo của tín hiệu sin phức (1.20).
Để phát ra một dãy luỹ thừa thực, ta dùng chưcíng trình P1.3 sau đây
Trang 9o
oo
2 Điều gì xẩy ra nếu thay c=(l/2)+(pi/6)*j
3 Chạy P1.3 phát ra dãy luỹ thừa thực
4 Sự khác nhau giữa toán tử số học và A.
5 Bạn có thể dùng lệnh Matlab sum(S.*S) để tính năng lượng của một
dãy số thực S[n] Hãy dùng lệnh này để tính năng lượng của dãy X
trong chương trình Pl-3 cho trường hợp a = 0,9 và K = 20
1.1.3 Các tín hiệu thời gian - rời rạc dạng sin thực
Để phát ra tín hiệu sin thực, trong MATLAB dùng người ta sử dụng các hàm số cos và sin Chương trình P1.4 sau đây cho phép mô tả cách phát
ra tín hiệu sin thực thời gian - rời rạc
Trang 10Hình 1.1 Dãy xung đơn vị.
1 Biến đổi chưcỉng trình trên để tạo ra một dãy xung đcfn vị bị trễ 11 mẫu Chạy chương trình đã được biến đổi và vẽ dãy mẫu đó
2 Biến đổi chưcmg trình P1 để phát ra dãy nhẩy bậc đơn vị S[n] Chạy
và hiển thị dãy nhảy bậc đó
3 Biến đổi chưcmg trình P1 để tạo dãy nhẩy bậc đơn vị sd[n] sớm 7 mẫu Chạy chưcrtig trình vừa biến đổi và hiển thị dãy đó
1.1.2 Biểu diễn tín hiệu sin phức và sin thực
Dãy sin phức được mô tả bằng phưong trình:
ơon+j(cDon+0)
cos(coon + O) + j A sin(coon + d)) (1.17)Dãy sin thực :
Trang 11với A, co,| và o là các số thực A là biên độ ; ©(, là tần số góc; o là pha ban đầu f(,=a)(/27r là tần số.
Các dãy sin phức và sin thực là những dãy tuần hoàn nếu (0(,N là một
số nguyên bội của 271 Có nghĩa là;
Trang 12► a y[n] = a.x[n ►
• Ngược thời gian hay còn gọi là đổi chiều tín hiệu, hoặc phép
chuyển vị của một dãy có chiều dài vô hạn được thực hiện bằng hệ thức:
y[n] = x[-n' (1.15)
• Làm trễ dãy x[n] có chiều dài vô hạn một lượng M sẽ thu được
dãy y[n] có chiều dài vô hạn và được thực hiện nhờ biểu thức:
trong đó M là một số nguyên dương Đây cũng chính là phép dịch dãy x[n] về phía phải trục thời gian M mẫu và được ký hiệu là Trường hợp M = 1 thì được gọi là trễ đơn vị và ký hiệu z
Nếu M lấy dấu âm thì được gọi là sớm, tương đưcfng với việc dịch
dãy vế phía trái M mẫu trên trục thríi gian
1.1 CÁC TÍN HIỆU C ơ SỞ
1.1.1 Dây xung đơn vị ô[n]
Dãy xung đofn vị có chiều dài N mẫu được phát ra nhờ lệnh
ổ = [ ỉ zeros(I,N-l)J
ô =
1 0 0 0 0 0 0 0 0 0
Trang 13Dãy xung đơn vị 6d[n] có chiều dài N bị trễ M mẫu (M<N) có thể phát ra nhờ lệnh
Trang 14title('Dãy tín hiệu sin');
xlabel('Chỉ số thời gian n');
Trang 15Bài tập
1 Chạy chưoíng trình P l-4 để phát ra dãy sin thực và hiển thị dãy đó
2 Tần số của dãy đã phát bằng bao nhiêu và làm thế nào để thay đổi được tần số đó? Thông số nào trong chương trình biểu thị pha của dãy đã phát? Thông số nào biểu thị biên độ của dãy đã phát? Chu kỳ của dãy này bằng bao nhiêu?
3 Chiều dài của dãy phát bằng bao nhiêu và làm thế nào thay đổi được chiều dài đó?
4 Tính công suất trung bình của dãy sin đã phát
5 Biến đổi chưoíng trình P l-4 để phát ra dãy sin thực có tần số 0,9 v à l,l và hiển thị các dãy đó So sánh các dãy mới này với dãy đã phát trong chưcỉng trình PÌ-4
6 Biến đổi chưcíng trình Pl-4 để phát và hiển thị dãy có chiều dài 50 mẫu, tần số 0,08; biên độ 2,5 và độ dịch pha 90"
Chu kỳ của dãy mới này bằng bao nhiêu?
6 Thay lệnh stem bằng lệnh plot và chạy lại chương trình Sự khác nhau
giữa hình vẽ mới và hình đã hiển thị trong bài tập 1 là gì?
7 Thay lệnh stem bằng lệnh stairs và chạy lại chương trình Sự khác nhau
giữa hình vẽ mới và hình đã hiển thị trong bài tập 1 và 6 là gì?
1.1.4 Các tín hiệu ngẫu nhiên thời gian rời rạc
Tín hiệu ngẫu nhiên thời gian rời rạc có chiều dài N mẫu , phân bố đều đặn trong khoảng [0,1] được phát ra nhờ lệnh MATLAB
Cũng giống như vậy, nhưng lệnh
lại phát ra một dãy ngẫu nhiên dạng Gauss có giá trị trung bình bằng không
và phương sai bằng đơn vị
Trang 16Bài tập
1 Hãy viết chương trình MATLAB để phát và hiển thị tín hiệu ngẫu nhiên
có chiều dài N = 100 mẫu phân bố đều đặn trong khoảng [-2, 2]
2 Hãy viết chương trình MATLAB để phát và hiển thị tín hiệu ngẫu nhiên dạng Gauss có chiều dài N = 75 mẫu phân bô' đều đặn với giá trị trung bình bằng 0 và phương sai bằng 3
3 Viết chưcỉng trình MATLAB để phát và hiển thị 5 dãy mẫu của tín hiệu sin thực ngẫu nhiên có chiều dài 31:
{ X [ n ] Ị = ỊA.cos(co„n+(p)Ị (1-24)
ở đây biên độ A và pha (p là những biến số ngẫu nhiên độc lập thống
kê với xác suất phân bố đồng đều trong vùng 0 < A < 4 đối với biên độ và trong vùng 0 < (p < 2ti đối với pha
1.2 CÁC PHÉP BIẾN ĐỔI TÍN HIỆU
1.2.1 Làm nhản m ột tín hiệu
Giả sử tín hiệu S[n] bị nhiễm tạp âm ngẫu nhiên d[n], khi đó ta có:
Bây giờ phải tác động vào tín hiệu x[n] để tạo ra một tín hiệu y[n]
có dạng gần nhất với tín hiệu gốc S[n] Để thực hiện mục đích đó, phương pháp đơn giản nhất là phát ra 1 mẫu lối ra bằng cách lấy trung bình một số mẫu xung quanh mẫu tại thời điểm n Chẳng hạn lấy trung bình 3 mẫu lối vào để tạo thành mẫu lối ra y[n]
y[n]=l/3{x[n-l] + x[n] +x[n+l]) (1.26)
Để thực hiện phép lấy trung bình này ta dùng chương trình Pl-5
Trang 17xlabel('Chỉ số thời gian n'); ylabel('Biên độ ');
Hình 1.5a và b biểu thị tín hiệu sau khi đã được làm nhẵn với các bước lấy trung bình khác nhau
Trang 18Lay trung^ỗnln^S ^ l u Toi vao
Hình 1.5a Tín hiệu sau khi lấy trung bình 3 mẫu.
Hình 1.5b Làm nhẵn tín hiệu bằng cách lấy trung bình 4 mẫu.
Trang 19Bài tập
1 Chạy chưcíng trình Pl-5 với ồn tạp ngẫu nhiên
d[n] = 0,5rand( 100,1)
và hiển thị tất cả các tín hiệu
2 Cho biết dạng của tín hiệu S[n] và d[n]
3 Có thể dùng lệnh x=s+d để tạo ra tín hiệu nhiễm ồn tạp được không?
Tại sao?
4 Quan hệ giữa x l ,x2 ,x3 và X là gì?
5 Mục đích của lệnh legend là gì?
1.2.2 Tín hiệu bị điều chế biên độ
Tín hiệu tần số cao x jn ] = cos(co^,n) , còn gọi là sóng mang, bị điều
chế biên độ bởi một tín hiệu tần số thấp khác Xl[h] = cos(o)Ln) Sau khi điều chế, ta thu đươc tín hiệu y[n] có dạng:
y[n] = A(l+/n.XL(n)).xJn] = A(l+/7ỉcos((OLn))cos(co,,n) (1.27)
Trong đó m là hệ số điều chế, được chọn sao cho (l+m.XL(n)) dương với mọi n.4
Để thực hiện điều chế biên độ, ta dùng chưcfng trình Pl-6
Trang 20Đồ thị tín hiệu điều chế biên độ cho trên hình 1.6.
Hình 1.6 Tín hiệu điều chế biên độ của chương trình 1.6.
Bài tập :
1 Chạy chương trình P1.6 để phát và hiển thị tín hiệu bị điều chế biên độ y[n] với các giá trị khác nhau của fl, m.
2 Sự khác nhau giữa * và * là gì?
1.2.3 Máy phát tín hiệu sô hình sin
Máy phát tín hiệu số dạng hình sin có sơ đồ dòng tín hiệu cho trên hình 1.7 Máy phát này thoả mãn phương trình trụng thái (1.28)
Trang 21(ỉ^ o s,[n
H ìn h 1.7 Sơ đồ thực thi máy phát tín hiệu số hình sin-cosin
Bằng cách thay đổi giá trị của COS0, ta có thể thay đổi biên độ của sóng phát
ra Chương trình P l-7 sau đây sẽ phát ra tín hiệu sóng sin và cosin cho 50
mẫu đầu tiên, ứng với COS0 = 0,9
stem (k-l,yl/abs(yl(7))); axis([0 5 0 - l.l l.l]);
xlabel('Chỉ số thời gian'); ylabel('Biên độ');
figure(2)
stem(k-l,y2/abs(y2(3))); axis([0 50-1.1 1.1]);
xlabel('Chỉ sô' thời gian'); ylabel(’Biên độ');
Hình 1.8 và hình 1.9 cho thấy dạng tín hiệu hình sin phár ra từ chưofng trình này với điều kiện ban đầu s l[-l] = s2[ 1] = 0,1
Tín hiệu lối ra bằng không nếu các điều kiện ban đầu bằng không Các điều kiện ban đầu khác không nhưng khác nhau sẽ ảnh hưcíng đến biên
độ và pha lên tín hiệu phát
Trang 22o
Ôo
J - L
oo
Ô
o
oÒ
o
ỉo
1 Chạy chưcíng trình P l-7 nhưng với các điều kiện ban đầu bằng không và
khác không và khác nhau Bình luận các kết quả thu được
Trang 232 Viết chương trình phát ra tín hiệu số hình sin với C O S 0 = 0,5 Chạy chưoíng trình vừa viết với các điều kiện ban đầu khác nhau và nhận xét kết quả thu được.
1.2.4 P h át ra một tín hiệu sin quét tần sô
Vì tần số của tín hiệu sin là đạo hàm của pha theo thời gian, nên để phát một tín hiệu sin quét tần số một cách tuyến tính với thời gian thì đối số của tín hiệu hình sin phải là một hàm sô' bậc hai của thời gian Giả sử đối số
Trang 241.5 1 -1 -1 - r Tin hieu sin q uet ta n so-ì - r I I
1 Chạy chương trình Pl-8 để phát ra một tín hiệu sin quét tần số x[n]
2 Tìm tần số cực đại và cực tiểu của tín hiệu đó
3 Dùng chương trình Pl-8 trên để tạo ra tín hiệu quét tần số từ 0.1 đến0.3
Trang 25THÍ NGHIỆM 2 NGHIÊN ( ủ u TÍNH CHẤT CÁC HỆ THỐNG LTI
2.1 TÓM TẮT LỴ THUYẾT
Hệ thống thời gian rời rạc thực hiện phép ánh xạ tín hiệu lối vào với các giá trị x[n] thành tín hiệu rời rạc lối ra vái những tính chất mong muốn bằng cách áp dụng những thuật toán cho trước Mục tiêu của thí nghiệm 2 này là tiến hành mô phỏng một số hệ thống rời rạc tuyến tính và bất biến với thời gian (LTI: Linear Time- Invariable) đơ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 Các hệ thống này được đặc trưng bằng đáp ứng xung h[n] và được mô hình hoá trên hình 2.1
x[n
h[n
y[n]
Hình 2.1 Mô hình hoá hệ thống LTI.
• Quan hệ vào /ra của hệ thống LTĨ được xác định bởi tổng nhân chập {2.1)
h[n] = h|[n]*h2[nNếu hai hệ thống ghép nối tiếp nhau sao cho:
(2.3)
Trang 26h,[n]*hJn] = ô[n] (2.4)
thì hệ thống LTI có đáp ứng xung h2[n] được gọi là nghịch đảo của hệ thống
LTI có đáp ứng xung h|[n] và ngược lại
Hình 2.2 Mô hình hoá hai hệ thống LTI ghép nối tiếp.
Một hệ thống LTI được gọi là ổn định theo nghĩa BIBO (Bounded Input, Bounded Output: Lối vào có giá trị xác định thì lối ra cũng có giá trị xác định) nếu đáp ứng xung của nó thoả mãn điều kiện:
• Quan hệ vào/ra của một hệ thống LTĨ còn được biểu thị bằng
phương trình sai phân hộ số hằng số dạng:
Trang 27y[n,-l], y[no-2], , y[no-N].
Hệ thống thời gian rời rạc được mô tả bằng phưotig trình sai phân (2.8)
có đáp ứng xung vô hạn\ nên nó được gọi là hệ thống IIR (Infinite Impulse
Hệ thống thời gian rời rạc được gọi là tuyến tính nếu đáp ứng
lên một tổng bằng tổng các đáp ứng; hay nói khác đi, nếu yj[n]
và y2[n] là các đáp ứng lên các tín hiệu lối vào x,[n] và X2[n] thì đối với lối vào tổng:
Trang 28• Hệ thống được gọi là bất biến đối với thời gian nếu y|[n] là
đáp ứng đối với lối vào Xi[n], thì đáp ứng đối với phiên bản trễ của tín hiệu lối vào:»
sẽ là
ở đây ri() là số nguyên dương hoặc âm Nếu hệ thức trên không thoả mãn thì
hệ thống được gọi là thay đổi đối với thời gian.
Hệ thống vừa thoả mãn tính chất tuyến tính vừa bất biến đối với thời
gian thì được gọi là hệ thống LTI.
• Trong MATLAB, để mô phỏng các hệ thống thời gian rời rạc LTI nhân quả có phương trình sai phân (2.7), ta có thể dùng
lệnh filter Lệnh này có rất nhiều phiên bản, chẳng hạn khi ta
den = [ aỉ, a, „ a^ĩ
là các vectơ hệ số của hệ thống và y là vectơ tín hiệu lối ra; cũng là nghiệm của phương trình sai phân đối với lối vào X với các điều kiện ban đầu bằng không; có nghĩa là:
y[-i] = y[-2] = = y[-N] = 0
Tín hiệu lối ra y[n] cũng có thể được tính nếu ta dùng lệnh:
y = filter(num, den, X, ic)trong đó :
ic = [y[-l] y [-2 ] y[-N]]
là vectơ của các điều kiên ban đầu
Trang 29Để truy cập các điều kiện cuối cùng ta dùng lệnh:
[y,fc] = filter(num,den,x, ic)
• Tín hiệu lối ra y[n] của hệ thống LTI có đáp ứng xung đơn vị h[n] với lối vào x[n] cũng được xác định bằng lệnh conv(h,x).
• Đáp íừig xung đơn vị h[nj của một hệ thống được xác định
bằng lệnh:
h = impz(num,den,N+l)2.2 HỆ THỐNG TRƯNG BÌNH ĐỘNG
Hệ thống trung bình động bậc M có phương trình sai phân:
1 M - I
Hệ thống này dùng để lấy trung bình trọng íỡ 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 Matlab P2-1 thực hiện phép lấy trung bình động
Trang 30subplot(2,2,3);plot(n,x);axis([0,100,-2,2]);
subplot(2,2,4);plot(n,y);axis([0,100,-2,2]);
Các đồ thị cho trên hình thị trên hình 2.3
5Ũ
ChLsp Ằ^pị T in hleu vao n
5 0 Chi so thoi gian n
HlNIM
5Ũ Chỉ ẬO tKoi giạn n Tin nìeu ra
1 Chạy chưcíng trình trên với M=2; và cho biết thành phần nào của tín hiệu vào x[n] đã bị loại bỏ bởi hệ thống thời gian rời rạc y[n]
2 Nếu thay y[n]=l/2(x[n]+x[n-l]) bằng y[n]=l/2(x[n]-x[n-l]) thì thành phần nào của tín hiệu bị loại bỏ
3 Chạy chương trình trên với các giá trị M khác nhau và với các tần số của sl và s2 khác Quan sát tín hiệu ra y[n], nhận xét kết quả
4 Chạy chưoíng trình trên với tín hiệu vào là sin quét tần số có chiều dài
101, tần số cực tiểu bằng 0 cực đại 0.5 Trả lời các câu hỏi Ivà 2 đối với các tín hiệu vào này
Trang 312.3 CÁC HỆ THỐNG TUYẾN TÍNH VÀ PHI TUyẾN
Chẳng hạn nghiên cứu tính chất tuyến tính của hệ thống
y[n] - 0.4y(n-l) + 0.75y(n-2) =
= 2.2403x[n]+2.4908x[n-l] + 2.2403x(n-2) (2.15)
Chưcmg trình P9 dùng để mô phỏng hệ thống này với 3 tín hiệu vào
là x l ( n ) ; x2(n) và x[n ]= axl(n) + bx2(n) và tính và vẽ đồ thị các tín hiệu lối
subplot(3,l,3); stem(n,d);title('tín hiệu sai số d')
Các tín hiêu đươc biểu diễn trển hình 2.4
% điều kiện ban đầu bằng không
%tính yl(n)
%tính y2(n)
%tính y[n]
%tính sai số lối ra
Trang 32Loi ra do loi vao trong so ; a ■ [nỊ + b ■ X 2 [n]
2.4 XÁC ĐỊNH ĐÁP ÚKG XUNG ĐƠN VỊ CỦA HỆ THỐNG LTI
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 LTI Chương trình P2-3 cho phép tính và vẽ đáp ứng xung của hệ thống có phương trình sai phân sau:
Trang 33y[n] - 0.4y(n-l) + 0.75y(n-2) = 2.2403x[n| + 2.4908x[n -1] +
1 Chạy chương trình P2-3 để tạo đáp ứng xung dcfn vị của hệ đã cho
2 Dùng chương trình P2-3 để phát ra 45 mẫu đầu tiên của đáp ứng của
hệ Ihống LTI nhân quả sau;
y[n] + 0.71y(nl) 0.46y(n2) 0.62y(n3) = 0.9x[n] 0.45x[nl]
0.35x(n 2) + 0.002x(n 3) (2.17)
Trang 343 Viết chưofng trình trong MATLAB để phát đáp ứng xung đcfn vị của
hệ thống LTI nhân quả ở câu 2 bằng cách sử dụng lệnh íilter Tính
và vẽ 40 mẫu đầu tiên So sánh kết quả thu được với câu 2
4 Viết chưoìig trình Matlab tìm đáp ứng của hệ thống đối với xung nhảy bậc của hệ thống đã cho trong chương trình P2-3
2.5 CÁC HỆ THỐNG BẤT BIẾN v ớ i t h ờ i g i a n
Nhắc lại tính chất bất biến của một hệ thống rời rạc:
Nếu y 1 (n) là đáp ứng của hệ thống với lối vào X1 (n) thì đáp ứng của
hệ thống với tín hiệu vào:
Bây giờ ta nghiên cứu tính bất biến với thời gian của hệ thống thời gian rời rạc có phương trình sai phân dạng:
Trang 35Đồ thị'các tín hiệu cho trên hình 2.6.• »
Tin hieu ỉoi ra y[n]
1
i i . _.l , 150
Trang 36Bài tập
1 Chạy chương trình P2-4 và so sánh các tín hiệu lối ra y[n] và y[n-rio với n„ =10 Các tín hiệu đó liên hệ với nhau như thế nào ? Hệ thống
có bất biến với thời gian không?
2 Xét một hệ thống khác được đặc trưng bằng phương trình:
y[n] = nx[n] + x[n-l] (2.20)
Hãy biến đổi chưcíng trình P2-4 để mô phỏng hệ thống này và xác định xem hê thống này có bất biến với thời gian không ?
3 Biến đổi chưong trình P2-3 để thử tính chất tuyến tính của hệ thống
có phương trình sai phân (2.20) mới này
2.6 GHÉP NỐI TIẾP CÁC HỆ TH ốN G LTI
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ưcí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:
y,[n] +0,9yi[n-l]+0,8yi[n-2] = 0,3x[n]-0.3x[n-l]+0,4x[n-2]
(2.21)và
y2Ín] + 0,7y2[n-l] + 0,85y2[n-2] = 0,2y,[n] - 0.5y,[n-l] + 0,3y,[n-2]
(2.22)
để thu được hệ thống bậc 4 có phương trình sai phân:
y[n] + l,6 y [n -l] + 2,28y[n-2] + l,325y[n-3] + 0,68y[n-4] =
= 0,06x[n] - 0,19x[n-l] + 0,27x[n-2] - 0,26x[n-3] + 0,12x[n-4] (2.23)
Chưcmg trình P2-5 mô phỏng hệ thống bậc 4 với phương trình sai phân (2.23) và hộ thống nối tiếp hai hệ thống bậc hai (2.22) với (2.20) 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 (2.23) có tín hiệu ra là 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 (2.21) để tìm tín hiệu ra Yiín] Tiếp đến dùng y,[n] làm tín hiệu lối vào cho hệ thống bậc hai có phương trình sai
Trang 37phân (2.22) để tìm lối ra y2[n] Cuối cùng lấy hiệu số giữa tín hiệu lối ra y[n^ với y2[n] để xác định sai số thực hiện Tất cả các tín hiệu được hiển thị trên hình 2.7.
xlabel('Chỉ số thời gian n'); ylabel('Biên độ’);
titIe('Tín hiệu sai số'); grid;
Đồ thị các tín hiệu cho trên hình 2.7
Trang 38Dãy y[n] có giống dãy y2[n] không?
2 Làm lại bài tập 1 nhưng bây giờ tín hiệu vào x[n] là một dãy sin thực
3 Làm lại bài tập 1 nhưng với các điều kiện ban đầu ic, ic l và ic2 bất kỳ
4 Biến đổi chương trình P2-5 để lặp lại cùng các thủ tục nhưng đảo ngược thứ tự thực hiện các hệ thống bậc 2 và với các điều kiện ban đầu bằng không Các tín hiệu lối ra có khác nhau không?
5 Lặp lại bài tập 4 với các điều kiện ban đầu ic, icl và ic2 khấc không bất kỳ
6 Dùng hàm lọc filter, viết chưorng trình tính và vẽ các tín hiệu lối ra y|[n]
và y2[n] thoả mãn các phưong trình sai phân sau:
và
y,[n] = 0,5x[n] + 0,27x[n-l] + 0,77x[n-2] (2.24)
Trang 39y2[n] = 0,45x[n] + 0,5x[n-l] + 0,45x[n-2] +
+ 0,53y[n-l] - 0,46y[n-2] (2.25)với tín hiệu lối vào:
x[n] = cos(207xn/256) + ớos(2007in/256), với 0 < n < 29 (2.26)
2.7 TÍNH ỔN ĐỊNH CỦA CÁC HỆ THỐNG LTI
Như đã nói, một hệ thống LTI ổn định theo nghĩa BIBO khi và chỉ khi đáp ứng xung đcfn vị của nó có tổng tuyệt đối Đối với hệ thống IIR thì điều kiện cần để hệ thống này ổn định là đáp ứng xung của nó phải suy giảm tới không khi số lượng mẫu đủ lớn
Chương trình MATLAB P2-6 được sử dụng đẻ tính tổng các giá trị tuyệt đối của đáp ứng xung đơn vị của một hệ thống LTI nhân quả IIR Chưcmg trình này tính N mẫu của đáp ứng xung đơn vị được đánh giá theo công thức:
ở đây h[n] là đáp ứng xung đơn vị của hệ thống LTĨ nhân quả có phương trình sai phân:
y[n] = x[n] - 0,8x[n-l] - l,5y[n-l] - 0,9y[n-2] (2.28)
Trang 40for k = 1;N+1;
parsum = parsum + abs(h(k));
if abs(h(k)) < 10^(-6), break, end
end
% Vẽ đáp ứng xung đcfn vị
n = 0:N;
stem(n,h)
xlabel('Chỉ số thời gian n'); ylabel('Biên độ');
Title('Đáp ứng xung đơn vị');
% In giá trị tuyệt đối của (h(k))
dispCValue =');disp(abs(h(k)));
Đồ thị của đáp ứng xung của hệ thống trong chương trình P2-6 này cho trên hình 2.8 Kết quả tính giá trị tuyệt đối
lh(K)l = 1.6761e-005Dap ung xung don vi
Hình 2.8 Đáp ứng xung đơn vị của hệ thống LTI
trong chương trình P2-6
Bài tập
1 Mục đích của lện h /o r và end là gì?
2 Mục đích của lệnh break là gì?