Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Đại cương Thực hành xử lý số tín hiệu với matlab...

Tài liệu Thực hành xử lý số tín hiệu với matlab

.PDF
419
46
133

Mô tả:

TS. H Ồ V Ă N S U N G Q /t ự ỉe h à n h XỬ LÝ SỐ TÍN HIỆU VỠI MATLAB NHÀ XUẤT BẢ N K H O A HỌC VÀ KỸ THUẬT HÀ NÔI • Đổ thị và đồ họa 2-D, 3-D. Với những phần bổ sun^ /lói trên, liên lần xuất bản này 'Sitốn sách cập nhật được một cách tươnịi dối đầy đủ nliữii^ kiến thức hiện cíại nhất về "Xử lý sô tín hiệu". Các kiến thức đó được trình bẩv một cách chật chẽ, cô đọng trong 14 thí nghiệm; gồm cả các thí nghiệm ảo lẫn các thí n^ììiệm thời gian thực đ ể người đọc dễ cảm n/ìận, dễ tiếp thu. Cuố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. Toà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ả LỜ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 ATLAB " 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 ATLAB"; đồ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 5 -kênh. • Thiết k ế và thực thỉ hệ thống truyền thông đa sóng mang o p d m i d m t '. • Thiết k ế và thực thi bộ lọc FIR đa dải thời gian thực dùng DSK TMS320C671I. • Thiết k ế và thực thi các bộ cán hằng bậc cao dùng MATLAB và D SK TNM S320C67ỈỈ. 3. N hiều p h ụ lục mới cũng đã được đưa thêm vào: • Mảng và các phép toán trên mảng • Các phép tính sô'phức. K sn (1.4) = n = -K Công suất trung bình của một dãy không tuần hoàn x[n] được xác định bằng công thức: 1 av = lim K ^ ocK + 1 Công suất trung bình cửa dãy tuần hoàn x[n] với chu kỳ N được cho b ở i; N p = ^av ( 1.6 ) N n=0 Dãy xung đơn vị được ký hiệu bằng ô[n] và được xác định từ biểu thức; ô[n] = 1, khi n = 0 0, khi n 0 (1.7) Dãy nhẩy bậc đơn vị ký hiệu u[n] được xác định từ biểu thức: u[n] = 1, khi n > 0 0, khi n < 0 ( 1.8) • Dãy sine phức được biểu thị bằng hệ thức: x[n] = A a n^jcOon+(ị) (1.9) Dãy sine thực có biên độ là hằng số được biểu thị bằng : 8 x[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] x[n] (1.12) — ►y[n] = x[n].h[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: y[n] = x[n] + h[n] x [n ]. (1.13) + )— ►y[n] = x[n] + h[n] h[n] N hán dãy x[n] vói hằng số a được thực hiện bằng hệ thức: y[n] = a.x[n] (1.14) Phan ỉhu c 20 o o T5 .Ọ?99o,e 0060^ q o q q q o o q e ĩĩlĩỉ -eỔ O cí>è Ị 0> i5 -2 10 15 20 25 30 35 40 30 35 40 Chi Sũ thoi gian n Phan ao “oO c a> m 15 20 25 Chi so thoi gian 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. %Chương trình P1.3 %Phát ra một dãy lũy thừa thực clf n=0:35; a=1.2;K=0.2; x=K*a.^n; stem(n,x). Đồ thị của dãy này cho trên hình 1.3. 14 120 o 1Í30 o 80 o o o o 40 20 o Qc > 0 - 0 Q O (ệO Q Q -Q Q O ^.^ 10 o oo o o o 99Ỹ.? ? Ĩ Ĩ 15 20 25 30 35 Chi so thoi gian Hình 1.3. Tín hiệu luỹ thừa thực x[n] = 0,2(1,2)" Bài tập: 1. Chạy P1.2 và phát ra dãy số phức. 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 x[n] = 1,5 sin(0,27rn) ( 1.21) 15 D ay xung don vi o 0.8 ICũ Ũ .4 0.2 0 5 c h i s o t h o i g ia n n II Hình 1.1. Dãy xung đơn vị. Bài tập ; 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 : x[n] = Acos(cù(,n+0) 12 (1-18) vớ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à; 0i)(,N = 27i:r (1.19) ở đây N là số nguyên dưofng, r là sô' nguyên bất kỳ. Số N nhỏ nhất thoả mãn phưcmg trình trên được gọi là chu kỳ cơ bản của dãy. Để phát ra dãy sin phức và thực ta dùng chương trình P1.2. Chương trình này sẽ phát ra phần thực và phần ảo của tín hiệu sin phức x[n] = 2exp[-(l/12)+j(7T/6)] (1.20) % Chương trình PI.2 % Phát ra dãy sin phức clf; c = -(l/12)+(pi/6)*i; K = 2; n = 0:40; X = K*exp(c*n); subplot(2,l,l); stem(n,real(x)); xlabel('Chỉ số thời gian n');ylabel('Biên độ'); title('Phần thực'); subplot(2,l,2); stem(n,imag(x)); xlabelCChỉ số thời gian n');ylabel('Biên độ'); titleCPhần ảo'); Đồ thị mô tả phần thực và phần ảo của tín hiệu sin phức cho trên hình 1.2. 13 x[n] ►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: y[n] = x[n-M] (1.16) 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 10 Dãy xung đơn vị 6d[n] có chiều dài N bị trễ M mẫu (M - Xem thêm -