Thiết kế bộ lọc phần tử xử lý tín hiệu trên nền công nghệ FPGA
Bạn đang xem tài liệu "Thiết kế bộ lọc phần tử xử lý tín hiệu trên nền công nghệ FPGA", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
thiet_ke_bo_loc_phan_tu_xu_ly_tin_hieu_tren_nen_cong_nghe_fp.pdf
Nội dung text: Thiết kế bộ lọc phần tử xử lý tín hiệu trên nền công nghệ FPGA
- THIẾT KẾ BỘ LỌC PHẦN TỬ XỬ LÝ TÍN HIỆU TRÊN NỀN CÔNG NGHỆ FPGA Trần Thị Hoàng Oanha, Lê Tiến Thườngb aTổ Kỹ Thuật Điện, Trường Trung Cấp Nghề Khu Công Nghiệp Bình Dương. bKhoa Điện – Điện Tử, Trường Đại học Bách Khoa Thành Phố Hồ Chí Minh ahoangoanhtran82@gmail.com; b thuongle@hcmut.edu.vn ; TÓM TẮT Phương pháp bộ lọc phần tử là một trong những phương pháp tốt nhất để giải quyết vấn đề tìm trạng thái ước lượng của các hệ thống phi tuyến và được sử dụng rộng rãi trong lĩnh vực xử lý tín hiệu. Mục đích chính của bài báo đề cập đến việc thiết kế bộ lọc phần tử sử dụng thuật toán SIR để ước lượng trạng thái của các hệ thống giả lập và sử dụng tiêu chuẩn RMSE để đánh chất lượng của bộ lọc. Quá trình thiết kế bộ lọc phần tử được thực hiện trên Matlab và trên FPGA Virtex-II Pro. Kết quả thu được từ mô phỏng cho thấy bộ lọc phần tử ước lượng chính xác và hiệu quả trên FPGA. Từ khóa: bộ lọc phần tử, Xilinx AccelDSP, hệ thống động, bộ lọc Bayes, FPGA Virtex-II Pro. 1. TỔNG QUAN A. BỘ LỌC PHẦN TỬ Ước lượng trạng thái của hệ thống là Phương pháp bộ lọc phần tử [2-8] là một kỹ một bước quan trọng được ứng dụng trong thuật Monte Carlo để giải quyết vấn đề ước nhiều trong nhiều lĩnh vực. Để ước lượng lượng trạng thái của một hệ thống. Phương trạng thái của một hệ thống đạt được kết pháp SIS [4] của bộ lọc phần tử sử dụng mật quả tốt, cần phải tìm hiểu thông tin của đối độ quan trọng và các mẫu được sinh ngẫu tượng bao gồm cả vị trí trong không gian, nhiên từ hàm mật độ quan trọng thay vì hàm vận tốc, và các đặc tính vật lý [1,3]. Vấn đề mật độ thực tế. ước lượng trạng thái được giải quyết bằng bộ lọc Bayes [2]. Thuật toán 2.1 : Phƣơng pháp SIS NNs xi,,, w is SIS x i w i z k kii 11 k 11 k k Bộ lọc phần tử là một kỹ thuật của bộ lọc Bayes đệ quy. Ý tưởng của bộ lọc phần FOR iN 1: tử là sử dụng một tập hợp các hạt ngẫu s i i nhiên với trọng lượng được gán đại diện - Draw: xk ~ q( xk | x k 1 , z k ) cho mật độ hậu nghiệm của tập hợp đó [6]. - Assign the particle a weight, wi Vì vậy, bộ lọc phần tử là một lựa chọn tốt k i i i p zk|| x k p x k x k 1 trong các hệ thống phi tuyến. wwii kk 1 q( x | xi , z ) Bài báo được chia làm bốn phần như k k 1 k sau: phần 2 giới thiệu về bộ lọc phần tử END FOR (Particle filter) và sai số trung bình toàn Một vấn đề thường gặp với phương pháp phương (RMSE). Phần 3 trình bày về và SIS là vấn đề thoái hóa mẫu [4]. Phương sai cách thiết kế bộ lọc phần tử trên phần cứng của các trong lượng quan trọng tăng ngẫu FPGA Virtex-II Pro. Phần 4 trình bày về kết nhiên theo thời gian. Vì vậy, sau một vài vòng quả mô phỏng trên Matlab và FPGA lặp, ngoại trừ một mẫu duy nhất trong tập mẫu, Virtex-II Pro. Cuối cùng, kết luận trong các mẫu còn lại có trọng lượng không đáng kể phần 5. [3,4,5]. Để khắc phục vấn đề thoái hóa mẫu, sử 2. BỘ LỌC PHẦN TỬ VÀ SAI SỐ dụng thuật toán tái chọn mẫu [4] TRUNG BÌNH TOÀN PHƢƠNG. (Resampling).
- Thuật toán 2.2: Thuật toán tái chọn mẫu s j* i jNNs i i xk,,, w k i RESAMPLE x k w k Khởi tạo các hạt ji 11 Quan sát mới Initialise the CDF: c=0 FOR i=2: Ns Đề xuất các hạt i - Construct CDF: ci c i 1 w k END FOR 1 2 M Start at the bottom of the CDF: i=1 Draw a starting point: u1 ~UN[0,s 1] 1 2 M FOR j=1:Ns - Move along the CDF: Cập nhật trọng lượng u u N 1( j 1) js1 -WHILE uc ji Chuẩn hóa trọng lượng * ii 1 - END WHILE - Assign sample: ji* xxkk Tái chọn mẫu j 1 - Assign weight: wNks - Assign parent: iij Tính ước lượng của END FOR các ẩn số mong muốn Phương pháp SIR [4] chính là sự kết hợp Có của phương pháp SIS và thuật toán tái chọn Ngõ Quan sát tiếp ? ra mẫu được trình bày trong thuật toán 2.3. Thuật toán 2.3: SIR PARTICLE FILTER Không NNss xi,,, w i SIR x i w i z k kii 11 k 11 k k Thoát FOR iN 1: s i i Hình 1. Lưu đồ bộ lọc Particle - Draw xk ~ p xkk| x 1 ii - Calculate wk p z k| x k B. SAI SỐ TRUNG BÌNH TOÀN PHƢƠNG END FOR (RMSE) i Ns RMSE [5] thể hiện sự sai lệch giữa vị trí Calculate total weight: t SUM wk i 1 thật và vị trí ước lượng của các điểm. Sai số FOR trung bình toàn phương càng thấp thì độ chính xác của quá trình biến đổi càng cao. ii 1 - Normalize: wkk t w n END FOR ()yyˆ 2 i 1 ii Resample using Algorithm 2.2 RMSError (1) n Tóm lại, bộ lọc phần tử là một công cụ Trong bài báo này sử dụng tiêu chuẩn rất hữu ích trong việc ước lượng và dự đoán RMSE để đánh giá trạng thái ước lượng của bộ trạng thái của đối tượng , đặc biệt là khi đối lọc phần tử. với các hệ thống phức tạp. Hình dưới đây là 3. PHƢƠNG PHÁP THIẾT KẾ BỘ LỌC lưu đồ giải thuật của bộ lọc phần tử. PHẦN TỬ TRÊN FPGA VIRTEX-II PRO.
- * Bƣớc 2: Xây dựng mô hình và mô phỏng trong System Generator 10.1 Bước 1: Bước 2: Bước 3: Tạo các khối Thiết kế mô Thực hiện mô Xilinx System Generator 10.1 [13] là môi bộ lọc phần tử hình và mô phỏng trực trường thiết kế và mô phỏng bộ lọc phần tử từ Accel DSP phỏng trên tiếp trên ước lượng các hệ thống giả lập. System FPGA Generator Virtex-II Pro. Hình 2. Sơ đồ khối thiết kế bộ lọc phần tử trên FPGA. * Bƣớc 1: Tạo các khối bộ lọc phần tử từ AccelDSP 10.1 Phần mềm AccelDSP [9-12] là công cụ tổng hợp mô hình xử lí tín hiệu trong Matlab từ Xilinx, mà có thể chuyển các thiết kế dùng dấu chấm động (floating-point) trong Matlab sang dấu chấm cố định (fix-point) là loại được sử dụng trong Xilinx System Generator. Các khối bộ lọc phần tử được tạo trong AccelDSP 10.1. Sau khi tạo xong, khối này được đưa vào Xilinx System Generator 10.1 để thiết kế bộ lọc phần tử. Quy trình tạo một khối “dexuathat1” từ AccelDSP Hình 5: Thiết kế bộ lọc phần tử trên Xilinx System Generator 10.1. 10.1[9,10] được thực hiện trong hình 3. * Bƣớc 3: Thực hiện mô phỏng trực tiếp trên FPGA Virtex-II Pro Trong bước này một Jtag Co-sim được tạo ra từ System Generator token [13]: Hình 3. Quy trình tạo khối IP Core “dexuathat1”. Sau đó, khối “dexuathat1” được lưu vào thư viện Simulink trong “oanh1”. Hình 6. System Generator token Kết nối kết Jtag Co-sim với các ngõ vào và ngõ ra của mô hình trong System Generator Hình 4: Thư viện Simulink của Matlab. chạy trên phần cứng FPGA.
- Hình 9. Trạng thái thật và trạng thái ước lượng trên Matlab của mô hình 1 - Mô phỏng bộ lọc phần tử trên FPGA của mô Hình 7. Kết nối khối Jtag Co-sim với mô hình hình 1: Lựa chọn Cable Platform USB và Cable Speed cho Jtag Co-sim: Hình 10. Trạng thái thật và trạng thái ước lượng trên Hình 8. Cable Platform USB cho Xilinx JTAG FPGA Virtex-II Pro của mô hình 1 hardware Co-simulation * Mô hình giả lập 1 4. KẾT QUẢ MÔ PHỎNG xk 0.914* x k 1 0.25* rand w k 1 , w k 1 N (0, Q ) (4) Các kết quả trạng thái ước lượng của bộ z 0.334* x v , v N (0, R ) (5) lọc phần tử và trạng thái thật của mô hình k k k k giả lập được mô phỏng trên phần mềm với và là nhiễu Gaussian. Matlab 2007b, Xilinx System Generator - Mô phỏng bộ lọc phần tử trên Matlab của mô 10.1 và Xilinx Virtex-II Pro XC2VP30. hình 2: Hơn nữa các kết quả chạy trên máy Intel(R) Core(TM) i3 CPU M370 @ 2.40 GHz và 1.86 GB of RAM. * Mô hình giả lập 1 5*x k1 (2) xk 0.914*x k-1 2 8*cos(k-1)+wk 1 ,w k 1 N ( 0 , Q ) 1 xk1 2 zk 0.334* x k v k , v k N (0, R ) (3) với wk 1 và vk là nhiễu Gaussian - Mô phỏng bộ lọc phần tử trên Matlab của Hình 11. Trạng thái thật và trạng thái ước lượng trên mô hình 1: Matlab của mô hình 2 - Mô phỏng bộ lọc phần tử trên FPGA của mô
- hình 2: Trạng thái ước lượng của bộ lọc phần tử bị ảnh hưởng nhiều khi phương sai nhiễu trong phép đo từ 0.1 đến 5, số hạt là 100, số vòng lặp 20 thể hiện trong bảng 1.2 RMSE RMSE RMSE RMSE Phương mô hình mô hình mô mô sai 1 1 hình 2 hình 2 nhiễu trên trên trên trên phép đo Matlab FPGA Matlab FPGA 0.1 0.025835 0.13218 0.1071 0.0869 1 0.034102 0.32009 0.1128 0.1035 3 0.0473 0.69686 0.1464 0.1157 Hình 12. Trạng thái thật và trạng thái ước lượng trên FPGA Virtex-II Pro của mô hình 2 5 0.053226 0.87634 0.1886 0.1216 Tất cả các tham số của hình 9,10,11 và 12 Bảng 1.2: RMSE khi phương sai nhiễu từ 0.1 đến 5 được thiết kế với số hạt là 100, số vòng lặp Quan sát hình 10 và 12 cho thấy bộ lọc 49, phương sai nhiễu là 1. phần tử được thiết kế hoàn tất trong FPGA. Để đánh giá trạng thái ước lượng của bộ Thông qua mô phỏng cho thấy bộ lọc phần tử lọc phần tử trong mô hình 1 và 2 khi thay đổi ước lượng tốt các mô hình giả lập. số hạt từ 10 đến 500, số vòng lặp là 20, phương sai nhiễu của phép đo là 1. Kết quả 5. KẾT LUẬN thể hiển trong bảng 1.1. Bộ lọc phần tử được thiết kế thành công RMSE RMSE RMSE RMSE trên Matlab và FPGA Virtex-II Pro. Kết quả mô hình mô hình mô hình mô hình RMSE cho thấy khi tăng số hạt càng lớn thì Số 1 1 2 2 kết quả ước lượng càng chính xác; phương hạt trên trên trên trên sai nhiễu trong phép đo càng lớn thì giảm Matlab FPGA Matlab FPGA hiệu quả ước lượng của bộ lọc phần tử. Cũng 10 0.1439 0.3391 0.1741 0.1179 như kỹ thuật Monte Carlo cung cấp kết quả 100 0.0341 0.3200 0.1400 0.1064 ước lượng chính xác đối với mô hình trạng 200 0.0240 0.2952 0.1345 0.0834 thái và mô hình quan sát môi trường có nhiễu lớn. 500 0.0186 0.2738 0.0829 0.0771 Trong tương lai, người thực hiện đề tài sẽ cải tiến các thuật toán bộ lọc phần tử và sử Bảng 1.1: RMSE khi số hạt thay đổi từ 10 đến 500 dụng theo vết đối tượng trong thông tin vô tuyến. TÀI LIỆU THAM KHẢO [1]. Aku Sepänen, “State Estimation in Process Tomography”, Kuopio, Technical report 2005. [2]. Dieter Fox- Jeffrey Hightower- Lin Liao- Dirk Schulz- Gaetano Borriello, “Bayesian Filters for Location Estimation”, University of Washington, Dept. of Computer Science & Engineering, Seattle, WA Intel Research Seattle, Seattle, WA, September 2003. [3]. Thomas B. Schön, “ Solving Nonlinear State Estimation Problems Using Particle Filters – An Engineering Perspective”, Technical report from Automatic Control at Linköpings universitet, May 2010. [4]. Sanjeev Arulampalam, Simon Maskell, Neil Gordon, Tim Clapp, “A Tutorial on Particle Filters for on-line Non-linear/Non-Gaussian Bayesian Tracking”, IEEE Trans. on Signal Processing, vol. 50, pp. 174-188, 2001.
- [5]. Fei Xing, “Particle Filters for Nonlinear/Heavy-Tailed Model: Bootstrap Method”, Mathematics Department., University of Tennessee, Knoxville, April 24, 2012. [6]. Petar M.D, Jayesh H.K., Jianqui Z., Yufei H., Tadesse G., Monica F.b., and Joaquin M., “Particle Filtering”, IEEE Signal Processing Magazine, September 2003. [7].Alfonso Rodríguez Medina, “Hardware-Based Particle Filter with Evolutionary Resampling Stage”, Master thesis, 3-2014, Universidad Politécnica de Madrid. [8]. Sankalita Saha , Neal K. Bambha and Shuvra S. Bhattacharyya, “A parameterized design frame work for hardware implement of Particle Filters”, Las Vegas, Nevada, March 2008. [9]. Chen Hongyan and Wang Lisheng, “Software and Hardware Implementation of IIR Based on Matlab&Acceldsp”,The 2nd International Conference on Computer Application and System Modeling , 2012. [10].www.mathworks.com. [11].M. Ownby, W. H. Mahmoud, “A design methodology for implementing DSP with Xilinx System Generator for Matlab”, in Proceedings of the 35th Southeastern Symposium on System Theory,IEEE, pp. 404-408, 2003. [12]. AccelDSP Synthesis Tool User Guide, Vol.UG634 (v11.4), www.Xilinx.com. [13]. www.Xilinx.com.
- BÀI BÁO KHOA HỌC THỰC HIỆN CÔNG BỐ THEO QUY CHẾ ĐÀO TẠO THẠC SỸ Bài báo khoa học của học viên có xác nhận và đề xuất cho đăng của Giảng viên hướng dẫn Bản tiếng Việt ©, TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH và TÁC GIẢ Bản quyền tác phẩm đã được bảo hộ bởi Luật xuất bản và Luật Sở hữu trí tuệ Việt Nam. Nghiêm cấm mọi hình thức xuất bản, sao chụp, phát tán nội dung khi chưa có sự đồng ý của tác giả và Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh. ĐỂ CÓ BÀI BÁO KHOA HỌC TỐT, CẦN CHUNG TAY BẢO VỆ TÁC QUYỀN! Thực hiện theo MTCL & KHTHMTCL Năm học 2016-2017 của Thư viện Trường Đại học Sư phạm Kỹ thuật Tp. Hồ Chí Minh.