1. Trang chủ
  2. » Luận Văn - Báo Cáo

TÌM HIỂU bộ lọc điểm cố ĐỊNH có đáp ỨNG XUNG hữu hạn FIR

46 587 0

Đ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 46
Dung lượng 1,3 MB

Nội dung

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA BÁO CÁO TIỂU LUẬN MÔN: THIẾT KẾ LỌC SỐ VÀ MÃ HÓA BĂNG CON ĐỀ TÀI: TÌM HIỂU BỘ LỌC ĐIỂM CỐ ĐỊNH CÓ ĐÁP ỨNG XUNG HỮU HẠN FIR GVHD: TS.Ngô Văn Sỹ HVTH: Nguyễn Xuân Tùng Nguyễn Thanh Tùng Ketnooi.com kết nối công dân điện tử Đà Nẵng, tháng 3/2013 LỜI MỞ ĐẦU Xử lý tín hiệu số (Digital Signal Processing – DSP) lĩnh vực mới, phát triển mạnh mẽ mặt lý thuyết công nghệ Ngày nay, trở thành môn học thiếu cho nhiều ngành học khoa học kỹ thuật Các thuật toán mang lại thuận tiện cho công nghệ ứng dụng mới, lĩnh vực kỹ thuật điện tử điều khiển tự động Phép xử lý DSP lọc, hệ thống đề cập đến nhiều xử lý tín hiệu số lọc số (Digital Filter) Nếu xét đáp ứng xung chia lọc số thành loại lọc có đáp ứng xung hữu hạn FIR (Finite Impulse Response) gọi lọc không đệ quy, lọc có đáp ứng xung vô hạn IIR (Infinte Impulse Response) gọi lọc đệ quy Xét đáp ứng tần số biên độ chia lọc, FIR hay IIR, thành loại bản: thông thấp, thông cao, thông dải chắn dải Các lọc thiết kế phương pháp sau đây: Phương pháp cửa sổ (Window Design Techniques), Phương pháp lấy mẫu tần số (Frequency Sampling Design Techniques) Phương pháp xấp xỉ tối ưu cân gợn sóng (Optimal Equiripple Design Techniques) Mỗi phương pháp có đặc điểm ưu khuyết điểm riêng Với tiểu luận này, nhóm em gồm Nguyễn Thanh Tùng Nguyễn Xuân Tùng xin phép trình bày toán “ Tìm hiểu lọc điểm cố định” có đáp ứng xung hữu hạn FIR Nội dung tiểu luận chia thành phần: Phần Cơ sở lý thuyết Phần Chương trình mô Chúng em xin trân trọng cảm ơn Thầy TS Ngô Văn Sỹ tận giảng dạy hướng dẫn để hoành thành tốt tiểu luận Phần lớn nội dung trình bày báo cáo lấy từ giảng, tài liệu tham khảo thầy cung cấp Trong trình thực tiểu luận, cố gắng song không tránh khỏi sai sót Rất mong nhận góp ý Thầy, bạn học viên lớp để nội dung tiểu luận hoàn chỉnh Đà Nẵng, ngày 05 tháng 01 năm 2013 Ketnooi.com kết nối công dân điện tử PHẦN CƠ SỞ LÝ THUYẾT 1.1 Mở đầu Việc thiết kế lọc số tiến hành theo bước: - Đưa tiêu (Specifications): Để thiết kế lọc, cần xác định tiêu Các tiêu xác định ứng dụng - Tìm xấp xỉ (Appproximations): Một tiêu xác định, ta sử dụng khái niệm công cụ toán học khác để tiến tới biểu diễn tính gần cho lọc với tập tiêu cho Bước chủ đề việc thiết kế lọc số - Thực lọc (Implementation): Kết bước mô tả dạng phương trình sai phân, hàm hệ thống H(z), đáp ứng xung h(n) Từ mô tả thi hành lọc phần cứng phần mềm mô máy tính Ở nhiều ứng dụng xử lý tiếng nói xử lý âm thanh, lọc số dùng để thực thao tác chọn tần Do đó, tiêu đòi hỏi vùng tần số chu kỳ số lượng đáp ứng pha lọc mong muốn Nói chung đáp ứng pha cần tuyến tính dải thông - Trong trường hợp lọc FIR , Có thể đạt xác yêu cầu pha tuyến tính - Trong trường hợp lọc IIR, dải thông có pha tuyến tính khó đạt Do đó, xét tiêu biên độ Có nhóm tiêu: • Các tiêu tuyệt đối (Absolute Specifications) : Đưa tập yêu cầu jw hàm đáp ứng biên độ |H(e )| Những tiêu sử dụng chung cho lọc FIR • Các tiêu tương đối (Relative Specifications - DB) : Đưa yêu cầu tính theo decibels (dB), cho : dBscale = −20 log10 H ( e jω ) jω H (e ) ≥0 (1.1) max Phương pháp phương pháp phổ biến thực tế sử dụng cho lọc FIR IIR Trong phần tiếp sau đây, để mô tả tiêu lọc xem xét việc thiết kế lọc thông thấp ví dụ sở để thiết cho lọc FIR 1.2 Các tiêu Trên hình (1.1) mô tả tiêu lọc FIR thông thấp (Low Pass Filter): 1.2.1.Các tiêu tuyệt đối Ketnooi.com kết nối công dân điện tử • Band [0, wp] gọi dải thông, δ dung sai (gợn sóng) chấp nhận đáp ứng dải thông lý tưởng • Band [ws, π ] gọi dải chắn, δ dung sai dải chắn Band [wp, ws] gọi dải chuyển tiếp, ràng buộc đáp ứng biên độ dải ω ω 1.2.2 Các tiêu tương đối (DB) Rp: Độ gợn sóng dải thông tính theo dB As : Suy hao dải chắn tính theo dB Quan hệ tiêu sau: − δ1 R p = −20 log10 > (≈0) for passband + δ1 A s = −20 log10 (1.3) (1.2) δ2 > (>>1) for stopband + δ1 Tại tập trung vào lọc thông thấp? Các tiêu đưa lọc FIR thông thấp, tất nhiên lọc khác thông cao HPF (High Pass Filter), thông dải BPF (Band Pass Filter) định nghĩa tương tự Tuy nhiên, tham số thiết kế quan trọng dung sai dải tần tần số cạnh-dải Bởi vậy, phần sở lý thuyết tập trung vào lọc FIR thông thấp Việc thiết kế cụ thể cho lọc FIR thông dải kỹ thuật cửa sổ phát triển sở lọc thông thấp mô tả chi tiết phần Ketnooi.com kết nối công dân điện tử Các thuận lợi thiết kế thi hành lọc số FIR Việc thiết kế thực lọc FIR có thuận lợi sau đây: • Đáp ứng pha tuyến tính • Dễ thiết kế không gặp vấn đề ổn định (lọc FIR ổn định) • Việc thực hiệu • • Có thể sử dụng DFT để thực • Mặc dầu dải cho dải thông hay dải chắn tương đối đảo lại ( minor issue) Các thuận lợi đáp ứng pha tuyến tính Đáp ứng pha tuyến tính (linear phase response) mang lại thuận lợi sau: • Bài toán thiết kế gồm phép tính số học thực không cần phép tính số học phức • Bộ lọc pha tuyến tính méo trễ nhóm bị trễ khoảng không đổi • Đối với lọc có chiều dài M (hoặc bậc M-1) số phép toán có bậc M/2 khảo sát thi hành pha tuyến tính 1.3 Cấu trúc lọc FIR Cho h(n), n=0,1,…,M-1 đáp ứng xung có chiều dài M Thì hàm truyền hệ thống lọc đáp ứng xung hữu hạn với hàm hệ thống có dạng: M −1 H (z) = b + b1 z −1 +  + b M −1 z1−M = ∑ b n z − n n =0 (1.4) Như đáp ứng xung h(n) là: bn ≤ n ≤ M − h( n) =  else 0 Và phương trình sai phân là: (1.5) y (n) = b0 x(n) + b1 x (n − 1) +  + bM −1 x(n − M + 1) (1.6) Đây tích chập tuyến tính dãy hữu hạn Bậc lọc M-1, chiều dài lọc M (bằng với số lượng hệ số) Các cấu trúc lọc FIR luôn ổn định, tương đối đơn giản so với cấu trúc lọc IIR Hơn nữa, lọc FIR thiết kế để có đáp ứng pha tuyến tính điều cần thiết số ứng dụng Chúng ta xem xét cấu trúc lọc FIR sau đây: 1.3.1 Cấu trúc dạng trực tiếp Phương trình sai phân thực dãy liên tiếp trễ đường phản hồi: y(n ) = b x (n ) + b1 x (n − 1) +  + b M −1 x (n − M + 1) (1.7) Do mẫu thức đơn vị nên ta có cấu trúc dạng trực tiếp Cấu trúc dạng trực tiếp cho hình (1.2) với M = 5: x(n) b0 z-1 b1 z-1 b2 z-1 b3 z-1 Hình (1.2) Cấu trúc lọc FIR dạng trực tiếp Ketnooi.com kết nối công dân điện tử b4 y(n) 1.3.2 Cấu trúc dạng ghép tầng Hàm hệ thống H(z) biến đổi thành tích khâu bậc với hệ số thực Các khâu thực dạng trực tiếp lọc tổng thể có dạng ghép tầng khâu bậc b  b  H (z) = b + b1 z −1 +  + b M −1 z1−M = b 1 + z −1 +  + M −1 z1−M  (1.8) b0  b0  K = b ∏ (1 + B k ,1 z −1 + B k , z − ) k =1 M K =   , Bk,1 Bk,2 số thực đại diện cho hệ số khâu bậc 2 Cấu trúc dạng ghép tầng cho hình (1.3) với M = 7: 1.3.3 Cấu trúc dạng pha tuyến tính x(n) b0 y(n) z -1 z-1 B1,1 B1,2 z -1 z-1 B2,1 B2,2 z-1 z-1 B3,1 B3,2 Hình (1.3) Cấu trúc lọc FIR dạng ghép tầng Đối với lọc chọn tần, người ta mong muốn có đáp ứng pha hàm tuyến tính theo tần số, nghĩa là: ∠H (e jω ) = β − αω − π ≤ ω ≤ π (1.9) π Trong : β = ± α số Đối với lọc FIR nhân có đáp ứng xung khoảng [0, M-1], điều kiện tuyến tính là: h (n ) = h (M − − n ); β = 0, ≤ n ≤ M − (1.10) h (n ) = −h (M − − n ); β = ± π / 2, ≤ n ≤ M − (1.11) Xét phương trình sai phân cho phương trình (1.6) với đáp ứng xung đối xứng phương trình (1.10), ta có: y(n ) = b x (n ) + b1 x (n − 1) +  + b1 x (n − M + 2) + b x (n − M + 1) = b [ x (n ) + x (n − M + 1)] + b1 [ x (n − 1) + x (n − M + 2)] +  Sơ đồ khối thực phương trình sai phân mô tả hình (1.4) M lẻ M chẵn: Đối với M lẻ: M = 7, M chẵn: M = ( hình 1.4 ) Rõ ràng, với bậc lọc (cùng M) cấu trúc pha tuyến tính tiết kiệm 50% nhân so với cấu trúc dạng trực tiếp Ketnooi.com kết nối công dân điện tử 1.4 Các đặc tính lọc FIR pha tuyến tính Trong phần thảo luận hình dạng đáp ứng xung, đáp ứng tần số hàm hệ thống lọc FIR pha tuyến tính Cho h(n), ≤ n ≤ M – 1, đáp ứng xung có chiều dài M hàm truyền hệ thống là: M −1 M −1 n =0 n =0 H (z) = ∑ h (n )z − n = z −( M −1) ∑ h (n )z M −1−n (1.12) có (M-1) điểm cực gốc (trivial poles) M-1 điểm không nằm vị trí mặt phẳng z Đáp ứng tần số là: M −1 H (e jω ) = ∑ h (n )e − jωn , − π < ω ≤ π n =0 (1.13) 1.4.1 Đáp ứng xung h(n) Chúng ta đưa ràng buộc pha tuyến tính: ∠H (e jω ) = −αω, − π < ω ≤ π (1.14) đó: α số trễ pha Ta biết h(n) phải đối xứng, nghĩa là: M −1 (1.15) Do h(n) đối xứng theo α, số đối xứng Có hai kiểu đối xứng: M −1 • M lẻ: Trong trường hợp này, α = số nguyên Đáp ứng xung mô tả (hình 1.5) đây: h (n ) = h (M − − n ), ≤ n ≤ M − 1, α = Hình 1.5 Đáp ứng xung đối xứng, M lẻ M −1 số nguyên Đáp ứng xung mô tả (hình 1.6) đây: • M chẵn: Trong trường hợp này, α = Ketnooi.com kết nối công dân điện tử Ta có lọc FIR pha tuyến tính loại hai ta yêu cầu đáp ứng pha ∠H ( e jω ) Hình 1.6 Đáp ứng xung đối xứng, M chẵn thoả mãn điều kiện: ∠H (e jω ) = β − αω với − π < ω ≤ π (1.16) Đáp ứng pha đường thẳng không qua gốc Trong trường hợp α số trễ pha, nhưng: d∠H (e jω ) = −α (1.17) dω số, trễ nhóm (α số trễ nhóm) Trong trường hợp này, tần số làm trễ với tốc độ không đổi Đối với kiểu pha tuyến tính này, thấy rằng: M −1 π h (n ) = −h (M − − n ), ≤ n ≤ M − α = ,β= ± (1.18) 2 Điều có nghĩa đáp ứng xung h(n) phản đối xứng (antisymmetric) Chỉ số M −1 đối xứng α = Một lần lại có kiểu, cho M lẻ M chẵn M −1 • M lẻ: Trong trường hợp này, α = số nguyên Đáp ứng xung mô tả (hình 1.7) đây: Hình 1.7 Đáp ứng xung phản đối xứng, M lẻ Lưu ý mẫu h(α) α = M −1  M −1  = phải 0, nghĩa là, h    Ketnooi.com kết nối công dân điện tử M −1 số nguyên Đáp ứng xung mô tả hình 1.8 • M chẵn: Trong trường hợp này, α = Hình 1.8 Đáp ứng xung phản đối xứng, M chẵn 1.4.2 Đáp ứng tần số H(ejω ) Như vậy, tổ hợp hai loại đối xứng phản đối xứng với M chẵn M lẻ, ta có bốn kiểu lọc FIR pha tuyến tính Đáp ứng tần số kiểu có biểu thức hình dạng riêng Để nghiên cứu đáp ứng pha kiểu này, ta viết biểu thức H(ejω) sau: π M −1 H (e jω ) = H r (e jω )e j(β−αω) ; β = ± , α = (1.19) 2 Hr(ejω ) hàm đáp ứng độ lớn hàm đáp ứng biên độ Đáp ứng độ lớn hàm thực, vừa dương vừa âm, không giống đáp ứng biên độ luôn dương Đáp ứng pha kết hợp với đáp ứng biên độ hàm không liên tục, kết hợp với đáp ứng độ lớn hàm tuyến tính liên tục • Bộ lọc FIR pha tuyến tính Loại-1 (Type 1): Đáp ứng xung đối xứng, M lẻ: M −1 Trong trường hợp β = , α = biến nguyên, h( n ) = h( M − − n ) , ≤ n ≤ M − , ta chứng tỏ rằng: ( M −1) / H (e jω ) =  ∑ a ( n ) cos ωn  e − jω( M −1) /  n =0  (1.20) đó:  M −1 a ( 0) = h     M −1  a ( n ) = 2h − n   với mẫu (1.21) M −3 với ≤ n ≤ • Bộ lọc FIR pha tuyến tính Loại-2 (Type 2): Đáp ứng xung đối xứng, M chẵn Ketnooi.com kết nối công dân điện tử Trong trường hợp β = , h ( n ) = h ( M − − n ) , ≤ n ≤ M − , α = biến nguyên, ta chứng tỏ rằng: M /     H (e jω ) =  ∑ b( n ) cos ω n −  e − jω( M −1) / 2      n =1 đó: M M  b( n ) = 2h  − n  với n = 1,2, ,   Sosánh (1.21) (1.18), ta có: M/2    H r (ω) = ∑ b( n ) cosω n −  n =1    M −1 (1.22) (1.23) (1.24) M/2    Lưu ý: Tại ω = π , ta có H r (π) = ∑ b( n ) cosπ n −  = mà không cần quan tâm n =1    đến b(n) h(n) Do sử dụng loại (h(n) đối xứng, M chẵn) lọc thông cao lọc chắn dải • Lọc FIR pha tuyến tính Loại-3 (Type 3): Đáp ứng xung phản đối xứng, M lẻ: π M −1 Trong trường hợp ta có β = , α = biến nguyên, 2  M −1 h ( n ) = −h ( M − − n ) , ≤ n ≤ M − , h   = ta chứng tỏ:    π  M −1    ω   j  − ( M −1) / H (e ) =  ∑ c( n ) sin ωn  e    n =0  jω (1.25) :  M −1  c( n ) = h  − n   So sánh (1.24) (1.18), ta có: với n = 1,2, , ( M −1) / H r ( ω) = ∑ c( n ) sin ωn n =0 M (1.26) (1.27) Lưu ý: Tại ω = ω = π , ta có H r ( ω) = mà không cần quan tâm c(n) h(n) Hơn nữa, e j = j , điều có nghĩa jH r ( ω) ảo Do đó, loại lọc không thích hợp việc thiết kế lọc thông thấp thông cao Tuy nhiên, điều thích hợp việc xấp xỉ vi phân biến đổi Hilbert số lý tưởng • Lọc FIR pha tuyến tính Loại-4 (Type 4):Đáp ứng xung phản đối xứng, M chẵn π Trong trường hợp β = , h ( n ) = −h ( M − − n ) , ≤ n ≤ M − , M −1 α= biến nguyên, ta chứng tỏ rằng: π Ketnooi.com kết nối công dân điện tử 10 - 65 15-bit hệ số cho giai đoạn thứ ba >> Hq5 = minimizecoeffwl(Hm,'MatchRefFilter',false); Bằng cách gia tăng hệ số lọc, giảm chiều dài từ mã: - 10-bit hệ số cho gia đoạn - 10 12-bit hệ số cho giai đoạn thứ hai - 65 15-bit hệ số cho giai đoạn thứ ba >> Hq5 = minimizecoeffwl(Hm,'MatchRefFilter',false); Cuối cùng, để kiểm soát chiều dài từ mã cách tốt sử dụng constraincoeffwl() Đối với việc thiết kế lọc nhiều tầng, độ dài từ mã giai đoạn thiết kế riêng Ví dụ để hạn chế độ dài từ mã gia đoạn khác nhau, dùng 10-bit, 12-bit, 15-bit tương ứng Chúng ta thiết kế với thông số kỹ thuật sau: - 10-bit hệ số cho gia đoạn - 12 12-bit hệ số cho giai đoạn thứ hai - 68 14-bit hệ số cho giai đoạn thứ ba >> WL = [10 12 14]; >> Hqc = constraincoeffwl(Hm,WL); 4.4 Tối đa hóa suy giảm stopband: Khi thiết kế khối chức lọc (ASSPs), có số hệ số độ dài từ mã cần cấu hình cụ thể nhằm đạt đến tối ưu việc làm suy giảm stopband lọc với thứ tự định số hạn chế độ dài từ mã Trong ví dụ tiếp theo, muốn có suy giảm stopband 69dB với nửa band 74 mẫu sử dụng 14bit cho hệ số từ mã >> fh = fdesign.decimator(2,'halfband','N,Ast',70,69); >> Hb1 = design(fh,'equiripple'); Nếu lượng tử hóa với lọc 14-bit hệ số từ mã nhận suy giảm cho stopband 62.7 dB >> Hb1.Arithmetic= 'fixed'; >> Hb1.CoeffWordLength = 14; >> mb1 = measure(Hb1) Với việc định hình nhiễu stopband, cải thiện suy giảm stopband 1.5dB suy giảm stopband 64.18dB chưa đáp ứng yêu cầu kỹ thuật đề >> Hbq1 = maximizestopband(Hb1,14); >> mq1 = measure(Hbq1) Ketnooi.com kết nối công dân điện tử 32 Bước thiết kế lọc dấu chấm động với suy giảm 80dB Chúng ta phải trả giá cho suy giảm ngày tăng độ lớn dải chuyển tiếp Sự suy yếu lọc không định hình nhiễu 14 – bit cải thiện từ 62.7 – 66.2 dB không đáp ứng cacs yêu cầu kỹ thuật >> fh.Astop = 80; >> Hb2 = design(fh,'equiripple'); >> Hb2.Arithmetic= 'fixed'; >> Hb2.CoeffWordLength = 14; >> mb2 = measure(Hb2) Kỹ thuật định hình nhiễu tạo cho lọc cuối đáp ứng yêu cầu kỹ thuật, cải thiện suy giảm stopband dB, từ 66.2 đến 69.4 dB >> Hbq2 = maximizestopband(Hb2,14); >> mq2 = measure(Hbq2) Chiều rộng dải chuyển tiếp lọc điểm cố định tăng lên so với lọc dải động Đây giá phải trả để có suy yếu stopband 69dB với 14-bit cho độ dài từ mã phải 24 bit để phù hợp với chiều rộng dải chuyển tiếp suy yếu stopband so với thiết kế dải động >> close(hfvt); >> hfvt = fvtool(reffilter(Hb1),Hbq2,'ShowReference','off','Color','white '); >> legend(hfvt,'Floating-Point Filter','14-bit NoiseShaped Filter'); >> close(hfvt) Ketnooi.com kết nối công dân điện tử 33 BÀI 5: CHUYỂN ĐỔI BỘ LỌC IIR DẢI ĐỘNG SANG BỘ LỌC ĐIỂM CỐ ĐỊNH Chúng ta tìm hiểu khía cạnh trình chuyển dổi lọc IIR từ dải động sang lọc điểm cố định Bộ lọc cấp (hay gọi đường cong trùng phương) hoạt động tốt sử dụng lọc điểm cố định trình chuyển tiếp hàm Chúng ta thực thành công cách chắn việc chuyển đổi dấu chấm động thông qua bước: - Chọc cấu trúc lọc cấp hai - Thực việc tương thích động cho nút lọc Nội dung chương gồm: - Thiết kế lọc thông thấp Chebyshev kiểu - Bước 1: Chọn cấu trúc lọc cấp - Thực phân tích việc tương thích động 5.1 Thiết kế lọc thông thấp Chebyshev kiểu 1: Chúng ta thiết kế lọc thông thấp Chebyshev kiểu 1với mức độ tối thiểu, đủ dùng cho mục đích chạy thử Các thông số kỹ thuật lọc là: - Tần số biên Passband : 0.4*pi - Tần số biên stopband : 0.45*pi - Độ gợn passband : 0.5 dB - Sự suy yếu stopband : 80 dB >> f = fdesign.lowpass('Fp,Fst,Ap,Ast',0.4,0.45,0.5,80); >> Hdf1sos = design(f, 'cheby1', 'FilterStructure', 'df1sos'); 5.2 Bước 1: Chọn cấu trúc lọc cấp 2: Ketnooi.com kết nối công dân điện tử 34 Chúng ta chứng minh việc chuyển đổi hàm điều không tốt sử dụng lọc điểm cố định (cũng sử dụng lọc dải động) Đầu tiên, tạo lọc: >> [b,a] = tf(Hdf1sos); >> Hdf1 = dfilt.df1(b,a); Bây thiết lập hệ số cho lọc Chúng ta sử dụng 16 bit để biểu diễn cho hệ số phân số Lưu ý phải làm đáp ứng tần số lọc với hệ số lượng tử hóa gần để độ xác tần số lọc với tham chiếu tăng lên gấp đôi >> Hdf1.Arithmetic = 'fixed'; >> hfvt = fvtool(Hdf1,'Color', 'white'); >> legend(hfvt,'Direct-Form I') Do đó, việc chuyển đổi hàm không nên Thay vào đó, sử dụng lượng tử hóa bậc (SOS) nhận thấy rằng, sai khác lượng tử hóa với tham chiếu không đáng kể, trừ phóng to lên >> Hdf1sos.Arithmetic = 'fixed'; >> set(hfvt, 'Filters', Hdf1sos); >> axis([0 -120 5]) >> legend(hfvt,'Direct-Form I SOS', 'Location','NorthEast') Ketnooi.com kết nối công dân điện tử 35 Lấy đáp ứng tần số tốt bước xem cần thiết, với bước trình lọc liệu chưa xác cách đầy đủ Chúng ta dùng vài liệu ngẫu nhiên khoảng [0,1) để so sánh lại lần >> rand('state',5); >> q = quantizer([10,9],'RoundMode','round'); >> xq = randquant(q,1000,1); >> x = fi(xq,true,10,9); Hơn nữa, phải thừa nhận với thiết bị phần cứng hướng tới mục đích lưu trữ bit bảo vệ >> Hdf1sos.AccumWordLength = Hdf1sos.ProductWordLength; Bây tiến hành ghi nhận giá trị min/max vượt mức tiến hành lọc liệu mà tạo Quá trình lọc thực hệ số lượng tử, trình thực với độ xác gấp đôi, thuật toán dấu chấm động Các dấu chấm tĩnh thiết lập phạm vi cụ thể để kiểm soát giá trị vượt khỏi phạm vi >> fipref('LoggingMode', 'on', 'DataTypeOverride', 'ScaledDoubles'); >> y = filter(Hdf1sos,x); >> fipref('LoggingMode', 'off', 'DataTypeOverride', 'ForceOff'); >> R = qreport(Hdf1sos) Kết quả: Ketnooi.com kết nối công dân điện tử 36 R = Double-Precision Floating-Point Report -Min Max | Fixed-Point Range | Out of Range -Input: -1 0.99609375 | -1 0.99996948 | 0/1000 (0%) Output: -0.96015412 1.2707835 | -16 15.999512 | 0/1000 (0%) Num States: -298.93939 322.9527 | -1 0.99996948 | 12374/20000 (62%) Den States: -1923.3548 2077.8547 | -1 0.99996948 | 8299/20000 (41%) Num Prod: -597.87877 645.9054 | -8 | 14689/30000 (49%) Den Prod: -2133.4028 1974.7726 | -4 | 13826/20000 (69%) Num Acc: -805.97944 873.84231 | -32 32 | 18152/20000 (91%) Den Acc: -2133.4028 2077.8547 | -16 16 | 20000/20000 (100%) Quan sát kết mô ta thấy lượng lớn giá trị tràn khỏi lọc Một biện pháp để khắc phục tình trạng sử dụng lọc cấp dùng lại thông số có sẵn Bộ nhớ tạm lọc không dễ dàng bị tràn chia tỉ lệ chuỗi ký tự cách nghiêm ngặc theo l1 Tuy nhiên, việc làm cho tỉ lệ nhiễu tín hiệu (SNR) tăng lên Việc chia tỉ lệ theo Linf thường sử dụng phổ biến việc kiểm soát tràn lọc tỉ lệ nhiễu ký tự kiểm soát tốt Vì lý người ta sử dụng thiết bị cầm tay Chúng ta thực lọc cấp cho cách chia tỉ lệ Linf Điều thực hàm Hdf1sos >> scale(Hdf1sos,'Linf'); Hoặc gọi hàm design với thông số thích hợp >> Hdf1sos=design(f,'cheby1','FilterStructure', 'df1sos','SOSScaleNorm','Linf'); Ketnooi.com kết nối công dân điện tử 37 Chúng ta có lọc cấp với thông số chia theo tỷ lệ Linf, lặp lại việc xem xét tràn lọc >> Hdf1sos.Arithmetic = 'fixed'; >> Hdf1sos.AccumWordLength = Hdf1sos.ProductWordLength; >> fipref('LoggingMode', 'on', 'DataTypeOverride', 'ScaledDoubles'); >> y = filter(Hdf1sos,x); >> fipref('LoggingMode', 'off', 'DataTypeOverride', 'ForceOff'); >> R = qreport(Hdf1sos) Kết quả: R = Double-Precision Floating-Point Report -Min Max | Fixed-Point Range | Out of Range -Input: -1 0.99609375 | -1 0.99996948 | 0/1000 (0%) Output: -0.96051591 1.2712625 | -16 15.999512 | 0/1000 (0%) Num States: -1 0.99609375 | -1 0.99996948 | 0/20000 (0%) Den States: -0.96051591 1.2712625 | -1 0.99996948 | 5/20000 (0%) Num Prod: -0.47138325 0.61167269 | -2 | 0/30000 (0%) Den Prod: -1.3631337 1.2159397 | -4 | 0/20000 (0%) Num Acc: -0.90354824 1.1380514 | -8 | 0/20000 (0%) Den Acc: -1.4771734 1.9656445 | -16 16 | 0/20000 (0%) Kết chương trình cho thấy, tràn lọc giảm thiểu đáng kể Trên thực tế giá trị vượt dải xảy mẫu số Mặc dù tình hình cải thiện đáng kể dùng lọc bậc với hệ số chia theo tỉ lệ trên, khả tràn lọc xảy Chúng ta cần lưu ý cách chia tỷ lệ Linf hoàn toàn tránh việc tràn lọc (lý lọc có thành phần phi truyến đạt đến điểm gây tràn), việc tuân thủ theo Ketnooi.com kết nối công dân điện tử 38 cách chia l1 cần thiết, điều làm cho tỉ lệ nhiễu tín hiệu (SNR) tăng lên điều tránh khỏi Để tháo gỡ khó khăn này, xét đến bước thứ sau: 5.3 Bước 2: Thực việc tương thích động: Bước thứ làm cho lọc điểm cố định IIR điều chỉnh cách động, linh hoạt cho ứng dụng Điểm cực đại cực tiểu dải động nới rộng độ dài từ mã không thay đổi >> Hdf1sosf = autoscale(Hdf1sos,x); Chúng ta nhận thấy thiết lập tạo xác cách chạy lọc điểm cố định: >> fipref('LoggingMode', 'on', 'DataTypeOverride', 'ForceOff'); >> y = filter(Hdf1sosf,x); >> fipref('LoggingMode', 'off'); >> R = qreport(Hdf1sosf) R = Và kết quả: Fixed-Point Report -Min Max | Range | Number of Overflows -Input: -1 0.99609375 | -1 0.99996948 | 0/1000 (0%) Output: -0.96026611 1.2714844 | -2 1.999939 | 0/1000 (0%) Num States: -1 0.99609375 | -1 0.99996948 | 0/20000 (0%) Den States: -0.96026611 1.2714844 | -2 1.999939 | 0/20000 (0%) Num Prod: -0.47122891 0.61166532 | -2 | 0/30000 (0%) Den Prod: -1.3627193 1.2161518 | -8 | 0/20000 (0%) Num Acc: -0.90327533 1.1379978 | -2 | 0/20000 (0%) Ketnooi.com kết nối công dân điện tử 39 -8 Den Acc: -1.4768949 | 1.9657354 | 0/20000 (0%) Như thấy, vấn đề tràn lọc tháo gỡ Hơn nữa, bit dùng cho mẫu số dùng để nhớ không cần thiết để sử dụng Đánh giá ước lượng độ lớn, với mật độ quang phổ lượng đầu lọc nhiễu gần biến mất, tín hiệu đầu lọc điểm cố định có kết gần xác với kết tham chiếu >> set(hfvt, 'Filters', Hdf1sosf,'Analysis', 'magestimate'); >> legend(hfvt, ' ') >> hfvt2=fvtool(Hdf1sosf,'Analysis','noisepower','Color','white');le nd(hfvt2,' ') Ketnooi.com kết nối công dân điện tử 40 BÀI CHIA TỈ LỆ SỐ ĐIỂM CỐ ĐỊNH CHO BỘ LỌC ELLIPTIC IIR Demo minh họa khả tự động co giản thay đổi lọc điểm cố định Phương pháp tự động thay đổi co giản cung cấp dải động có phạm vi rộng cho nút lọc Phương pháp chạy lọc dấu chấm động sử dụng liệu tối đa tối thiểu thu từ mô thiết lập độ dài chia nhỏ để phạm vi mô bao phủ độ xác tối đa hoá Chiều dài từ không thay đổi 6.1 Designing the Filter Chúng sử dụng thiết kế elliptic có bậc tối thiểu Thiết kế Elliptic có đặc điểm thu nhỏ tương đối tốt sử dụng phần định mức chia nhỏ bậc hai 'Linf' f = fdesign.lowpass('Fp,Fst,Ap,Ast',.48,.52,1,60); Hd = design(f, 'ellip', 'FilterStructure', 'df1sos', 'SOSScaleNorm', 'Linf'); hfvt = fvtool(Hd, 'Color', 'white'); hfvt.SosviewSettings.View = 'Cumulative'; Chú ý đáp ứng tần số tích lũy bên -đo từ đầu vào đến phần trạng thái khác lọc vượt dB Vì vậy, thiết kế thiết kế tốt cho việc thực lọc điểm cố định 6.2 Input Stimulus Bởi ta muốn để đánh giá độ xác, ta sử dụng số liệu ngẫu nhiên để lọc so sánh Chúng tạo lượng tử hóa, với dãy giá trị Ketnooi.com kết nối công dân điện tử 41 nhiễu trắng ngẫu nhiên phân bố từ [-1,1) sử dụng độ dài từ 10bit Chúng tạo kênh độc lập sử dụng để mô Monte-Carlo cho việc mở rộng lọc điểm cố định rand('state',5); q = quantizer([10,9],'RoundMode','round'); xq = randquant(q,100,5); x = fi(xq,true,10,9); 6.3 Scaling the Filter Chúng giả định phần cứng hỗ trợ hệ số 14-bit,bus 10-bit cho bit đầu vào bit trạng thái có đơn vị MAC 24-bit Ngoài ra, ta giả định giữ 12 bit đầu lọc Hd.Arithmetic = 'fixed'; set(Hd, 'CoeffWordLength', 14, 'InputWordLength', 10, 'InputFracLength', 9, 'NumStateWordLength', 10, 'DenStateWordLength', 10, 'AccumWordLength', 24, 'OutPutWordLength', 12); set(hfvt,'Filters',Hd, 'Color', 'white') legend(hfvt,' ', 'Location', 'Best'); chiều dài 14 bit dường đủ để miêu tả cho hệ số Hd = autoscale(Hd,x); 6.4 Verifying the Fixed-Point Settings Ketnooi.com kết nối công dân điện tử 42 Ta xác minh thiết lập xác cách chạy lọc điểm cố định: fipref('LoggingMode', 'on', 'DataTypeOverride', 'ForceOff'); y = filter(Hd,x); fipref('LoggingMode', 'off'); R = qreport(Hd) R = FixedPoint Report -Min Max | Range | Number of Overflows -Input: -1 0.99609375 | -1 0.99804688 | 0/500 (0%) Output: -0.91796875 1.0390625 | -2 1.9990234 | 0/500 (0%) Num States: -1 0.99609375 | -1 0.99804688 | 0/4000 (0%) Den States: -0.91796875 1.0390625 | -2 1.9960938 | 0/4000 (0%) Num Prod: -0.55561066 0.70284748 | -2 1.9999998 | 0/6000 (0%) Den Prod: -1.0729704 0.92389297 | -8 7.999999 | 0/4000 (0%) Num Acc: -1.0850372 1.3692884 | -2 1.9999998 | 0/4000 (0%) Den Acc: -1.3030701 1.6069908 | -8 7.999999 | 0/4000 (0%) ta xác minh tràn, tức là: tất tín hiệu phạm vi dãy động cho phép 6.5 Comparing DF1SOS versus DF2SOS Chúng ta so sánh nhiễu lượng tử cộng vào thực dạng trục tiệp I với thực dạng trực tiếp II Hd2 = design(f, 'ellip', 'FilterStructure', 'df2sos', 'SOSScaleNorm', 'Linf'); Hd2.Arithmetic = 'fixed'; Ketnooi.com kết nối công dân điện tử 43 set(Hd2, 'CoeffWordLength', 14, 'InputWordLength', 10, 'InputFracLength', 9, 'SectionInputWordLength', 10, 'SectionOutputWordLength', 10, 'StateWordLength', 10, 'AccumWordLength', 24, 'OutPutWordLength', 12); Hd2 = autoscale(Hd2,x); set(hfvt,'Filters',[Hd Hd2],'Analysis', 'magestimate', 'ShowReference', 'off', 'Color', 'white'); set(hfvt,'Filters',[Hd Hd2],'Analysis', 'noisepower', 'ShowReference', 'off', 'Color', 'white'); legend(hfvt,'DF1SOS','DF2SOS') Ketnooi.com kết nối công dân điện tử 44 ta tính toán công suất nhiễu trung bình vùng passband cho thực hai: df1sosnoisepsd = noisepsd(Hd,100); df1sos_pb_avg_noisepwr = db(avgpower(df1sosnoisepsd,[0 48]*pi),'power') df1sos_pb_avg_noisepwr = -43.8443 df2sosnoisepsd = noisepsd(Hd2,100); df2sos_pb_avg_noisepwr = db(avgpower(df2sosnoisepsd,[0 48]*pi),'power') df2sos_pb_avg_noisepwr = -41.2077 Df1sos có công suất nhiễu thấp passband khác biệt khoảng 2,5 dB công suất nhiễu df1sos, nhiên, lớn nhiều vùng transition band nhìn thấy ảnh hưởng không tốt so với ước lượng đáp ứng biên độ df1sos_tw_avg_noisepwr = db(avgpower(df1sosnoisepsd, [.48 52]*pi),'power') df1sos_tw_avg_noisepwr = -48.5011 Ketnooi.com kết nối công dân điện tử 45 df2sos_tw_avg_noisepwr = db(avgpower(df2sosnoisepsd, [.48 52]*pi),'power') df2sos_tw_avg_noisepwr = -54.6562 Thời gian này, df2sos có ưu 5,8 dB vùng transition band Cuối cùng, tính toán công suất nhiễu trung bình stopband: df1sos_sb_avg_noisepwr = db(avgpower(df1sosnoisepsd,[.52 1]*pi),'power') df1sos_sb_avg_noisepwr = -61.8266 df2sos_sb_avg_noisepwr = db(avgpower(df2sosnoisepsd,[.52 1]*pi),'power') df2sos_sb_avg_noisepwr = -60.6695 Trong stopband passband-df1sos có công suất nhiễu thấp chút Sự khác biệt vùng stopband khoảng 1,3 dB Ketnooi.com kết nối công dân điện tử 46 [...]... Differentiator     FIR Type 1   FIR Type 2    FIR Type 3     FIR Type 4 BÀI 1: BẮT ĐẦU TÌM HIỂU VỀ BỘ LỌC ĐIỂM CỐ ĐỊNH Khi việc thiết kế bộ lọc bắt đầu sử dụng các bộ lọc kỹ thuật số, nó được sử dụng trong các ứng dụng, đôi khi nó có hạn chế về công suất và hạn chế thiết kế điều khiển kích thước bộ lọc, do đó họ có đề xuất chuyển từ bộ lọc điểm di động (dấu chấm động) sang bộ lọc điểm cố định vì khi... xác định rằng không có tràn, tức là tất cả các tín hiệu trong phạm vi hoạt động có sẵn Đáp ứng cường độ ước tính cho thấy rằng việc thực hiện điểm cố định trong mặt nạ quang phổ và bộ lọc đã được thu nhỏ Tóm lại Chúng tôi trình bày một thủ tục 2-bước đơn giản để chuyển đổi một bộ lọc FIR dấu chấm động một điểm cố định thực hiện Các đối tượng của hộp công cụ lọc Thiết kế bộ lọc FIR ™ có điểm cố định. .. close(hfvt) Ketnooi.com kết nối công dân điện tử 33 BÀI 5: CHUYỂN ĐỔI BỘ LỌC IIR DẢI ĐỘNG SANG BỘ LỌC ĐIỂM CỐ ĐỊNH Chúng ta sẽ đi tìm hiểu những khía cạnh chính của quá trình chuyển dổi bộ lọc IIR từ dải động sang bộ lọc điểm cố định Bộ lọc cấp 2 (hay còn gọi là đường cong trùng phương) sẽ hoạt động tốt hơn khi sử dụng bộ lọc điểm cố định trong quá trình chuyển tiếp giữa các hàm Chúng ta sẽ thực hiện... = fir1 (101, 45, 'low', kaiser(102, 7.8573)); % bộ lọc fir loại 1, dùng cửa sổ kasier + Cách biến đổi trong bộ lọc điểm cố định Trong thiết kế bộ lọc người ta thêm vào các phương án cho sự lựa chọn điểm cố định, các thuộc tính số học của biến đổi rời rạc trong miền thời gian( DFILT) Nó quy định cách chuyển tiếp bằng cách thức phân tích bộ lọc hai điểm di động từ đó đưa ra các phép tính trong bộ lọc điểm. .. chế độ xác định chính xác cho phép kiểm soát toàn bộ các thiết lập Người ta sẽ cần để chạy các bộ lọc để xem hiệu quả các thiết lập trên đầu ra Để thảo luận thêm về cài đặt sản phẩm và accumulator, xem demo "lọc điểm cố định với hình thức bộ lọc FIR trực tiếp " BÀI 2: SỰ BIẾN ĐỔI ĐIỂM DI ĐỘNG THÀNH ĐIỂM CỐ ĐỊNH TRONG BỘ LỌC FIR Chúng tôi minh họa các khía cạnh chính của việc chuyển đổi bộ lọc FIR từ một... số để phù hợp với các yêu cầu kỹ thuật của bộ lọc (dành cho các ứng dụng đơn giản) hoặc chuyển đổi độ rộng của dải chuyển tiếp (dành cho các thiết kế có thứ tự cố định) của Hd Cho phép thiết kế lại với kết quả trung gian như nhau nhưng khi sử dụng bộ lọc đa điểm thì kết quả của sẽ trùng với kết quả của bộ lọc điểm cố định 93 13bit hệ số So với bộ lọc điểm cố định thì chúng ta đã tiết kiệm được 4bit nhưng... dụng bộ lọc điểm cố định (cũng như khi sử dụng bộ lọc dải động) Đầu tiên, chúng ta tạo ra bộ lọc: >> [b,a] = tf(Hdf1sos); >> Hdf1 = dfilt.df1(b,a); Bây giờ chúng ta sẽ đi thiết lập các hệ số cho bộ lọc Chúng ta sẽ sử dụng 16 bit để biểu diễn cho các hệ số và các phân số Lưu ý là phải làm thế nào để cho đáp ứng tần số bộ lọc với các hệ số của bộ lượng tử hóa gần nhau để độ chính xác của tần số bộ lọc. .. HÓA BỘ LỌC ĐIỂM CỐ ĐỊNH FIR Nhiều ứng dụng được tối ưu hóa nhờ việc dùng bộ lọc điểm cố định Việc tối ưu hóa này có thể được đánh giá thông qua quá trình lọc tín hiệu, chẳng hạn như sự suy giảm stopband hoặc số bit tối thiểu cần phải sử dụng để đáp ứng một số yêu cầu kỹ thuật cụ thể Chức năng này đặc biệt hữu ích cho việc thiết kế 1 cấu hình phần cứng với chiều dài từ mã được xác định trước, điều này... không đủ để miêu tả cho bộ lọc này 16 bit có thể là đủ cho hầu hết các ứng dụng, vì vậy chúng tôi sẽ tiếp tục sử dụng 16 bit trong việc trình bày này Như một quy tắc ngón tay cái, ta nên mong đợi một sự suy giảm đạt được khoảng 5 dB cho mỗi bit + Bộ lọc điểm cố định Mục đích chính của chúng tôi là để đánh giá độ chính xác của bộ lọc điểm cố định khi so sánh với kiểu bộ lọc hai điểm di động Chúng ta sẽ... hóa các hệ số Đầu tiên ta quy định 12 bit là điều kiện để biểu diễn các hệ số Hd.Arithmetic = 'fixed'; % số học = cố định set(Hd, 'CoeffwordLength', 12); % hệ số chiều dài từ hfvt = fvtool(Hd, 'Color', 'white'); legend(hfvt,' ', 'Location', 'Best'); %xác định vị trí tốt nhất Không giống như các bộ lọc IIR, bộ lọc FIR là bộ lọc thực hiện chính xác khi biến đổi điểm cố định Điều này làm cho quá trình

Ngày đăng: 01/06/2016, 10:56

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w