Bài giảng Xử lý tín hiệu số (Digital Signal Processing - DSP

CHƯƠNG I
TÍN HIỆU RỜI RẠC VÀ HỆ THỐNG RỜI RẠC
1.1. MỞ ĐẦU
Sự phát triển của công nghệ vi điện tử và máy tính cùng với sự phát triển của thuật
toán tính toán nhanh đã làm phát triển mạnh mẽ các ứng dụng của XỬ LÝ TÍN HIỆU SỐ
(Digital Signal Proccessing). Hiện nay, xử lý tín hiệu số đã trở thành một trong những
ứng dụng cơ bản cho kỹ thuật mạch tích hợp hiện đại với các chip có thể lập trình ở tốc độ
cao. Xử lý tín hiệu số được ứng dụng trong nhiều lĩnh vực khác nhau như:
- Xử lý tín hiệu âm thanh, tiếng nói: nhận dạng tiếng nói, người nói; tổng hợp tiếng nói /
biến văn bản thành tiếng nói; kỹ thuật âm thanh số ;…
- Xử lý ảnh: thu nhận và khôi phục ảnh; làm nổi đường biên; lọc nhiễu; nhận dạng; thị giác
máy; hoạt hình; các kỹ xảo về hình ảnh; bản đồ;…
- Viễn thông: xử lý tín hiệu thoại và tín hiệu hình ảnh, video; truyền dữ liệu; khử xuyên
kênh; điều chế, mã hóa tín hiệu; …
pdf 156 trang thamphan 29/12/2022 900
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Xử lý tín hiệu số (Digital Signal Processing - DSP", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_giang_xu_ly_tin_hieu_so_digital_signal_processing_dsp.pdf

Nội dung text: Bài giảng Xử lý tín hiệu số (Digital Signal Processing - DSP

  1. ¥ å h(n) < ¥ n=-¥ H(w ) cũng chính là hàm truyền đạt H(z) khi z được lấy trên vòng tròn đơn vị H(w ) được gọi là đáp ứng tần số của hệ thống LTI Phương trình (4.5) được viết lại : w y(n) = A H(w )ej n (4.7) Ta thấy, đáp ứng với tín hiệu vào là hàm mũ phức cũng là một hàm mũ phức có cùng tần số với tín hiệu vào nhưng có biên độ và pha thay đổi (do nhân với H(w )) 4.1.1.2. Hàm riêng (eigenfunction) và trị riêng (eigenvalue) của hệ thống Xét một tín hiệu vào x(n) sao cho đáp ứng y(n) thỏa điều kiện : y(n) = b x(n) (4.8) Với b là một hằng đối với biến n. Khi đó x(n) được gọi là hàm riêng của hệ thống và thừa số b được gọi là trị riêng của hệ thống. Từ phương trình (4.7) ta thấy tín hiệu hàm mũ phức x(n) = Aej(n chính là hàm riêng của hệ thống LTI và H(w ) được xác định ở tần số của tín hiệu vào chính là trị riêng tương ứng. Ví dụ 4.1 : Hãy xác định tín hiệu ra của hệ thống có đáp ứng xung là : æ 1 ö n h(n) = ç ÷ u(n) (4.9) è 2 ø jx n Với tín hiệu vào là 1 dãy hàm mũ phức : x(n) = A.e 2 ; -¥ < n < ¥ Giải : Đáp ứng tần số : ¥ - 1 H () = å h(n)e jn = (4.10) 1 - n=-¥ 1 - e j 2 1 2 - Tại tần số:  = ,ta có : H ( ) = = .e j26.6 2 2 1 1 + j 5 2 Tín hiệu ra là : n æ 2 - 0 ö jx y(n) = Aç .e j26.6 ÷.e 2 è 5 ø æ n ö 2 jç x - 26.60 ÷ y(n) = A .e è 2 ø ; - ¥ < n < ¥ (4.11) 5 127
  2. 1 - 1 H () = (e j + 1 + e j ) = (1 + 2 cos) 3 3 Kết quả : 1 Biên độ: H () = 1 + 2 cos 3 2 0 : 0 £  < 3 Pha :  () = (4.14) 2 : £  < 3 Hình 4.1 vẽ giản đồ biên độ và pha của H(w ), ta thấy |H(w )| đối xứng chẵn và q (w )đối xứng lẻ. Rõ ràng, từ đặc tuyến đáp ứng tần số H(w ) ta thấy hệ thống trung bình động ba điểm này là một mạch lọc làm trơn (smooth) tín hiệu vào, điều này cũng có thể hiện trong quan hệ vào ra. Nói chung các hệ thống trung bình di động là các mạch lọc làm trơn. Bây giờ ta xét đáp ứng của hệ thống LTI với tín hiệu vào có dạng sin. Vì tín hiệu dạng sin là tổng hay hiệu của các hàm mũ phức. Vì vậy đáp ứng của hệ thống LTI đối với tín hiệu vào hình sin có dạng giống như đáp ứng của hệ thống với tín hiệu vào là hàm mũ phức. jw n Thậy vậy, nếu tín hiệu vào là : x1(n) = Ae jq (w ) jw n Tín hiệu ra là : y1(n) = Aê H(w )ï e e -jw n Nếu tín hiệu vào là : x2(n) = Ae jq (-w ) -jw n -jq (w ) -jw n Tín hiệu ra là : y2(n) = Aê H(-w )ï e e = Aê H(w )ï e e 129
  3. Hãy xác định đáp ứng của hệ thống trong ví dụ 4.1 với tín hiệu vào là : x(n) =10 - 5sin n + 20 cos n ; - ¥ < n < ¥ 2 Giải : Đáp ứng tần số của hệ thống đã được cho trong phương trình (4.10) 1 H () = 1 - 1 - e j 2 Số hạng đầu tiên của tín hiệu vào là một tín hiệu hằng, có tần số ω = 0, ở tần số này: 1 H (0) = = 2 1 1 - 2 2 - 0 Số hạng thứ hai trong x(n) có tần số , H ( ) = e j26,6 2 2 2 Vậy đáp ứng của hệ thống với tín hiệu vào x(n) là : 10 40 y(n) = 20 - sin( n - 26,60 ) + cos n ; - ¥ < n < ¥ 5 2 3 Ví dụ 4.4 : Một hệ thống LTI được mô tả bởi phương trình sai phân như sau : y(n) = ay(n-1) + bx(n), 0 < a < 1 (a) Xác định biên độ và pha của đáp ứng tần số của hệ thống. (b) Chọn tham số b sao cho giá trị cực đại của |H(ω)| là đơn vị, vẽ đồ thị |H(ω)| và Ð H(ω) với a = 0,9. (c) Xác định đáp ứng của hệ thống với tín hiệu vào là : x(n) = 5 + 12sin n - 20 cos ( n + ) 2 4 Giải : Đáp ứng xung của hệ thống là : h(n) = ban u(n) Vì |a|< 1, nên hệ thống là BIBO, vì vậy H(ω) tồn tại b (a) Đáp ứng tần số: H () = 1 - ae - j Vì 1 - ae - j = (1 - a cos) + j.a.sin  Suy ra : 1 - ae - j = (1 - a cos) 2 + (a sin ) 2 = 1 + a 2 - 2a cos - - a sin  Và Ð (1 - ae j ) = tan 1 1 - a cos 131
  4. Hình 4.2: Đáp ứng biên độ và đáp ứng pha của hệ thống trong ví dụ 4.4,với a=0.9 Trường hợp tổng quát : Tín hiệu vào là một tổ hợp tuyến tính của các tín hiệu sin có dạng như sau L = + - ¥ < < ¥ x(n) å Ai cos(i n i ) ; n i=1 Trong đó : Ai và f i là các biên độ và pha của thành phần hình sin có tần số ωi Đáp ứng của hệ thống là : L = + + y(n) å Ai H (i ) cos(i n i  (i )) (4.16) i=1 Rõ ràng, tùy thuộc vào đáp ứng tần số H(ω) của hệ thống, các tín hiệu hình sin có tần số khác nhau sẽ bị tác động một các khác nhau bởi hệ thống. Ví dụ : Một số thành phần tần số hình sin có thể bị nén hoàn toàn, nếu H(ω) = 0 ở các thành phần tần số này. Các thành phần tần số khác có thể thu được ở ngã ra mà không bị làm suy giảm (hay có thể được khuếch đại) bởi hệ thống. Về mặt tác dụng, ta có thể coi hệ thống LTI như một mạch lọc 133
  5. n+1 - j(n+1) + Aa e y (n) = a n 1 y(- 1) - e jn (4.21) qd 1 - ae - j với n ≥ 0 Ta thấy yqd ® 0 khi n ® ¥ Số hạng đầu tiên trong đáp ứng quá độ (4.21) là đáp ứng tín hiệu vào bằng không (zero - input response) của hệ thống, số hạng thứ hai là đáp ứng quá độ được sinh ra bởi tín hiệu vào hàm mũ. 4.1.3. Đáp ứng xác lập với tín hiệu vào tuần hoàn. Giả sử tín hiệu vào x(n) là một tín hiệu tuần hoàn có chu kỳ cơ bản là N và hệ thống LTI có tính ổn định. Vì tín hiệu tồn tại với thời gian -∞ < n < ∞. Đáp ứng tổng của hệ thống ở một thời điểm n bất kỳ bằng với đáp ứng xác lập. Để xác định đáp ứng y(n) của hệ thống ta sử dụng chuỗi Fourier của tín hiệu tuần hoàn, đó là : - kn N 1 j2n = N x(n) å X k (k)e ;k=0,1,2, ,N-1 (4.22) k =0 Trong đó : là các hệ số của chuỗi Fourier. Ta xét tín hiệu vào có dạng hàm mũ phức: kn j2n = N xk (n) X (k)e ;k=0,1, ,N-1 kn æ 2 ö j2 Thì y (n) = X (k)Hç k ÷e N ; k=0,1, ,N-1 (4.23) k è N ø æ ö ç 2 ÷= Ở đây: H k H () k ; k=0,1, ,N-1 è ø =2 N N Áp dụng tính chất tuyến tính của hệ thống LTI, ta thu được đáp ứng của hệ thống đối với tín hiệu tuần hoàn x(n) - kn N 1 æ 2 ö j2 y(n) = å X (k)Hç k ÷e N ; - ¥ < n < ¥ (4.24) k =0 è N ø Kết quả này hàm ý rằng đáp ứng của hệ thống với tín hiệu tuần hoàn x(n) cũng tuần hoàn với cùng chu kỳ N. Các hệ số chuỗi Fourier của y(n) là : 2 Y(k) = X (k)H ( k) ; k=0,1, ,N-1 (4.25) N Ta thấy, hệ thống LTI có thể làm thay đổi dạng sóng của tín hiệu vào tuần hoàn thông qua việc thay đổi thang biên độ và sự dịch pha của các thành phần tần số trong chuỗi Fourier nhưng không ảnh hưởng đến chu kỳ (hay tần số) của tín hiệu vào. 4.2. PHÂN TÍCH HỆ THỐNG LTI TRONG MIỀN TẦN SỐ Trong phần trước, phương pháp trong miền tần số đã được dùng để xác định đáp ứng xác lập của hệ thống LTI ổn định với tín hiệu vào tuần hoàn, phương pháp này có thể được tổng quát hóa để giải các bài toán tính đáp ứng trạng thái không của tín hiệu có năng lượng hữu hạn không tuần hoàn. Công cụ toán học được dùng là biến đổi Fourier của tín hiệu rời rạc. 4.2.1. Quan hệ vào-ra trong miền tần số. 135
  6. Trở lại quan hệ (4.27), giả sử rằng ta đã có Y(ω), ta sẽ tìm biểu thức của tín hiệu ra trong miền thời gian bằng biến đổ Fourier ngược. 1 x y(n) = ò Y()e jn d (4.32) 2 - x Từ quan hệ vào-ra (4.28), bình phương biên độ của 2 vế, ta được Y () 2 = H () 2 X () 2 2 Syy( ) = H () Sxx( ) (4.33) Ở đây Syy(ω) và Sxx(ω) lần lượt là phổ mật độ năng lượng của y(n) và x(n) ta có quan hệ Parseral cho năng lượng của tín hiệu ra, đó là : x x 1 2 1 2 Ey = ò Y() d = ò H() Sxx ()d (4.34) 2 - x 2 - x Ví dụ 4.6 : Cho một hệ thống LTI được đặc tả bởi đáp ứng xung : æ 1 ö n h(n) = ç ÷ u(n) è 2 ø Xác định phổ và phổ mật độ năng lượng của tín hiệu ra, khi hệ thống được kích thích bởi tín hiệu : æ 1 ö n x(n) = ç ÷ u(n) è 4 ø Giải : 1 Đáp ứng tần số của hệ thống là (xem ví dụ 4.1): H () = 1 - 1 - e j 2 1 Biến đổi Fourier của tín hiệu vào: X () = 1 - 1 - e j 4 1 Phổ của tín hiệu ra là: Y() = H ()X () = æ 1 - ö æ 1 - ö ç 1 - e j ÷ç 1 - e j ÷ è 2 ø è 4 ø Phổ mật độ năng lượng tương ứng: 2 2 2 Syy () = Y () = H () X () 1 = æ 5 ö æ 17 1 ö ç - cos ÷ç - cos ÷ è 4 ø è 16 2 ø 4.2.2. Tính hàm đáp ứng tần số. 137
  7. Hàm đáp ứng tần số H(ω) có được bằng cách tính H(z) trên vòng tròn đơn vị (thay z = ejω). Ta có : (e j - z )(e j - z ) (e j - z ) H () = Ge j(N - M ) 1 2 M (4.43) ( j - )( j - ) ( j - ) e p1 e p2 e p N Mỗi thừa số trong (4.43) có thể biểu diễn dưới dạng cực như sau: j - = jk () e zk Vk ()e (4.44) j - = jk () Và e pk Uk ()e (4.45) j - = Ð j - với V k ( ) = e zk ; k () (e zk ) (4.46) Khi đó, biên độ của H(ω) là : V () V () H () = G 1 M (4.48) U1 ()U 2 () U N () (vì biên độ của ejω(N-M) = 1) Pha của H(ω) là tổng pha của các thừa số ở tử số trừ cho tổng pha của các thừa số ở mẫu số cộng cho pha của G và cộng ω (N - M). Ta có : Ð H(w ) = Ð G + w (N - M) + q 1(w ) + q 2(w ) + + q M(w ) - [f 1(w ) + f 2(w ) + + f N(w )] (4.49) Trong đó, pha của G là 0 khi G dương và là π khi G âm. Rõ ràng, khi biết được các cực và zero của hàm hệ thống H(z), ta có thể tính đáp ứng tần số từ các pt(4.48) vàpt(4.49), cách tính này rõ ràng là khá phức tạp, nhưng nó thuận lợi khi tìm thuật toán cho một chương trình máy tính. Hình 4.4 trình bày cách biểu diễn tương đương của các hệ thống mắc song song và mắc liên tiếp trong miền thời gian và miền tần số. 139
  8. Hình 4.5 Đáp ứng biên độ và pha của mạch lọc Hamming Đáp ứng biên độ bằng 1 ở ω = 0 (dc) và suy giảm đến 0, ở ω =π. Đáp ứng pha của nó là một hàm tuyến tính theo tần số. Bộ lọc đơn giản này được dùng để ‘làm trơn’ (smooth) dữ liệu trong nhiều ứng dụng. 4.3. HỆ THỐNG LTI VÀ MẠCH LỌC SỐ. Trong xử lý tín hiệu số, hệ thống phổ biến nhất là lọc số (digital filter). Lọc số có thể là một mạch điện tử (phần cứng) hoặc chương trình (phần mềm) hoặc kết hợp cả hai. Như vậy, lọc số thật ra chưa hẳn là một mạch điện hay một thiết bị cụ thể, nhưng để thuận tiện ta vẫn gọi là mạch lọc hay bộ lọc. Cũng giống như các mạch lọc tương tự, tác động của mạch lọc gồm lọc bỏ và lọc chọn các thành phần tần số khác nhau trong tín hiệu vào để tạo một tín hiệu ra có phổ khác với phổ của tín hiệu vào. Bản chất của tác động lọc này được xác định bởi đặc tuyến của đáp ứng tần số H(ω). Đặc tuyến này phụ thuộc vào sự chọn lựa {a } {b } các tham số của hệ thống (ví dụ : các hệ số hằng k và k trong phương trình sai phân tuyến tính hệ số hằng). Như vậy bằng cách chọn một tập các tham số hệ thống, ta có thể thiết kế một mạch lọc chọn tần. Như ta đã thấy trong một số ví dụ ở phần trước, hệ thống LTI có tác động lọc tần số. Tổng quát, một hệ thống LTI biến đổi một tín hiệu vào có phổ là X(ω) theo đáp ứng tần số H(ω) của nó để cho một tín hiệu ra có phổ là Y(ω) = H(ω)X(ω). Theo cách tiếp cận này, H(ω) tác động như là một hàm sửa dạng phổ (spectral shaping function) của tín hiệu vào. Động tác sửa dạng phổ đồng nghĩa với chọn lựa tần số, vì vậy một hệ thống LTI có thể coi như là một mạch lọc chọn tần. Mạch lọc được dùng phổ biến trong xử lý tín hiệu số với nhiều cức năng khác nhau. Ví dụ như : loại bỏ nhiễu trong tín hiệu, sửa dạng phổ trong xử lý tín hiệu âm thanh, hình ảnh hay sự cân bằng các kênh truyền thông; tách tín hiệu trong radar, sonar và truyền dữ liệu; thực hiện phân tích phổ của tín hiệu, 4.3.1. Lọc chọn tần lý tưởng. Trong nhiều ứng dụng thực tế, ta phải giải quyết bài toán tách các tín hiệu mà phổ của chúng không có sự chồng lấp với yêu cầu là tín hiệu mong muốn không bị méo dạng bởi tác động của các mạch lọc được dùng. Bài toán này thường nảy sinh trong truyền tin, nơi mà nhiều tín hiệu được ghép kênh theo cách chia tần và được truyền trên một kênh chung (chẳng hạn như cáp đồng trục, cáp quang, hay kênh truyền vệ tinh) ở đầu cuối thu nhận của hệ thống truyền tin, tín hiệu phải được tách ra bởi các mạch lọc chọn tần và được truyền đi đến đích cuối cùng của chúng. Mạch lọc chọn tần phải được thiết kế sao cho sự méo dạng không đáng kể khi tín hiệu đi qua nó. Xét tín hiệu x(n) có băng tần là ω1 < ω < ω2 nghĩa là : X(ω) = 0 khi ω ≥ ω2 và w£ w 1 Giả sử tín hiệu đi qua mạch lọc có đáp ứng tần số là : 141
  9. Một cách tổng quát mọi sự sai lệch của đặc tuyến (của đáp ứng) tần số của một mạch lọc tuyến tính so với đặc tuyến tần số lý tưởng là sự méo dạng. Nếu một mạch lọc có đặc tuyến của đáp ứng biên độ biến đổi theo tần số trong băng tần mong muốn của tín hiệu thì mạch lọc tạo ra một sự méo dạng biên độ (amplitude distortion). Nếu đặc tuyến pha không tuyến tính trong băng tần mong muốn thì tín hiệu bị một sự méo pha (phase distortion) vì sự lệch pha theo tần số đồng nghĩa với sự trễ, nên độ trễ của tín hiệu được định nghĩa như là một hàm của tần số đó là : d ()  () = - (4.54) d Ta thấy rằng, một mạch lọc pha tuyến tính có độ trễ là một hằng số, độc lập với tần số. Như vậy, một mạch lọc mà nó gây ra một sự méo pha thì có độ trễ biến thiên theo tần số. Ta nói mạch lọc đã đưa vào một sự méo trễ (delay distortion). Vì vậy, sự méo trễ là đồng nghĩa với sự méo pha. Giống như trong mạch tương tự, mạch lọc cũng được phân loại theo đặc tuyến của đáp ứng tần số, ta có các loại mạch lọc như sau : - Lọc thông thấp lý tưởng, có đáp ứng tần số là : - jk £ Ce ;  c H () = (4.55) 0 ;ngược lại Ở đây ωc được gọi là tần số cắt. - Lọc thông cao lý tưởng, có đáp ứng tần số là : - jk ³ Ce ;  c H () = (4.56) 0 ;ngược lại - Lọc thông dải lý tưởng, có đáp ứng tần số là : - jk < < Ce ;1  2 H() = (4.57) 0 ;ngược lại - Lọc triệt dải lý tưởng, có đáp ứng tần số là : - jk £ £ Ce ;  1 và  c H () = (4.58) < < 0 ;1  2 143
  10. Chúng ta cũng quan sát thấy rằng, độ rộng của múi chính (main lobe) của h(n) là tỉ lệ nghịch với bằng tần ωc của bộ lọc. Khi băng tần của bộ lọc tăng, đáp ứng xung trở nên hẹp hơn. Khi ωc =π, bộ lọc trở thành bộ lọc thông tất (All-pass) và đáp ứng xung trở thành xung đơn vị. Hình 4.8: Đáp ứng xung của 1 bộ lọc thông thấp lý tưởng Nếu đáp ứng xung bị trễ n0 mẫu, bộ lọc thông thấp lý tưởng là bộ lọc pha tuyến tính, đó là: - - ¬¾  ® jn0 h(n n0 ) H()e Ta có thể chọn một độ trễ n0 khá lớn (một cách tùy ý) để cho có thể coi như h(n)=0 với n < n0. Tuy nhiên, hệ thống thu được sẽ không có đáp ứng tần số lý tưởng nữa. Kết luận trên cũng đúng cho tất cả các bộ lọc lý tưởng khác. Tóm lại, tất cả các bộ lọc lý tưởng đều không thể thực hiện về mặt vật lý. 4.3.3. Mạch lọc thực tế Mặc dù bộ lọc lý tưởng là điều chúng ta mong muốn, nhưng trong ứng dụng thực tế, không nhất thiết phải có sự chính xác tuyệt đối như vậy. Ta có thể thực hiện các bộ lọc nhân quả có đáp ứng tần số xấp xĩ với mạch lọc lý tưởng mà ta mong muốn. Đặc biệt, không nhất thiết phải có biên độ |H(ω)| là hằng trên toàn bộ dãi thông của bộ lọc. Một lượng gợn sóng nhỏ trong dải thông (hình 4.9) thường có thể chấp nhận được. Tương tự, không cần thiết |H(ω)| phải bằng 0 trong dải chặn (stopband), một giá trị nhỏ hay một lượng gợn sóng nhỏ cũng có thể chấp nhận. Biên độ |H(ω)|cũng không thể giảm đột ngột từ 1 xuống 0 ở tần số cắt. Như vậy phải có một dải tần quá độ giữa dải thông và dải chặn, ta gọi là dải quá độ (transition band) hay vùng chuyển tiếp (transition region) của bộ lọc (hình 4.9). Từ đặc tuyến của đáp ứng biên độ của một bộ lọc thực tế (hình (4.9)) ta định nghĩa các thông số sau : ω1: là biên độ của gợn sóng dải thông gọi tắt là gợn sóng dải thông (passband ripple) ω2 : là biên độ của gợn sóng dải chặn gọi tắt là gợn sóng dải chặn (stopband ripple) ωp : tần số cạnh dải thông. ωs: tần số cạnh dải chặn. ωs - ωp : độ rộng của dải quá độ. 145
  11. TÀI LIỆU THAM KHẢO [1] Quách Tuấn Ngọc - XỬ LÍ TÍN HIỆU SỐ - NXB Giáo Dục - 1995. [2] Nguyễn Quốc Trung - XỬ LÝ TÍN HIỆU VÀ LỌC SỐ TẬP 1- NXB Khoa Học Kỹ Thuật - 1999. [3] Nguyễn Quốc Trung - XỬ LÝ TÍN HIỆU VÀ LỌC SỐ TẬP II- NXB Khoa Học Kỹ Thuật - 2001. [4] Doãn Hòa Minh, Xử lý tín hiệu số, Đại học Cần Thơ – 2000. [5] Alan V. Oppenheim, Ronald W. Schafer - DISCRETE-TIME SIGNAL PROCESSING - Prentice-Hall, Inc. - 1989 . [6] C. Sidney Burrus, James H. McClellan, Alan V. Oppenheim, Thomas W. Parks, Ronald W. Schafer, Hans W. Schuessler - COMPUTER-BASED EXERCICES FOR SIGNAL PROCESSING USING MATLAB - Prentice Hall International, Inc. - 1994. [7] Emmanuel C. Ifeachor - Barrie W. Jervis - DIGITAL SIGNAL PROCESSING A PRACTICAL APPROACH - Prentice Hall - 2002. [8] William D. Stanley - Gary R. Dougherty - Ray Dougherty - DIGITAL SIGNAL PROCESSING - Reston Publishing Company, Inc. - 1984. 147
  12. [x,z]=stairs(t,y); xt(1)=x(1);zt(1)=z(1); for n=1:length(x)/2-1 ni=2*n+1; xt(n)=x(ni);zt(n)=z(ni); end; cham=input('(cham den,cham=1;cham trang,cham=2; khong,cham=3) cham= '); plot(x,z,'g:');hold on; if cham= =1 stem(xt,zt,'fulled'); elseif cham= =2 stem(xt,zt); elseif cham= =3 stem1(xt,zt); end; end axis off; 2. function dsphinh3_26(N,L) %Ve bien do va pha cua DFT n diem cua day co do dai L. % Doan hoa minh 2001 % function dsphinh3_26(N,L) xn=ones(1,L); X=fft(xn,N); X1=abs(X); theta1=angle(X); DS2=figure('Name','DFT N diem’,'Color','w', 'NumberTitle','off','Position',[50 50 580 300]); stem(X1,'filled') DS2=figure('Name','Type of signal','Color','w', 'NumberTitle','off','Position',[50 50 580 300]); stem(theta1,'filled') 3. dsphinh5_16 % Ve dac tuyen cua mach loc thiet ke bang cua so co chieu dai bang 9 va bang 61. % Do Huy Khoi and Phung Trung Nghia syms w v; y=sin((w-v)*9/2)/sin((w-v)/2); z=int(y,v,-pi/4,pi/4); z=simple(z) w=0:0.01:pi; for n=1:length(w) 149
  13. disp('bang tan, cac tan so nay nam giua 0 va 1, Vd F=[0 .1 .15 1]') F=input('F = '); disp('Nhap vector gia tri dap ung tan so mong muon A (gia tri thuc),') disp('tai cac diem tan so bang c /Anh, A co kich thuoc bang F') disp ('Vi du: A=[1 1 0 0]') A=input('A = '); N=M-1; if dk= =11 [hn,err]=remez(N,F,A,W) elseif dk= =12 [hn,err]=remez(N,F,A,W,'Hilbert') end w=0:0.001:pi; f=w./pi; H= freqz(hn,1,w); H1=20*log10(abs(H)); DS1=figure('Name','Impulse Response','Color','w', 'NumberTitle','off','Position',[50 50 500 300]); n=0:1:M-1; stem(n,hn,'filled','k') axis off DS1=figure('Name','Frequency Response', 'Color','w', 'NumberTitle','off','Position',[50 50 500 300]); plot(f,abs(H),'k') grid on DS1=figure('Name','Frequency Response (dB)','Color','w', 'NumberTitle','off','Position',[50 50 500 300]); plot(f,H1,'k') ylim([-100 10]) grid on 5. firsample % Thiet ke bo loc FIR thong thap pha tuyen tinh bang phuong phap lay may tan so. % Do Huy Khoi and Phung Trung Nghia . % M=input('Nhap chieu dai cua dap ung xung, M = '); dx=11; pdx=12; disp('Chon dieu kien doi xung, neu doi xung thi nhap: dx') disp(' , neu phan doi xung thi nhap: pdx') dk=input('Dieu kien doi xung : '); alpha=input('Chon he so alpha, alpha= '); disp('Voi h(n) dx k=[0:(M-1)/2] neu M le, k=[0:(M/2)-1] neu M chan') disp('Voi h(n) pdx k=[0:(M-3)/2] neu M le, 151
  14. end elseif dk= =12 for n=1:M for k=1:U+1 hn(n)=hn(n)+2*G(k)*cos(2*pi*(k-1+1/2)*((n-1)+0.5)/M)/M; end end end end hn om=0:0.01:pi; if mod(M,2)= =0 Hr=hn(1).*cos(om.*((M-1)/2)); n=1; while n<=U n=n+1; Hr=Hr+hn(n).*cos(om.*((M-1)/2-n+1)); end Hr=2.*Hr; else Hr=hn(1).*cos(om.*((M-1)/2)); n=1; while n<=(M-3)/2 n=n+1; Hr=Hr+hn(n).*cos(om.*((M-1)/2-n+1)); end Hr=2.*Hr; Hr=Hr+hn(U+1); end modunH=abs(Hr); DS1=figure('Name', 'Dap ung bien do', 'Color','w', 'NumberTitle','off','Position',[50 50 400 300]); plot(om,modunH,'k'); grid on modunHdb=20.*log10(modunH); DS2=figure('Name','Type of signal', 'Color','w', 'NumberTitle','off','Position',[50 50 400 300]); plot(om,modunHdb,'k'); grid on teta=-om.*(M-1)/2+angle(Hr); DS3=figure('Name','Dap ung pha','Color','w', 'NumberTitle','off','Position',[50 50 400 300]); plot(om,teta,'k'); grid on 153
  15. % STEM1(Y) plots the data sequence Y as stems from the x axis % % STEM1(X,Y) plots the data sequence Y at the values specfied % in X. % STEM1( ,'LINESPEC') uses the linetype specifed for the stems and % markers. See PLOT for possibilities. % % H = STEM( ) returns a vector of line handles. % % See also PLOT, BAR, STAIRS. % Copyright (c) by Do Huy Khoi and Phung Trung Nghia. % Date: 2000/6/4. nin = nargin; fill = 0; ls = '-'; ms = 'o'; col = ''; % Parse the string inputs while isstr(varargin{nin}), v = varargin{nin}; if ~isempty(v) & strcmp(lower(v(1)),'f') fill = 1; nin = nin-1; else [l,c,m,msg] = colstyle(v); if ~isempty(msg), error(sprintf('Unknown option "%s".',v)); end if ~isempty(l), ls = l; end if ~isempty(c), col = c; end if ~isempty(m), ms = m; end nin = nin-1; end end error(nargchk(1,2,nin)); [msg,x,y] = xychk(varargin{1:nin},'plot'); if ~isempty(msg), error(msg); end if min(size(x))= =1, x = x(:); end if min(size(y))= =1, y = y(:); end % Set up data using fancing /indexing [m,n] = size(x); xx = zeros(3*m,n); xx(1:3:3*m,:) = x; xx(2:3:3*m,:) = x; xx(3:3:3*m,:) = NaN; [m,n] = size(y); 155