1. Trang chủ
  2. » Công Nghệ Thông Tin

Giao trinh matlab v5.2 P16 ppt

11 256 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 265,34 KB

Nội dung

ToolBox - Digital Signal Processing Phần 2 - ứng dụng 155 ằ [b, a] = butter (5 , 30/50) b = 0.1084 0.5419 0.0837 1.0837 0.5149 0.1084 a = 1.000 0.9853 0.9738 0.3864 0.1112 0.0113 V trạng thái đầu của khâu trễ ằ Z i = filteric (b, a, x, yi) ; Chúng ta liên hệ với hm lọc ằ y = filter(b, a, x, Zi) ; Chúng ta có thể hiện thị 5 nhóm đầu của chuỗi vo v ra v thay đổi cho chúng bằng nhau ằ [ X(1:5), Y(1:5) ] ans= 0.2190 0.2190 0.0970 0.0470 0.6789 0.6789 0.6793 0.6793 0.9347 0.9347 4. thiết kế các bộ lọc số 4 4 . . 1 1 . . C C á á c c đ đ ị ị n n h h n n g g h h ĩ ĩ a a : : Một trong những vấn đề chung nhất xuất hiện trong xử lý số tín hiệu l cấu trúc của bộ lọc với các đặc tính biên tại các tần số khác nhau. Một trong tools (công cụ) trong toolbox xử lý tín hiệu l 2 hm yulewalk v remez. Chúng ta gọi chúng với bộ lọc số H của N điểm, đặt tần số lấy mẫu số liệu x, sinh ra tần số mới y, quan hệ với x theo đẳng thức. a 1 y n + a 2 y n-1 + a N+1 y n-N = b 1 x n + b 2 x n-1 + b N+1 x n-N (1.12) Các hệ số B = [b 1 , b 2 , , b N+1+ ] v A = [a 1 , a 2 , , a N+1 ] đều xác định các hệ số 0. Song chúng ta có thể giả thiết chúng chuẩn theo a 1 . Hơn thế nữa, tại các hệ số cuối ToolBox - Digital Signal Processing Phần 2 - ứng dụng 156 cùng a N +1 hoặc b N+1 có thể khác 0, trong các trờng hợp khác bị lọc cần xác định vector thu gọn A v B, v chúng cần nhỏ hơn N. Hm trong toolbox MATLAB sinh ra các hệ số của bộ lọc . (yulewalk, cheb1 v các hm khác ) luôn sinh ra các hệ số qui chuẩn, thnh phần của hm lọc (filter). Khi sử dụng thao tác dịch thời gian nh xác định phần trớc, bộ lọc H đợc biểu diễn bằng hm phân thức sau. Hz Bx Hz bbZ bZ aaZ aZ N N N N () () () () () == ++ +++ 12 11 12 11 (1.13) Với a 1 = 1 v hệ số lớn nhất a N v b N 0 Rất tiếc l trong tất cả các version của MATLAB ta khi dùng help yulewalk không đợc đúng lắm, chúng sẽ hiện ra đoạn văn bản nh sau yulewalk Recusive filter design using a least-squares method. [B,A] = yulewalk(N,F,M) finds the N-th order recursive filter coefficients B and A such that the filter: -1 -(n-1) B(z) b(1) + b(2)z + + b(n) z = -1 -(n-1) A(z) 1+ a(1)z + + a(n)z Trong đó chỉ số của A bị sai dịch nh sau n = N + 1 , song cho ví dụ, bộ lọc của 4 sẽ đợc xác định bởi vectors B = [b 1 , b 2 , b 3 , b 4 , b 5 ] A = [a 1 , a 2 , a 3 , a 4 , a 5 ] Với a 1 = 1 v hệ số cuối b5 hoặc a5 0 Dạng nh đã nói ở trên bị giới hạn vì lỗi ở trong sách sử dụng đúng của tơng ứng với hm số nh bộ lọc. Nếu các nhóm a 2 , a 3 , , a N đều bằng 0 thì bộ lọc sẽ gọi FIR (bộ lọc đáp ứng xung hữu hạn). yulewalk đợc dùng để tổng hợp bộ lọc IIR , khi hm remez đợc sử dụng cho FIR 4 4 . . 2 2 X X á á c c đ đ ị ị n n h h đ đ ặ ặ c c t t í í n n h h t t ầ ầ n n c c ủ ủ a a b b ộ ộ l l ọ ọ c c. ToolBox - Digital Signal Processing Phần 2 - ứng dụng 157 MATLAB cho phép ta định nghĩa số của tần số fr 1 , fr 2 , , fr i , , fr k v biến tơng ứng mag 1 , mag 2 , , mag i , , mag k v mô tả bộ lọc số gần đúng (xấp xỉ) với đáp ứng của bộ lọc tơng tự. Tần số đáp ứng của bộ lọc số phụ thuộc vo tần suất lấy mẫu . Một nửa tần số đáp ứng của lấy mẫu đợc gọi l Nyquist .Một số hm của MATLAB đợc nhanh chóng đâỷ vo vùng tần số không thứ nguyên , có nghĩa l bằng việc định nghĩa tần số không thứ nguyên 50/(1000/2) = 0.1 v 150 Hz sẽ tơng ứng với 150/(1000/2) = 0.3. Để xác định đặc tính của bộ lọc, chúng ta cần có 2 chuỗi : 1 l tần số không thứ nguyên, f=[f 1 , f 2 , , f k ] v 1 tơng ứng với biên m = [m 1 , m 2 , , m k ] MATLAB đòi hỏi f 1 = 0 v f k = 1. Nh trong ví dụ , chúng ta giả thiết rằng tín hiệu x đợc lấy mẫu ở 500Hz v chúng ta muốn xây dựng bộ lọc với tần số biên nh sau: Từ Đến Biên 0 100 150 200 200 100 150 200 225 250 1.0 giảm đến từ 1 đến 0.5 luôn l hằng 0.5 tăng đều từ 0.5 đến 1 - ToolBox - Digital Signal Processing Phần 2 - ứng dụng 158 Hình 1.7 Đặc tính tần của bộ lọc Chúng ta đa đặc tính bộ lọc đợc mô tả vo MATLAB bởi ằ fHz0 = [0 1000 150 200 225 250]; ằ m0 = [1.0 10 0.5 0.1 1.0 1.0] ; Để kiểm tra chúng ta có thể vẽ đồ thị nh hình vẽ 1.8 ằ plot (fHz0 , m0) ; MATLAB dùng công cụ để xây dựng bộ lọc số IIR v FIR với những đặc tính nhất định. Hơn thế nữa trong phần tổng quan về xử lý tín hiệu chúng ta đã xem xét những vấn đề u nhợc điểm, ở đây chúng ta đề cập đến hm yulewalk cho IIR v remez cho tỗng hợp FIR. Để sử dụng hm yulewalk, chúng ta cần qui các tần số thnh không thứ nguyên ằ fs = 500; ằ f0 = fHz0 / (fs/2) ; Trong đó fs l tần số lấy mẫu đợc xấp xỉ đúng nhất, bằng phơng pháp bình quân phơng nhỏ nhất. Chúng ta thử bộ lọc 6 điểm: ằ [bIIR, aIIR] = yulewalk (6, f0, m0) ; Bây giờ chúng ta có thể kiểm tra lại việc xấp xỉ của chúng ta bằng cách so sánh đáp ứng của bộ lọc đợc xác định bởi [bIIR, aIIR] với đáp ứng đã có đợc. Chúng ta đã biết l đáp ứng của bộ lọc H(z) tại tần số rad/s đợc cho bởi giá trị H(z) cho Z = e i. /fs trong đó fs l tần số lấy mẫu. Nh chúng ta đã giả thiết cần 5 điểm đặt trớc trên ToolBox - Digital Signal Processing Phần 2 - ứng dụng 159 trục x, nh 50 điểm từ 0 đến tần số Nyquist, tính rad/s. Trong MATLAB ta có đợc chúng theo tần số Hz cùng ằ fHz1 = linspace (0, 250, 50) ; v chuyển chúng thnh rad/s bằng ằ om1 = 2 * pi * fHz1 ; Chúng ta muốn tính đáp ứng biên của bộ lọc dùng lệnh sau ằ 2 = exp (sqrt (-1) * om1 / fs) ; ằ mIIR = abs (polyval (bIIR, z). / polyval (aIIR, z)) ; Bây giờ bạn có thể so sánh sự trùng của đáp ứng cho trớc v đáp ứng thực. ằ plot (tHz0, m0, fHz1, mIIR) ; Những kết quả ny đợc mô tả trong hình 1.5. Nếu nh sự xấp xỉ không tốt nh giả định của ta thì chúng ta cần tăng số điểm cho trớc của bộ lọc. Hình 1.8. Bộ lọc IIR định nghĩa v bộ lọc thực Bây giờ chúng ta giải quyết cùng một vấn đề sử dụng FIR. Bộ lọc FIR có thể có số điểm cho trớc lớn hơn để đạt đợc việc so sánh chúng ta dùng bộ lọc với số điểm l 20: ằ bFIR = remez (20, f0, m0) ; Hm remez cho ta chuỗi b, tất cả bộ lọc FIR a = [1]. Bạn có thể kiểm tra lại kết quả bằng hình vẽ. ToolBox - Digital Signal Processing Phần 2 - ứng dụng 160 ằ mFIR = abs (polyval (bFIR, z)) ; ằ plot (fHz0, m0, fHz1, mFIR) ; Kết quả đồ thị nh hình vẽ 1.8. Ngoi ra trong toolbox xử lý số tín hiệu có bổ xung thêm một số hm để tổng hợp bộ lọc IIR: cheby1, cheby2, ellipt, hm số yulewalk đòi hỏi hai chuỗi số: 1 - tần số, 2- l đáp ứng biên. Chúng ta cần đa thêm xác định kiểu lọc: thông cao, thông thấp, thông giữa v các trạng thái của biến đổi nhỏ (ripple). Trong trờng hợp tổng hợp FIR cũng tơng tự IIR dùng remez hoặc fir1 v fir2. Để tính toán đáp ứng tần số của bộ lọc số, MATLAB dùng hm tần số freqz, nhanh hơn l dùng thẳng tính toán của H (squtt (-1) * om / fz). Để hiểu thêm quan hệ của phơng pháp ny, mời bạn đọc thêm sách hớng dẫn sử dụng Hình 1.9. Sự xác định v thực hiện của hm lọc FIR Ví dụ: Tách 2 sóng hình sin từ tổng của chúng. Bộ lọc ny dùng tần số để phân biệt hoặc tách thnh phần cosin từ tín hiệu tổng hợp. Nh ở trong ví dụ, ta xây dựng tín hiệu đơn từ 2 sóng hình sin, một với tần số 100Hz, một l 400Hz, trong khoảng thời gian 0.1 giây. Tần số lấy mẫu l 2000 Hz. ằ f S = 2000 ; ToolBox - Digital Signal Processing Phần 2 - ứng dụng 161 ằ t = 0: (1/f S ) : 0.1 ; ằ x 1 = sin(2 + pi * 100 x t) ; ằ x 2 = sin(2 * pi * 400 * t) ; ằ x = x 1 + x 2 ; Tín hiệu x xuất hiện trên đờng 1 ở hình 1.10. Bây giờ ta sử dụng yulewalk để mô tả bộ lọc thông thấp v thông cao. Tần số cơ bản đợc xác định bởi ằ fH20 = [0 225 275 1000] ; Biên đặc biệt của bộ lọc thông thấp l ằ m10 = [11 00] ; V bộ lọc thông cao l ằ mh0 = [00 11] ; Tần số mô tả không thứ nguyên l ằ f = fH20/(f S /2) ; Các thông số của bộ lọc thông thấp đợc tính bởi ằ [b1 , a1] = yulewalk (6,f0, mh0) ; Để kiểm tra lại chất lợng của bộ lọc chúng ta tính v chấm điểm ở các tần số của chúng với lệnh sau: ToolBox - Digital Signal Processing Phần 2 - ứng dụng 162 Hình1.10 Đặc tính tần của bộ lọc ằ fHz1 = linspace (0, f s /2 , 50) ; ằ om1 = 2 * pi *H21 ; ằ Z = exp (sqrt(-1) * 0m1/f s ) ; ằ m1 = abs(polyval(b1,z) . /polyval(a1,z)) ; ằ mh = abs(polyval(bh, z)./polyval (ah,z)) ; Chúng ta có thể so sánh đặc tính của bộ lọc thông cao với đặc điểm sau: ằ plot (fH20, mh0 ,fH21, ml) ; Đặc tính tần của 2 bộ lọc có thể nhìn thấy trên hình 1.9. Sai lệch với kết quả không xa. Chúng ta lọc đợc tín hiệu ằ y1 = filter (bl, al, x) ; V chấm điểm y2 , có thể nhìn thấy thnh phần 100Hz. ToolBox - Digital Signal Processing Phần 2 - ứng dụng 163 Hình 1.11. Chỉ ra tín hiệu gốc của x v đầu ra của 2 bộ lọc y1 v y2 trong thời gian 0.05 giây. 4 4 . . 3 3 . . B B i i ế ế n n đ đ ổ ổ i i n n ử ử a a t t u u y y ế ế n n t t í í n n h h T T u u s s t t i i n n Thông thờng ta có hm biến đổi H(s) của bộ lọc tuyến tính xác định tần số chủ đạo, v muốn xấp xỉ nó với bộ lọc số H d (z) ở đây số bớc chung để chuyển bộ lọc tơng tự thnh số "tơng đơng" , thì cần đọc thêm bộ lọc Franlin Powell v Workman (viết 1990) Một trong những khả năng để đạt đợc s= s(z) trong các biến số z, điều ny đợc xấp xỉ gần nhất . H d (z) = H(s(z)) ; (1.14) Biến đổi s(z) = 21 1Ts z z . + (1.15) Gốc l biến đổi Tustin" v MATLAB dùng hm bilinear Trong biểu thức (1.15) Ts l đoạn lấy mẫu l z, l thao tác dịch thời gian ToolBox - Digital Signal Processing Phần 2 - ứng dụng 164 Biến đổi ny gần với luật biến đổi tranpezoidal integration v chúng có tác dụng ở trong khoảng tác dụng của lấy xấp xỉ trapezoidal trong một số trờng hợp nếu hm đủ bằng phẳng trong một không gian lấy mẫu đủ ngắn . Biến đổi Tustin sẽ cho ta phép biến đổi đại số chuyển bộ lọc tơng tự về bộ lọc số. Muốn hiểu kỹ hơn về phần ny bạn nên đọc kỹ lý thuyết xử lý tín hiệu. Nh trong ví dụ, chúng ta có thể mô tả bộ lọc số với đặc tính tơng tự (2 tầng), lọc thông thấp v hm biến đổi. Hs Ss n nn ()= ++ 2 22 2 (1.16) Trong đó n = 30rad/s , = 0.6 v ký hiệu lấy mẫu tại 100Hz. Để giải quyết vấn đề ny trên MATLAB ta định nghĩa tần số lấy mẫu ằ f1 = 100 ; Các thông số của bộ lọc ằ n = 3.0 ; z i = 0.6 ; Số l ằ num = [ n ^2] ; Số lần của đặt tên, để có công suất của s l ằ den = [1 2 * z i * n n ^2] ; Bạn có thể nhận đợc bộ lọc số tơng đơng ằ [a,b] = bilinear (num, den , fs) ; Để so sánh bộ lọc số, định trớc [a,b] , ta vẽ 2 đơng quan hệ theo tần số (đơn vị rad/s) ằ om = linspace(0,300) ; Tiếp theo ta tính tần số đáp ứng ny của bộ lọc số bởi. ằ z = exp(s/fs) ; ằ hz = polyval(b,z) ./ polyval (a,z) ; V chúng ta so sánh biến của 2 đáp ứng ny bằng ằ subplot (2, 1, 1) ; . Biên 0 100 150 20 0 20 0 100 150 20 0 22 5 25 0 1.0 giảm đến từ 1 đến 0.5 luôn l hằng 0.5 tăng đều từ 0.5 đến 1 - ToolBox - Digital Signal Processing Phần 2 - ứng dụng 158 Hình. lọc đợc mô tả vo MATLAB bởi ằ fHz0 = [0 1000 150 20 0 22 5 25 0]; ằ m0 = [1.0 10 0.5 0.1 1.0 1.0] ; Để kiểm tra chúng ta có thể vẽ đồ thị nh hình vẽ 1.8 ằ plot (fHz0 , m0) ; MATLAB dùng công. lấy mẫu l 20 00 Hz. ằ f S = 20 00 ; ToolBox - Digital Signal Processing Phần 2 - ứng dụng 161 ằ t = 0: (1/f S ) : 0.1 ; ằ x 1 = sin (2 + pi * 100 x t) ; ằ x 2 = sin (2 * pi * 400

Ngày đăng: 10/07/2014, 20:21

w