Xử lý số tín hiệu - Chuơng 7: Thực hiện mạch lọc số

Các ảnh hưởng của quá trình lượng tử hóa trong mạch lọc số Để không tràn các kết quả trung gian trong các phép tính của mạch lọc, các hệ số định tỷ lệ thích hợp có thể được đưa ra tại các điểm khác nhau trong các tầng lọc. Các chip DSP hiện đại giải quyết vấn đề ảnh hưởng do lượng tử hóa theo hai hướng: dùng các từ dài, như là 32 bit, để lưu trữ các hệ số, và dùng các bộ cộng dồn độ chính xác-kép để thực hiện nhiều phép toán MAC mà không bị sai số roundoff trước khi kết quả cuối cùng được làm tròn.

pdf54 trang | Chia sẻ: nguyenlam99 | Lượt xem: 673 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Xử lý số tín hiệu - Chuơng 7: Thực hiện mạch lọc số, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
BÀØI GIẢÛNG XỬÛ LÝÙ SỐÁ TÍN HIỆÄU Biênâ soạïn: PGS.TS LÊ TIÊ ÁÁN THƯỜØNG Tp.HCM, 02-2005 7.1. Dạng trực tiếp. 7.2. Dạng canonical. 7.3. Dạng Cascade. 7.4. Cascade sang canonical. 7.5. Cài đặt phần cứng và các bộ đệm vòng. 7.6. Các ảnh hưởng của quá trình lượng tử hóa trong mạch lọc số. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.1. Dạng trực tiếp. Xét một mạch lọc đơn giản có hàm truyền đạt như sau: (7.1.1) Ta có phương trình sai phân vào/ra (7.1.2) Cáùc biểåu diễn dẫ ïïng trựïc tiếáp làø sơ đồà khốái biểåu diễn ã phương trình sai phân nâ øøy, đượïc minh họïa trong hình 7.1.1. Dạng trực tiếp FIR của chương 4 có được từ một trường hợp đặt biệt của dạng này khi cho các hệ số hồi tiếp a1 = a2 = 0. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 2 2 1 10 2 2 1 10 −− −− ++ ++== zazaa zbzbb )z(D )z(N)z(H 221102211 −−−− +++−−= nnnnùnn xbxbxbyayay 7.1. Dạng trực tiếp. Hình 7.1.1 Cách thực hiện dạng trực tiếp của mạch lọc IIR bậc 2. Cách biểu diễn dạng trực tiếp có thể được tổng quát hóa cho trường hợp các tử và mẫu thức bất kỳ. (7.1.4) CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ M M L L zazazaa zbzbzbb )z(D )z(N)z(H −−− −−− ++++ ++++== " " 2 2 1 10 2 2 1 10 7.1. Dạng trực tiếp. Có tử bậc N và mẫu bậc M. Phương trình sai phân vào/ra tương ứng là: (7.1.5) Hình 7.1.2: Cáùch thựïc hiệän dạïng trựïc tiếáp củûa mạïch lọïc IIR bậäc M CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ LnLnnnMnMnnn xbxbxbxbyayayay −−−−−− +++++−−−−= "" 221102211 7.1. Dạng trực tiếp. Ví dụ 7.1.1: Vẽ cách thực hiện dạng trực tiếp của mạch lọc sau vàø xáùc định cáùc phương trình sai phân vâ øø thuậät toáùn xửû lýù mẫu. ã Giảûi: Phương trình sai phân lâ øø: Cáùc vector hệä sốá vàø trạïng tháùi trong ví dụï nàøy: CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 1 3 1 2 4 2 3 4( ) 1 0.2 0.3 0.5 z zH z z z z − − − − − − += + − + 31421 432503020 −−−−− +−+−+−= nnnnnnn xxxyyyy ... [ ] [ ] [ ] [ ] [ ] [ ]321043210 3210 43210 4032 500030201 vvvvvwwwwww bbbbb aaaaaa ,,,,,,,, ,,,,,, .,.,.,.,,,,, == −== −== 7.1. Dạng trực tiếp. Hình 7.1.3 CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.2. Dạng Canonical Dạng biểu diễn canonical, hay là dạng trực tiếp II, các hệ số recursive và các hệ số non-recursive, có nghĩa là: Việc nhóm lại tương ứng với việc chia một bộ cộng lớn của cách biểu diễn dạng trực tiếp của hình 7.1.1 thành 2 phần như trong hình 7.2.1. Cũng chõ ính làø hàøm truyềàn đạït gốác đượïc cho trong phương trình (7.1.1). Vềà mặët toáùn họïc, bậäc củûa cáùc hệä sốá cascade cóù thểå đượïc thay đổåi sao cho CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ )yaya()xbxbxb(y nnnnnn 221122110 −−−− −−+++= )z(N )z(D )z(H 1= 7.2. Dạng Canonical Hình7.2.1 CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.2. Dạng Canonical Hình 7.2.2 Thay đổi N(z) và 1/D(z). CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.2. Dạng Canonical Hình 7.2.3: Dạng chính tắc của bộ lọc IIR bậc hai CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.2. Dạng Canonical Hình 7.2.4: Thực hiện canonical của mạch lọc IIR bậc M CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.2. Dạng Canonical So sánh các hình 7.1.2 và 7.2.4, ta lưu ý rằng: a) Dạng trực tiếp đòi hỏi lượng khâu trễ gấp đôi. b) Cả hai đều có cùng các hệ số nhân. c) Dạng trực tiếp chỉ có một bộ cộng mà đáp ứng của nó là đáp ứng của hệ thống. d) Dạng canonical có hai bộ cộng, một ở đầu vào và một ở đầu ra. Trong hai dạng này, dạng canonical được sử dụng rộng rãi hơn trong thực tế. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.2. Dạng Canonical Lưu ý: đối với các mạch lọc FIR có đa thức mẫu D(z) = 1 và do đó các dạng trực tiếp và canocical tương tự với dạng trực tiếp của chương 4. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.3. Dạng Cascade Dạïng biểåu diễn cascade cuã ûûa mộät hàøm truyềàn tổång quáùt giảû sửû hàøm truyềàn làø tích cáùc phầàn bậäc hai như thếá: (7.3.1) Hàm truyền bất kỳ có dạng (7.1.4) có thể được phân tích thành các thừa số bậc hai với các hệ số thực, nếu phương trình (7.1.4) có các hệ số thực. Để theo dõi các hệ số của các phần và các trạng thái trong, ta xếp chúng thành các ma trận Kx3 có hàng thứ I là các thông số tương ứng của phần thứ i. Ví dụ, nếu K=4 như trong hình 7.3.1, ta định nghĩa: CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ ∏ ∏− = − = −− −− ++ ++== 1 0 1 0 21 210 21 21 1 K i K i ii iii i zaza zbzbb )z(H)z(H 7.3. Dạng Cascade Hình 7.3.1 Cascade củûa 2 khâu bâ ääc 2 CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.3. Dạng Cascade Hàøng thứù i củûa cáùc ma trậän nàøy làø cáùc vector hệä sốá 3 chiềàu vàø cáùc trạïng tháùi củûa phầàn thứù i, cóù nghĩa làø: (7.3.4) Ví dụï 7.3.1: Vẽ cã ùùc cáùch thựïc hiệän dạïng cascade vàø canonical củûa cáùc mạïch lọïc sau: CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = 323130 222120 121110 020100 323130 222120 121110 020100 3231 2221 1211 0201 1 1 1 1 www www www www W, bbb bbb bbb bbb B, aa aa aa aa A [ ] [ ] [ ]210 210 21 110 1 iiii iiii iii w,w,ww K,,,ib,b,bb a,a,a = −== = 7.3. Dạng Cascade Viếát phương trình sai phân I/O tâ ương ứùng vàø cáùc thuậät toáùn xửû lýù mẫu.ã Giảûi: Cáùc ma trậän trạïng tháùi vàø hệä sốá trong hàøm cas trong trườøng hợïp nàøy làø: Trong trườøng hợïp canonical, t cóù cáùc vector hệä sốá cho tửû thứùc vàø mẫu thã ứùc làø: CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 42 42 1021 21 21 21 2508401 449 50401 243 50401 243 −− −− −− −− −− −− +− +−= =⎥⎦ ⎤⎢⎣ ⎡ ++ ++⎥⎦ ⎤⎢⎣ ⎡ +− +−= z.z. zz )z(H)z(H z.z. zz z.z. zz)z(H ⎥⎦ ⎤⎢⎣ ⎡=⎥⎦ ⎤⎢⎣ ⎡ −=⎥⎦ ⎤⎢⎣ ⎡ −= 121110 020100 243 243 50401 50401 www www W,B, .. .. A 7.3. Dạng Cascade Phương trình sai phân tại các bộ cộng đầu vào và đầu ra của hình 7.3.3: Tổng số trạng thái trong trong các cách thực hiện dạng trực tiếp và canonical là giống nhau, đều bằng 4. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ [ ] [ ]25000084000000140409 .,.,.,.,.a,,,,,b =−= )n()n(w)n(w)n(y )n(w.)n(w.)n(x)n(w 44249 42502840 −+−−= −−−−= 7.3. Dạng Cascade Hình 7.3.3 Cáùch thựïc hiệän dạïng canonical củûa ví dụï 7.3.1. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.4. Cascade sang canonical Đểå chuyểån từø cáùch biểåu diễn trã ựïc tiếáp sang canonical, phương trình (7.1.4), sang cáùch biểåu diễn cascade, ã phương trình (7.3.1), đòøi hỏûi việäc phân tâ ích cáùc tửû thứùc vàø mẫu thã ứùc thàønh cáùc thừøa sốá bậäc hai. Điềàu nàøy cóù thểå đượïc thựïc hiệän bằèng cáùch tìm cáùc nghiệäm củûa cáùc đa thứùc nàøy rồài nhóùm chúùng thàønh từøng cặëp làø liên hơâ ïïp phứùc vớùi nhau. Cáùc thừøa sốá nghiệäm củûa cáùc nghiệäm thựïc bấát kỳø cóù thểå đượïc bỏû qua khi chúùng kếát hợïp thàønh từøng cặëp. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ )zp()zp)(zp( zazaza)z(D M M M 11 2 1 1 2 2 1 1 111 1 −−− −−− −−−= ++++= " " 7.4. Cascade sang canonical Ví dụï, khi cảû p1 vàø p2 đềàu làø thựïc, ta cóù thểå kếát hợïp chúùng thàønh SOS vớùi cáùc hệä sốá thựïc: Nếáu mộät nghiệäm nàøo đóù làø phứùc, chúùng phảûi làø mộät cặëp liên hơâ ïïp phứùc, ví dụï, nếáu p1 làø mộät nghiệäm phứùc, thếá thì p2 = p1* cũng phã ûûi làø mộät nghiệäm. Kếát hợïp cáùc thừøa sốá nghiệäm củûa cáùc cặëp nghiệäm liên hơâ ïïp thàønh mộät SOS vớùi cáùc hệä sốá thựïc, ví dụï: CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 2 21 1 21 1 2 1 1 111 −−−− ++−=−− zppz)pp()zp)(zp( 22 1 1 1 2 11 1 11 11 1 21 111 1 −− −−−− +−= ++−=−− zpz)pRe( zppz)pp()zp)(zp( *** 7.4. Cascade sang canonical Cáùch nàøy cũng õ đã õ đượïc sửû dụïng trong chương 5. Dùøng cáùch biểåu diễn sỗ áá phứùc trong tọïa độä cựïc , ta cóù vàø , ta cóù thểå viếát lạïi phương trình trên nhâ ư sau: Khi cáùc tửû thứùc vàø mẫu thã ứùc đã õ đượïc phân tâ ích thàønh cáùc thừøa sốá bậäc hai, mỗi thã ừøa sốá bậäc hai trên tâ ửû cóù thểå đi cặëp vớùi mộät thừøa sốá bậäc hai dướùi mẫu ã đểå tạïo thàønh mộät phầàn bậäc hai. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 1 11 θjeRp = 111 θcosR)pRe( = 2121 Rp = 22 1 1 11 22 1 1 1 11 1 21 2111 1 −− −−−− +−= +−=−− zRz)cos(R zpz)pRe()zp)(zp( * θ 7.4. Cascade sang canonical Việäc ghéùp cặëp cáùc thừøa sốá tửû thứùc vàø mẫu thã ứùc vàø việäc sắép xếáp cáùc SOS không phâ ûûi làø duy nhấát, nhưng hàøm truyềàn tổång sẽ giõ ááng nhau. Đốái vớùi cáùc đa thứùc bậäc cao, ta phảûi sửû dụïng đếán cáùc hàøm tìm nghiệäm đượïc cho trong cáùc package phầàn mềàm toáùn họïc như làø Matlab hay Mathematica. Trong mộät vàøi trườøng hợïp đặëc biệät củûa đa thứùc bậäc cao, ta cóù thểå tính toáùn đượïc nghiệäm bằèng tay, như ví dụï sau Ví dụï 7.4.1: Xáùc định dạïng thựïc hiệän cascade củûa mạïch lọïc: CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 321 54321 520771221 5328093760330480511 −−− −−−−− +++ −+−+−= z.z.z. z.z.z.z.z.)z(H 7.4. Cascade sang canonical Giảûi: Dùøng MATLAB, ta tìm đượïc 5 nghiệäm củûa tửû thứùc: z = 0.9, z = -0.5 ± 0.7j, z = 0.8 ± 0.4j Chúùng dẫn ã đếán cáùc thừøa sốá nghiệäm, theo cặëp liên hơâ ïïp phứùc: Tương tựï, ta tìm cáùc nghiệäm củûa mẫu thã ứùc: p = -0.8, p = - 0.7 ± 0.4j cho ta cáùc thừøa sốá nghiệäm Do đóù, tấát cảû cáùc cáùch ghéùp cặëp/xếáp thứù tựï củûa cáùc khâu SOS cho H(z):â CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ ( )( ) ( )( )( ) ( )2111 2111 1 806114050140801 74017050170501 901 −−−− −−−− − +−=−−+− ++=−−−+−− − z.z.z)j..(z)j..( z.zz)j..(z)j..( )z.( ( )( ) ( )2111 1 6504114070140701 801 −−−− − ++=−−−+−− + z.z.z)j..(z)j..( )z.( 7.4. Cascade sang canonical Cáùc ma trậän hệä sốá A vàø B cầàn thiếát cho việäc lậäp trình cho mạïch lọïc nàøy bằèng hàøm cas sẽ lã øø: Khâu bâ ääc nhấát củûa thểå đượïc xem như làø mộät trườøng hợï[ đặëc biệät củûa mộät SOS cóù dạïng (7.1.1) vớùi hệä sốá z-2 bằèng zero, cóù nghĩa làø b2 = a2 =0. Tương tựï, thừøa sốá bậäc hai cuốái cùøng làø trườøng hợïp đặëc biệät củûa mộät SOS FIR, cóù nghĩa làø vớùi a1 = a2 = 0 (nhưng a0 = 1). CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ ( )2121 2111 80611650411 7401801 901 −−−− −− − − +−++ ++ + −= z.z.. z.z. z.z. z. z.)z(H ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ − − = ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = 80611 74011 0901 001 650411 0801 .. . . B,.. . A 7.4. Cascade sang canonical Ví dụï 7.4.3: Mộät trườøng hợïp đặëc biệät kháùc, xáùc định dạïng thựïc hiệän cascade củûa mạïch lọïc: Giảûi: Nghiệäm củûa tửû thứùc làø 8 nghiệäm củûa phương trình trong đóù k làø sốá tựï nhiên. Lâ ááy căn bă ääc 8 củûa 2 vếá Ta cóù cáùc cặëp nghiệäm liên hơâ ïïp phứùc sau, như trong hình 7.4.1. Chúùng dẫn ã đếán cáùc thừøa sốá nghiệäm, theo cặëp liên hơâ ïïp phứùc: CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 8 8 062501 1 − − − −= z. z)z(H ππππ )k(jjkjj eeeezz 12288 101 +−− ===−=⇒=+ 710812 ,,,k,ez /)k(jk == + π { } { } { } { }43526170 z,z,z,z,z,z,z,z 7.4. Cascade sang canonical Tương tựï, ta tìm cáùc nghiệäm củûa mẫu thã ứùc: Lấáy căn bă ääc 8 hai vếá ta đượïc: Trong cáùc nghiệäm đóù, làø thựïc vàø cóù thểå đượïc ghéùp cặëp vớùi nhau thàønh mộät SOS. Cáùc nghiệäm còøn lạïi làø phứùc vàø đượïc ghéùp thàønh từøng cặëp liên hơâ ïïp: CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ ( )( ) ( )( ) ( )( ) ( )( ) 21211413 21211 5 1 2 21211 6 1 1 21211 7 1 0 847811 8 72111 765401 8 52111 765401 8 32111 847811 8 2111 −−−−−− −−−−−− −−−−−− −−−−−− ++=+⎟⎠ ⎞⎜⎝ ⎛−=−− ++=+⎟⎠ ⎞⎜⎝ ⎛−=−− +−=+⎟⎠ ⎞⎜⎝ ⎛−=−− +−=+⎟⎠ ⎞⎜⎝ ⎛−=−− zz.zzcoszzzz zz.zzcoszzzz zz.zzcoszzzz zz.zzcoszzzz π π π π ππ )k(jjk e).(e..zz. 124288 5006250062500062501 +− ==−=⇒=− 71050 82 ,,,k,e.p /jkk == π 7.4. Cascade sang canonical Chúùng dẫn ã đếán cáùc thừøa sốá nghiệäm bậäc 2: Cuốái cùøng, ta cóù CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ { } { } { } { }43526170 p,p,p,p,p,p,p,p ( )( ) ( )( ) ( )( ) ( )( ) ( )( ) 21211413 2211 5 1 2 21211 6 1 1 2111 7 1 0 50150 8 62111 50150 8 42111 50150 8 22111 50150150111 −−−−−− −−−−− −−−−−− −−−−− ++=+⎟⎠ ⎞⎜⎝ ⎛−=−− +=+⎟⎠ ⎞⎜⎝ ⎛−=−− +−=+⎟⎠ ⎞⎜⎝ ⎛−=−− −=−−=−− z.zz.zcoszpzp z.z.zcoszpzp z.zz.zcoszpzp z.z.z.zpzp π π π . z.z zz.. z. zz.. . z.z zz.. z. zz.)z(H ⎥⎦ ⎤⎢⎣ ⎡ ++ ++⎥⎦ ⎤⎢⎣ ⎡ + ++ ⎥⎦ ⎤⎢⎣ ⎡ +− +−⎥⎦ ⎤⎢⎣ ⎡ − +−= −− −− − −− −− −− − −− 21 21 2 21 21 21 2 21 501 847811 501 765401 501 765401 501 847811 7.4. Cascade sang canonical Cáùc ma trậän hệä sốá A vàø B trong trườøng hợïp nàøy sẽ lã øø: Mạïch lọïc nàøy đóùng vai tròø như mộät mạïch lọïc notch /comb. Trong đóù cáùc dip zero đượïc dịch p/8 khi so sáùnh vớùi cáùc đỉnh cựïc. Cáùc mẫu cã ựïc zero vàø đáùp ứùng biên â độä | H(w) | đượïc cho trong hình 7.4.1. Cáùc ví dụï nàøy chỉ nhằèm mụïc đích minh họïa quáù trình phân tâ ích thàønh nhân tâ ửû. Cáùch thựïc hiệän dạïng canonical kháù hiệäu quảû hơn cáùch cascade, vì nóù chỉ liên â quan đếán mộä bộä nhân vâ øø mộät khây trễ 8â ã -fold CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ − − = ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ − − = 1847811 1765401 1765401 1847811 5011 5001 5011 5001 . . . . B, . . . . A 7.4. Cascade sang canonical Cáùc thựïc hiệän canonical vàø thuậät toáùn xửû lýù mẫu tã ương ứùng đượïc cho trong hình 7.4.2. ởû đây, â w = [w0, w1, w2, w3, w4, w5, w6, w7, w8] làø vector trạïng tháùi trong 9 chiềàu. Hình 7.4.1 Mẫu cã ựïc/zero vàø đáùp ứùng biên â độä củûa ví dụï 7.4.3 CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.4. Cascade sang canonical CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.4. Cascade sang canonical CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ )w,(delay wwy w.xw :dox sampleinputeachfor 0 0 8 06250 8 8 += += 7.5. Cài đặt phần cứng và các bộ đệm vòng Việc cài đặt phần cứng của các mạch lọc FIR với các chip DSP đã được trình bày trong phần 4.2.4. Các mạch lọc IIR cũng có thể được thiết kế một cách tương tự. Xét SOS (7.1.1) được biểu diễn theo dạng canonical như hình 7.2.3. Một cách thiết kế phần cứng bằng một chip DSP điển hình được cho trong hình 7.5.1. Các hệ số mạch lọc được chứa trong RAM hay ROM trên chip. Các trạng thái trong được chứa trong RAM. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.5. Cài đặt phần cứng và các bộ đệm vòng Hình 7.5.1 Cáùch thựïc hiệän mộät khâu bâ ääc hai bằèng chip DSP điểån hình. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.5. Cài đặt phần cứng và các bộ đệm vòng Như trong phần 4.2.4, thuật toán xử lý mẫu (7.2.2) có thể được viết theo dạng mô phỏng các lệnh của một chip DSP, như là các lệnh MAC và các lệnh dịch dữ liệu: (7.5.1) CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 000 111 220 11 wby:y,w:w wby:y,w:w waw:w wax:w :dox sampleinput eachfor 1 2 0 0 +== +== −= −= 7.5. Cài đặt phần cứng và các bộ đệm vòng Trong chip DSP hiện đại, mỗi dòng trong thuật toán trên có thể được cài đặt bằng một lệnh loại-MAC; do đó, mỗi một SOS có thể được cài đặt với 5 dòng lệnh cho mỗi mẫu vào. Lưu ý: các trạng thái w1 và w2 không được cập nhật cho đến khi nào w0 đã được tính toán xong. Các lệnh MAC để tính w0 thực hiện theo chiều tới, có nghĩa là từ hệ số ai thấp nhất đến cao nhất. Điều này là thuận tiện bởi vì khi w0 vừa được tính xong, các lệnh dịch dữ liệu/MAC kết hợp để tính y có thể bắt đầu, nhưng sẽ thực hiện lùi từ hệ số bi cao nhất đền thấp nhất. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.5. Cài đặt phần cứng và các bộ đệm vòng Trong trường hợp tổng quát, ta có thể viết lại phương trình (7.2.5) với giả sử L = M: (7.5.2) (7.5.3) CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ ii i1i MM 0 0 wby:y w:w :do ,1,,Mifor wb:y waw:w :do M,1,2,ifor x:w :dox sampleinput eachfor += = −= = −= = = + 1 110 M)bậc FIRlọcmạch(C)M(Ninstr ++= 1 7.5. Cài đặt phần cứng và các bộ đệm vòng Thời gian tổng cần thiết cho một quá trình xử lý một mẫu đầu vào sẽ là . (7.5.5) Trong đó Tinstr là thời gian cho một lệnh cơ bản, như MAC hay MACD. Cũng trong phần 4.2.4, Tinstr khoảng 30 ∏ 80 ns, tương ứng với lệnh có tốc độ finstr = 1/Tinstr = 12.5 ∏ 33.3 MIPS (Million Instructions Per Second). Thời gian xử lý một mẫu áp đặt giới hạn trên của tốc độ lấy mẫu mà mạch lọc có thể hoạt động được: (7.5.6) Trong đó 1/Tproc là tốc độ tính toán của chip, tức là số mẫu có thể được xử lý trong 1s. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ instrinstrproc TNT = instr instr instrinstrproc s N f TNT f === 11 7.5. Cài đặt phần cứng và các bộ đệm vòng Ta không thể tính toán số lệnh không phụ thuộc vào bộ xử lý cho một mạch lọc cụ thể. Số lệnh cũng như thời gian xử lý Tproc trong 1s tùy thuộc vào kiến trúc, tập lệnh, cách truy xuất bộ nhớ của chip DSP. Đối với một cascade của SOS, để tìm thời gian xử lý tổng ta phải tính toán thời gian phải chi phí để xử lý một SOS rồi nhân cho số lượng khâu. Theo phương trình (7.5.1) ta thấy rằng cần khoảnh 5 lệnh cho một SOS; do đó, thời gian xử lý cho một SOS có thể xấp xỉ bằng (bỏ qua overhead). CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.5. Cài đặt phần cứng và các bộ đệm vòng TSOS ª 5Tinstr (7.5.7) Khi có K SOS được nối cascade hay song song, nhưng đều được thiết kế với cùng một DSP, thì tổng số lệnh sẽ là: Ninstr = 5K + C (Mạch lọc IIR khâu K) (7.5.7) Trong đó là overhead cho mạch lọc K-tầng. Do đó thời gian xử lý tổng là: Tproc = Tinstr(5K + C) = KTSOS + Ctinstr (7.59) Bỏû qua hệä sốá overhead tương đốái nhỏû, ta tìm tốác độä lấáy mẫu tỗ áái đa fs cho K khâu bâ ääc hai. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.5. Cài đặt phần cứng và các bộ đệm vòng (7.5.10) Đối với các mạch song song (xem bài tập 5.18), ta có thể nâng tốc độ thông lượng bằng cách dùng K chip DSP khác nhau hoạt động song song, mỗi chip được dùng để thực hiện phép lọc SOS trong TSOS giây. Trong trường hợp này, thời gian xử lý tổng là TSOS vì tất cả các DSP kết thúc đồng thời, và do đó, tốc độ thông lượng sẽ nhanh hơn K lần trong trường hợp 1 DSP: (7.5.11) CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ K f KTT f instr SOSproc s 5 11 === SOSproc sSOSproc TT fTT 11 ==⇒= 7.5. Cài đặt phần cứng và các bộ đệm vòng Đối với các mạch cascade, ta cũng có thể sử dụng K chip DSP – mỗi chip cho một SOS – để tăng tốc độ xử lý. Tuy nhiên, vì đầu ra của khâu này là đầu vào của khâu kế tiếp nên không thể chạy K chip DSP đồng thời. Mỗi DSP phải chờ TSOS giây cho DSP trước nó kết thúc. Một giải pháp là pipeline các phép lọc của các khâu liên tiếp, do đó tất cả các DSP hoạt động với nhau, nhưng mỗi DSP xử lý đầu vào từ thời điểm lấy mẫu trước đó. Việc này có thể được thực hiện bằng cách chèn các khâu trễ đơn vị giữa các DSP, như trong hình 7.5.2. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.5. Cài đặt phần cứng và các bộ đệm vòng Hình 7.5.2 Pipeline hoạt động của nhiều bộ xử lý DSP. Tại thời điểm thứ n, khi DSP-1 đang xử lý mẫu đầu vào hiện hành x(n), DSP-2 đang xử lý mẫu y1(n-1) được DSP xuất vào thời điểm trước đó và được lưu trong một thanh ghi chờ, và DSP-3 đang xử lý mẫu y2(n-1) được DSP-2 tạo ra trước đó, Tác động của việc phát sinh các thời gian trễ này chỉ là một thời gian trễ chung trong đầu ra. Ví dụ, trong trường hợp được chỉ ra trong hình 7.5.2, hàm truyền tổng hợp thay đổi từ H(z) = H1(z) H2(z) H3(z) thành: CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.5. Cài đặt phần cứng và các bộ đệm vòng H(z) = H1(z)z-1H2(z) z-1H3(z) = z-2H1(z)H2(z)H3(z) tương ứng với việc làm trễ đầu ra 2 xung đơn vị. Đối với K khâu, thời gian trễ tổng cộng là z-(K-1). Ví dụï 7.5.1: Chip DSP dấáu chấám độäng AT&T DSP 32 cáùc [87,88]cóù thểå thựïc thi cáùc lệänh loạïi -MAC cơ bảûn trong 4 chu kỳø xung nhịp, tứùc làø Tinstr = 4Tclock. Do đóù, tầàn sốá lệänh củûa nóù làø finstr = fclock/4. Mộät lệänh MAC điểån hình biểåu diễn 2 phễ ùùp toáùn dấáu chấám độäng: mộät phéùp nhân vâ øø mộät phéùp cộäng. Do đóù, chip cóù tốác độä tính toáùn làø fFlop = 2finstr = fclock/2. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.5. Cài đặt phần cứng và các bộ đệm vòng Ở tốc độ xung nhịp fClock = 50 MHz, nó có tốc độ lệnh là finstr = fclock/4 = 12.5 MHz và tốc độ tính toán là fFlop = fclock/2 = 25 MHz. Thời gian cho một lệnh là Tinstr = 1/ finstr = 80 ns. Một mạch lọc FIR bậc M có thể được cài đặt với Ninstr = (M + 1) + 11 = M + 12 (lệnh/mẫu) Do đóù, thờøi gian xửû lýù 1 mẫu lẫ øø Tproc = (M + 12)Tinstr. Đốái vớùi mộät mạïch lọïc FIR 100-tap (M=99) dùøng DSP 32 cáùc đang chạïy ởû tốác độä 50 MHz, ta cóù Tproc = (M + 12)Tinstr = (99 + 1)80 = 8.9 ms, cóù tốác độä thông lâ ượïng tốái đa làø fs = 1/Tproc = 112.4 kHz. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.5. Cài đặt phần cứng và các bộ đệm vòng Một mạch lọc IIR K-khâu được cài đặt Ninstr = 5K + 10 (Lệänh/mẫu)ã Nó đòi hỏi số trạng thái chờ chu kỳ – máy là: Nwait = 2K + 1 (Trạïng tháùi chờø/mẫu)ã Do đó, thời gian xử lý tổng cho K khâu sẽ là: Tproc = NinstrTinstr + NwaitTclock Viếát Tinstr = 4Tclock = 4/fclock ta có Tproc = (4Ninstr + Nwait)/fclock = (22K + 41)/fclock Đốái vớùi mộät SOS, K=1, vàø xung nhịp 50 MHz, ta tìm đượïc Tproc = 1.26 ms, hay tầàn sốá lấáy mẫu cã ựïc đạïi làø: CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.5. Cài đặt phần cứng và các bộ đệm vòng fs = 1/Tproc = 793.6 kHz Đối với một mạch lọc 5 khâu, K = 1, ta tìm được Tproc = 3.02 ms, hay tần số lấy mẫu cực đại là fs = 33.1 kHz. Và cho một mạch lọc 10 khâu, K=10, ta có Tproc = 5.22 ms, hay tần số lấy mẫu cực đại là fs = 191.6 kHz. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.6. Các ảnh hưởng của quá trình lượng tử hóa trong mạch lọc số Có hai loại ảnh hưởng do lượng tử hóa trong các mạch lọc số bên cạnh việc lượng tử hóa các tín hiệu đầu vào và đầu ra: các sai số roundoff trong các phép tính trong của mạch lọc và lượng tử hóa hệ số. Lượng tử hóa hệ số thực hiện khi các hệ số mạch lọc được làm tròn từ giá trị chính xác của nó đến một số hữu hạn các chữ số (hay, các bit cho các cài đặt phần cứng). Cách biểu diễn trực tiếp và canonical có xu hướng rất nhạy với các việc làm tròn này, trong khi đó cách biểu diễn cascade thì rất tốt. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.6. Các ảnh hưởng của quá trình lượng tử hóa trong mạch lọc số Các mạch lọc bậc cao có các cực phân bố hẹp trong mặt phẳng z, những thay đổi nhỏ trong các hệ số mẫu thức có thể gây ra dịch lớn vị trí của các cực. Nếu bất kỳ điểm cực nào di chuyển ra ngoài đường tròn đơn vị, mạch lọc sẽ trở nên không ổn định, làm cho nó không thể sử dụng được. Nhưng cho dù các điểm cực không di chuyển ra ngoài, các khoảng dịch lớn có thể làm méo dạng đáp ứng tần số của mạch lọc và do đó nó không còn thõa mãn các thông số thiết kế. Trong thực tế, ta phải luôn kiểm tra rằng tính ổn định và các thông số của mạch lọc được bảo đảm khi các hệ số được làm tròn. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.6. Các ảnh hưởng của quá trình lượng tử hóa trong mạch lọc số Khi dùng các package phần mềm để thiết kế một mạch lọc, ta phải luôn giữ các thông số thiết kế với số chữ số bảo đảm cho các yêu cầu. Bài tập 7.20 và 7.21 khảo sát các ảnh hưởng lượng tự hóa trên và một số nguy cơ thường gặp. Điều này cũng không có nghĩa là các dạng trực tiếp và canonical không được sử dụng; thực tế, ta thấy trong ví dụ 7.4.3 và 7.4.4, các dạng canonical đơn giản hơn nhiều khi cài đặt so với các dạng cascade, và cũng rất tốt trong lượng tử hóa hệ số. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.6. Các ảnh hưởng của quá trình lượng tử hóa trong mạch lọc số Tóm lại, dạng cascade được khuyến cáo sử dụng trong các kỹ thuật thiết kế các mạch lọc IIR thông thấp, thông dải, thông cao, băng hẹp bậc cao, như là phương pháp biến đổi song tuyến tính, cho các kết quả thiết kế ở dạng cascade. Có các dạng thực hiện khác, như là các khâu bậc 2 cascade trong dạng chuyển vị, các dạng song song, và các dạng dàn, hoạt động rất tốt trong quá trình lượng tử hóa hệ số. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.6. Các ảnh hưởng của quá trình lượng tử hóa trong mạch lọc số Sai số roundoff xảy ra trong các phép nhân và các phép cộng trong, ví dụ y:=y + aw. Tích aw đòi hỏi hai lần số bit của mỗi thừa số để có thể biểu diễn một cách chính xác. Sai số roundoff sẽ xảy ra nếu tích này được làm tròn đến kích thước ban đầu của hai thừa số. Các sai số roundoff như thế có thể bị đưa vào các vòng hồi tiếp của các mạch lọc recursive và có thể bị khuếch đại, gây méo dạng rất lớn trong đáp ứng mong muốn. „ Các thực hiện trạng thái đặc biệt và kỹ thuật của định hình nhiễu lượng tử hóa (còn được gọi là định hình phổ sai số – error spectrum shaping) có thể được sử dụng để tối thiểu hóa tích lũy sai số roundoff. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ 7.6. Các ảnh hưởng của quá trình lượng tử hóa trong mạch lọc số Để không tràn các kết quả trung gian trong các phép tính của mạch lọc, các hệ số định tỷ lệ thích hợp có thể được đưa ra tại các điểm khác nhau trong các tầng lọc. Các chip DSP hiện đại giải quyết vấn đề ảnh hưởng do lượng tử hóa theo hai hướng: dùng các từ dài, như là 32 bit, để lưu trữ các hệ số, và dùng các bộ cộng dồn độ chính xác-kép để thực hiện nhiều phép toán MAC mà không bị sai số roundoff trước khi kết quả cuối cùng được làm tròn. CHUƠNG 7: THỰÏC HIỆÄN MẠÏCH LỌÏC SỐÁ

Các file đính kèm theo tài liệu này:

  • pdfxu_ly_so_tin_hieuchuong_7_2358.pdf
Tài liệu liên quan