1. Trang chủ
  2. » Tất cả

Luận án Tiến sĩ Giải pháp chuyển đổi dấu phẩy tĩnh và hiệu chỉnh sai lệch trong TIADC cho khối thu băng rộng

171 2 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 171
Dung lượng 3,14 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ĐINH THỊ KIM PHƯỢNG GIẢI PHÁP CHUYỂN ĐỔI DẤU PHẨY TĨNH VÀ HIỆU CHỈNH SAI LỆCH TRONG TI-ADC CHO KHỐI THU BĂNG RỘNG LUẬN ÁN TIẾN SĨ KỸ THUẬT ĐIỆN TỬ Hà Nội - 2022 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ĐINH THỊ KIM PHƯỢNG GIẢI PHÁP CHUYỂN ĐỔI DẤU PHẨY TĨNH VÀ HIỆU CHỈNH SAI LỆCH TRONG TI-ADC CHO KHỐI THU BĂNG RỘNG LUẬN ÁN TIẾN SĨ KỸ THUẬT ĐIỆN TỬ Ngành: Kỹ thuật điện tử Mã số: 9520203 TẬP THỂ HƯỚNG DẪN KHOA HỌC: PGS TS NGUYỄN ĐỨC MINH TS PHẠM HẢI ĐĂNG Hà Nội - 2022 i LỜI CAM ĐOAN Tôi xin cam đoan kết khoa học trình bày luận án cơng trình nghiên cứu tơi hướng dẫn cán hướng dẫn Các số liệu, kết trình bày luận án có nguồn gốc rõ ràng, hồn tồn trung thực chưa cơng bố cơng trình trước Các liệu tham khảo trích dẫn đầy đủ Hà Nội, ngày tháng năm 2022 TM Tập thể hướng dẫn PGS.TS Nguyễn Đức Minh TS Phạm Hải Đăng Tác giả luận án Đinh Thị Kim Phượng ii LỜI CẢM ƠN Trong trình nghiên cứu hồn thành Luận án, nghiên cứu sinh nhận định hướng, giúp đỡ, ý kiến đóng góp quý báu lời động viên nhà khoa học, thầy cô giáo, đồng nghiệp gia đình Trước hết, nghiên cứu sinh xin bày tỏ lời cảm ơn tới thầy PGS.TS Nguyễn Đức Minh, TS Phạm Hải Đăng TS Lê Đức Hân tận tình hướng dẫn giúp đỡ trình nghiên cứu Nghiên cứu sinh xin chân thành cảm ơn TS Hoàng Phương Chi, TS Phạm Nguyễn Thanh Loan thầy cô giáo, nhà khoa học Khoa Điện Tử, Trường Điện- Điện Tử, Đại Học Bách Khoa Hà Nội có góp ý quý báu cho Nghiên cứu sinh trình thực Luận án Nghiên cứu sinh xin gửi lời cảm ơn chân thành đến ThS Hoàng Thanh Phương, thành viên BKIC Lab 611 thư viện Tạ Quang Bửu- Đại học Bách khoa Hà Nội giáo sư Hiroshi Ochi thành viên Ochi & Kuroshaki Lab, Học viện kỹ thuật Kyushu- Iizuka, Fukuoka, Nhật Bản hỗ trợ nghiên cứu sinh thực số thực nghiệm Luận án Xin chân thành cảm ơn TS Tống Văn Luyên đồng nghiệp Khoa Điện Tử, Trường Đại học Công nghiệp Hà Nội bạn bè tạo điều kiện thuận lợi để nghiên cứu sinh hoàn thành nhiệm vụ nghiên cứu Cuối nghiên cứu sinh bày tỏ lời cảm ơn sâu sắc tới gia đình hai bên người chồng nghiên cứu sinh động viên, chia sẻ, ủng hộ giúp đỡ nghiên cứu sinh vượt qua khó khăn để đạt kết nghiên cứu Luận án NCS Đinh Thị Kim Phượng iii MỤC LỤC LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT vi DANH MỤC CÁC HÌNH VẼ xi DANH MỤC CÁC BẢNG BIỂU xiv DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT xvii MỞ ĐẦU CHƯƠNG TỔNG QUAN VỀ TI-ADC TRONG KHỐI THU BĂNG RỘNG 1.1 1.2 1.3 1.4 11 Kiến trúc khối thu băng rộng đặc điểm TI-ADC 11 1.1.1 Kiến trúc máy thu băng rộng sử dụng TI-ADC 11 1.1.2 Nguyên tắc hoạt động TI-ADC 14 Mơ hình hóa TI-ADC với sai lệch 17 1.2.1 Các sai lệch nội sub-ADC TI-ADC 17 1.2.2 Mơ hình hóa TI-ADC ảnh hưởng sai lệch 19 1.2.3 Các yếu tố tác động đến hiệu TI-ADC 28 Các vấn đề thiết kế hiệu chỉnh sai lệch TI-ADC 29 1.3.1 Kỹ thuật hiệu chỉnh sai lệch TI-ADC 29 1.3.2 Các vấn đề triển khai phần cứng 42 Kết luận chương 51 CHƯƠNG GIẢI PHÁP HIỆU CHỈNH ĐỒNG THỜI LỆCH HỆ SỐ KHUẾCH ĐẠI, THỜI GIAN LẤY MẪU CỦA TI-ADC THEO NGUYÊN TẮC ANC 52 iv 2.1 Nguyên tắc ANC hiệu chỉnh đồng thời lệch hệ số khuếch đại thời gian lấy mẫu TI-ADC 52 2.1.1 Phân tích mơ hình TI-ADC với sai lệch 53 2.1.2 Đề xuất nguyên tắc ANC cho hiệu chỉnh đồng thời lệch hệ số khuếch đại thời gian lấy mẫu TI-ADC 56 2.1.3 Giải pháp hiệu chỉnh đồng thời lệch hệ số khuếch đại thời gian lấy mẫu TI-ADC theo nguyên tắc ANC thực băng tần Nyquist 60 2.2 Mô đánh giá 61 2.2.1 Thiết lập mô 61 2.2.2 Mơ với tín hiệu vào thuộc băng tần Nyquist 2.2.3 Mơ với tín hiệu vào thuộc băng tần Nyquist 62 khác 66 2.2.4 2.3 Kết mô đánh giá 69 Kết luận chương 75 CHƯƠNG PHÁT TRIỂN GIẢI PHÁP FFC VÀ ỨNG DỤNG CHO CÁC THUẬT TOÁN DSP 3.1 3.2 76 Giải pháp nhóm tín hiệu FFC 76 3.1.1 Cơ sở toán học 76 3.1.2 Kiểm chứng giải pháp nhóm tín hiệu 80 3.1.3 Thuật toán FFC với nhóm tín hiệu 86 Ứng dụng FFC cho FFT đa phương thức thiết bị WLAN chuẩn IEEE 802.11 ax 90 3.2.1 Vai trò FFT đa phương thức thiết bị WLAN chuẩn IEEE 802.11ax 91 3.2.2 Kiến trúc triển khai FFT 95 3.2.3 Giải pháp FFT đa phương thức 97 v 3.2.4 Hiệu giải pháp FFC ứng dụng cho FFT đa phương thức thiết bị WLAN chuẩn IEEE 802.11ax thông qua thực nghiệm 104 3.3 3.4 Ứng dụng giải pháp FFC cho hiệu chỉnh TI-ADC ANC 110 3.3.1 Thực FFC cho hiệu chỉnh TI-ADC ANC 111 3.3.2 Thực nghiệm đánh giá 114 Kết luận chương 118 KẾT LUẬN 119 CÁC CƠNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ 122 TÀI LIỆU THAM KHẢO 124 PHỤ LỤC A.MỘT SỐ CÔNG THỨC BIẾN ĐỔI CỦA FFT ĐA PHƯƠNG THỨC PL1 A.1 Công thức khai triển FFT đa phương thức PL1 PHỤ LỤC B MÃ NGUỒN MỘT SỐ CHƯƠNG TRÌNH CỦA THUẬT TỐN FFC PL5 B.1 Hàm mô sim_log PL5 B.2 Hàm tạo mơ hình sim_log PL10 vi DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT Viết tắt Tên tiếng Anh Tên tiếng Việt ADC Analog to Digital converter Bộ chuyển đổi tương tự số ANC Adaptive Noise canceller Lọc thích nghi loại bỏ nhiễu ASIC The Application Specific Vi mạch số thiết kế Integrated Circuit cho ứng dụng cụ thể BDF Bandpass Derivative Filter Bộ lọc đạo hàm thông dải CMOS Complementary Metal-Oxide Công nghệ chế tạo - Semiconductor mạch tích hợp DFT Discrete Fourier Transform Biến đổi Fourier rời rạc DL Downlink Đường xuống DSP Digital signal processing Xử lý số tín hiệu ENOB Effective Number of Bit Số bit hiệu dụng EO Evolutionary optimise Cải tiến tối ưu FFC Floating-point to Fixed-point Chuyển đổi dấu phẩy động Conversion sang dấu phẩy tĩnh FFT Fast Fourier Transform Biến đổi Fourier nhanh FIR Finite Impulse Response Đáp ứng xung hữu hạn FoM Figure of Merit Hệ số phẩm chất FPGA Field-Programmable Mảng logic Gate Array lập trình FIL FPGA in the Loop Triển khai FPGA vịng kín FWL Fraction Word- Length Độ dài phần thập phân HPF High Pass Filter Bộ lọc thông cao vii Viết tắt Tên tiếng Anh Tên tiếng Việt HT High Throughput Thông lượng cao HE-SIG A High Efficiency SIGNAL Trường tín hiệu A A field hiệu cao High Efficiency SIGNAL Trường tín hiệu B B field hiệu cao High Efficiency Short Trường huấn luyện ngắn Training Field hiệu suất cao High Efficiency Long Trường huấn luyện dài Training Field hiệu suất cao High Efficiency PPDU người dùng đơn Single User PPDU hiệu suất cao HE-SIG B HE-STF HE-LTF HE SU PPDU HE MU PPDU High Efficiency PPDU đa người dùng Multi User PPDU hiệu suất cao HE EXT SU High Efficiency Extended PPDU mở rộng phạm vi PPDU Range Single User PPDU đơn người dùng hiệu cao IC Integrated Circuit Mạch tích hợp IDFT Inverse Discrete Fourier Biến đổi Fourier rời rạc Transform ngược IFFT Inverse Fast Fourier Transform Biến đổi Fourier ngược IWL Integer Word-Length Độ dài phần nguyên LTE Long-Term Evolution Cải tiến dài hạn LTI Linear Time Invariant Hệ thống tuyến tính bất biến theo thời gian L-STF L-SIG Legacy short Trường huấn luyện Training Field ngắn kế thừa Legacy SIGNAL field Trường tín hiệu kế thừa viii Viết tắt Tên tiếng Anh Tên tiếng Việt LSB Least Significant Bit Bit có trọng số thấp L-LTF Legacy Long Trường huấn luyện Training Field dài kế thừa MSB Most Significant Bit Bit có trọng số cao MDC-FFT Multi-Path Delay Commutator Kiến trúc FFT với tính Architecture FFT tốn đồng thời đa đường MUX Multiplexer Bộ ghép kênh MAC Medium Access Control Điều khiển truy nhập môi trường MMSE Minimum Mean Square Error Sai số trung bình bình phương tối thiểu MU-MIMO Multi-User Multi Input Đa người dùng, Multi Output đa đầu vào, đa đầu Orthogonal Frequency Ghép kênh phân chia Division Multiplexing tần số trực giao Orthogonal Frequency Đa truy cập Division Multiple Access phân chia tần số trực giao PAG Pseudo Aliasing Genarator Bộ tạo tín hiệu Pseudo PHY Physical Layer Lớp vật lý PVT Process, Voltage, and Chu trình, điện áp Temperature nhiệt độ PE Packet Extension field Trường mở rộng gói PPDU Physical Layer Convergence Đơn vị liệu gói Protocol Packet Data Unit giao thức hội tụ lớp vật lý Qualcomm Code Excited Dự đoán tuyến tính Linear Prediction kích mã Qualcomm Random Access Memory Bộ nhớ truy cập ngẫu nhiên OFDM OFDMA QCELP RAM 137 [109] C Vogel, “All-digital Calibration Techniques of Timing Skews for Undersampling Time-Interleaved ADCs,””, PhD thesis, Ph D dissertation, COMELEC Department, Telecom-ParisTech, 46 Rue Barrault , 2015 [110] C Vogel, S Saleem, and S Mendel, “Adaptive blind compensation of gain and timing mismatches in M-channel time-interleaved ADCs”, in: Electronics, Circuits and Systems, 2008 ICECS 2008 15th IEEE International Conference on, 2008, pp 49–52, doi: 10.1109/ICECS 2008.4674788 [111] Christian Vogel (2005), “The impact of combined channel mismatch effects in time-interleaved ADCs”, IEEE transactions on instrumentation and measurement, 54 (1), pp 415–427 [112] Christian Vogel, Dieter Draxelmayr, and Franz Kuttner, “Compensation of timing mismatches in time-interleaved analog-to-digital converters through transfer characteristics tuning”, in: The 2004 47th Midwest Symposium on Circuits and Systems, 2004 MWSCAS’04 Vol 1, IEEE, 2004, pp I–341 [113] Christian Vogel and H˚ akan Johansson, “Time-interleaved analog-todigital converters: Status and future directions”, in: 2006 IEEE International Symposium on circuits and systems, IEEE, 2006, 4–pp [114] Christian Vogel and Gernot Kubin (2005), “Modeling of time-interleaved ADCs with nonlinear hybrid filter banks”, AEU-International Journal of Electronics and Communications, 59 (5), pp 288–296 [115] Christian Vogel and Stefan Mendel (2009), “A flexible and scalable structure to compensate frequency response mismatches in time-interleaved ADCs”, IEEE Transactions on Circuits and Systems I: Regular Papers, 56 (11), pp 2463–2475 138 [116] Christian Vogel, Shahzad Saleem, and Stefan Mendel, “Adaptive blind compensation of gain and timing mismatches in M-channel time-interleaved ADCs”, in: 2008 15th IEEE International Conference on Electronics, Circuits and Systems, IEEE, 2008, pp 49–52 [117] Robert H Walden (1999), “Analog-to-digital converter survey and analysis”, IEEE Journal on selected areas in communications, 17 (4), pp 539– 550 [118] Mikko Waltari and Kari Halonen, “A 10-bit 220-MSample/s CMOS sample-and-hold circuit”, in: 1998 IEEE International Symposium on Circuits and Systems (ISCAS), vol 1, IEEE, 1998, pp 253–256 [119] Mikko Waltari and Kari Halonen, “Timing skew insensitive switching for double sampled circuits”, in: 1999 IEEE International Symposium on Circuits and Systems (ISCAS), vol 2, IEEE, 1999, pp 61–64 [120] Mikko Waltari and Kari Halonen (1999), “A 220-MSample/s CMOS sample-and-hold circuit using double-sampling”, Analog Integrated Circuits and Signal Processing, 18 (1), pp 21–31 [121] Cheng C Wang et al (2011), “An automated fixed-point optimization tool in MATLAB XSG/SynDSP environment”, International Scholarly Research Notices, 2011 [122] Markus Willems, “FRIDGE: Floating-point programming of fixed-point digital signal processors”, in: Proc International Conference on Signal Processing Applications & Technology 1997 (ICSPAT-97), Sept 1997 [123] Lin Wu and William C Black, “A low-jitter skew-calibrated multi-phase clock generator for time-interleaved applications”, in: 2001 IEEE International Solid-State Circuits Conference Digest of Technical Papers ISSCC (Cat No 01CH37177), IEEE, 2001, pp 396–397 139 [124] Chia-Hsiang Yang, Tsung-Han Yu, and Dejan Markovic (2011), “Power and area minimization of reconfigurable FFT processors: A 3GPP-LTE example”, IEEE journal of solid-state circuits, 47 (3), pp 757–768 [125] Chu Yu et al., “Design of a low-power OFDM baseband receiver for wireless communications”, in: 2012 IEEE International Conference on Consumer Electronics (ICCE), IEEE, 2012, pp 548–549 [126] Yuan-Chu Yu and Yuan-Tse Yu, “Design of a high efficiency reconfigurable pipeline processor on next generation portable device”, in: 2013 IEEE Digital Signal Processing and Signal Processing Education Meeting (DSP/SPE), IEEE, 2013, pp 42–47 [127] Guichang Zhong, Fan Xu, and Alan N Willson (2006), “A powerscalable reconfigurable FFT/IFFT IC based on a multi-processor ring”, IEEE Journal of solid-state circuits, 41 (2), pp 483–495 PL1 PHỤ LỤC A MỘT SỐ CÔNG THỨC BIẾN ĐỔI CỦA FFT ĐA PHƯƠNG THỨC A.1 Công thức khai triển FFT đa phương thức Công thức (A.1) biểu diễn cho IFFT/FFT 2048 điểm với tầng MDC Radix tầng SDF Radix 24 ; giá trị n, k khai triển từ công thức (3.20) Thay giá trị n, k Bảng A.1 vào cơng thức tính FFT tương ứng ta thu cơng thức tính FFT 1024, 512, 256 điểm công thức ( A.2), (A.3), (A.4) Bảng A.1: Giá trị n, k kiến trúc FFT Số điểm X(k) = n k Radix 2048 n4 + 16n3 + 25n2 +512n1 + 1024n0 k0 + 2k1 + 4k2 +8k3 + 128k4 tầng radix tầng radix 24 1024 n4 + 16n3 + 256n2 +512n1 k1 + 2k2 + 4k3 +64k4 tầng radix tầng radix 24 512 n4 + 16n3 + 256n2 k2 + 2k3 + 32k4 tầng radix tầng radix 24 256 n4 + 16n3 k3 + 16k4 tầng radix 24 15 X X X 15 X X nk x(n4 + 16n3 + 256n2 + 512n1 + 1024n0 ).W2048 (A.1) n4 =0 n3 =0 n2 =0 n1 =0 n0 =0 X(k) = 15 X X 15 X X nk x(n4 + 16n3 + 256n2 + 512n1 ).W1024 (A.2) n4 =0 n3 =0 n2 =0 n1 =0 X(k) = 15 X 15 X X n4 =0 n3 =0 n2 =0 nk x(n4 + 16n3 + 256n2 ).W512 (A.3) PL2 X(k) = 15 X 15 X (A.4) nk (n4 + 16n3 ).W256 n4 =0 n3 =0 Công thức (A.1) khai triển tính FFT 2048 điểm sử dụng tầng Butterfly có Radix tương ứng Bảng A.1 Để chứng minh giá trị n, k bảng 3.2,lần lượt phân tích tầng sau: Tầng số 2, tầng số 3: Xét tầng số 2, sử dụng radix nên n1 nhận giá trị 1, thay vào cơng thức (A.2) có cơng thức (A.5) X(k) = 15 X 15 X X (n +16n3 +256n2 )(k1 +2k2 +4k3 +64k4 ) [x(n4 + 16n3 + 256n2 ) × W1024 n4 =0 n3 =0 n2 =0 (A.5) (n +16n3 +256n2 +512)(k1 +2k2 +4k3 +64k4 ) +x(n4 + 16n3 + 256n2 + 512) × W1024 X(k) = 15 X 15 X X [x(n4 + 16n3 + 256n2 ) + x(n4 + 16n3 + 256n2 + 512) ] (A.6) n4 =0 n3 =0 n2 =0 512.(k1 +2k2 +4k3 +64k4 ) ×W1024 (n +16n3 +256n2 )(k1 +2k2 +4k3 +64k4 ) ] × W1024 Do tính chất đối xứng Tw, WNN = W21 ; WNk.N = ta có : X(k) = 15 X 15 X X [x(n4 + 16n3 + 256n2 ) + x(n4 + 16n3 + 256n2 + 512) n4 =0 n3 =0 n2 =0 (A.7) (n +16n3 +256n2 )(k1 +2k2 +4k3 +64k4 ) 512k1 × W1 0245122k2 × W1 0242.1024k3 × W1 02432.1024k4 ) ] × W1024 ×W1024 X(k) = 15 X 15 X X  x(n4 + 16n3 + 256n2 ) + x(n4 + 16n3 + 256n2 + 512).W2k1 n4 =0 n3 =0 n2 =0  (A.8) (n +16n3 +256n2 )(k1 +2k2 +4k3 +64k4 ) ×W1024 PL3 Đặt: X2 (n4 + 16n3 + 256n2 + 512k1 ) = (A.9) k (n4 +16n3 +256n2 ) [x(n4 + 16n3 + 256n2 ) + x(n4 + 16n3 + 256n2 + 512) × W2k1 ].W1024 Thay cơng thức (A.9) vào cơng thức (A.8), có cơng thức triển khai tính FFT cho tầng số (A.10): X(k) = 15 X 15 X X (k +2k3 +32k4 ).(n4 +16n3 +256n2 ) X2 (n4 + 16n3 + 256n2 + 512k1 ) × W5122 n4 =0 n3 =0 n2 =0 (A.10) Chứng minh tương tự tầng số có cơng thức triển khai FFT cho tầng số có cơng thức (A.11) sau: X(k) = 15 15 X X (k +32k4 ).(n4 +16n3 ) X3 (n4 + 16n3 + 256k2 + 512k1 ) × W2563 (A.11) n4 =0 n3 =0 Trong X3 định nghĩa sau: X3 (n4 + 16n3 + 256k2 + 512k1 ) = (A.12) k (n4 +16n3 ) [X2 (n4 + 16n3 + 512k1 ) + X2 (n4 + 16n3 + 256 + 512k1 ).W2k2 ] × W512 Tầng số 4: Khai triển công thức (A.11) công thức (A.13): X(k) = 15 X 15 X n k4 k3 n n k3 × W16 W256 X3 (n4 + 16n3 + 256k2 + 512k1 ).W16 (A.13) n4 =0 n3 =0 Đặt: G4 (k3 , n4 ) = 15 X n k3 X3 (n4 + 16n3 + 256k2 + 512k1 ) × W16 (A.14) n4 =0 Trong : n3 = 8σ1 + 4σ2 + 2σ3 + σ4 ; k3 = δ1 + 2δ2 + 4δ3 + 8δ4 (A.15) Với σ1,2,3,4 = 0, δ1,2,3,4 = 0, Thay n3 ; k3 vào cơng thức tính (A.14) ta có công thức (A.16) PL4 G4 (δ1 + 2δ2 + 4δ3 + 8δ4 , n4 ) = X X X X (A.16) X3 [n4 + 16(8σ1 + 4σ2 + 2σ3 + σ4 ) + 256k2 + 512k1 ] σ1 =0 σ2 =0 σ3 =0 σ4 =0 (8σ1 +4σ2 +2σ3 +σ4 )(δ1 +2δ2 +4δ3 +8δ4 ) ×W16 Khai triển công thức (A.16) thu công thức (A.17) G4 (δ1 + 2δ2 + 4δ3 + 8δ4 , n4 ) = (A.17) X 1 X X X [ [ ( X3 [n4 + 16(8σ1 + 4σ2 + 2σ3 + σ4 ) + 256k2 + 512k1 ] × W2σ1 δ1 (−j)σ2 δ1 ) σ1 =0 σ2 =0 σ3 =0 σ4 =0 (δ +2δ2 )(2σ3 +σ4 ) ×W2σ2 δ2 W161 ] × W2σ3 δ3 (−j)σ4 δ3 ].W2σ4 δ4 Đặt: X4 [n4 + 16(8σ1 + 4σ2 + 2σ3 + σ4 ) + 256k2 + 512k1 ] = (A.18) (δ +2δ2 +4δ3 +8δ4 ) G4 (δ1 + 2δ2 + 4δ3 + 8δ4 , n4 ) × W2561 Cơng thức (A.19) công thức thực FFT cho tầng số X(k) = 15 X n4 k4 X4 [n4 + 16(8σ1 + 4σ2 + 2σ3 + σ4 ) + 256k2 + 512k1 ] × W16 (A.19) n4 =0 Tầng số 5: Ở tầng số sử dụng butterfly Radix 24 , Với n4 , k4 sau: n4 = 8α1 +4α2 +2α3 +α4 k4 = β1 +2β2 +4β3 +8β4 α1,2,3,4 = 0, ; β1,2,3,4 = 0, Thay giá trị n4 , k4 vào công thức (A.19) có cơng thức (A.20) Cơng thức cơng thức thực FFT đa phương thức tầng số X(k) = X 1 X X X [ ( [ X4 (8α1 + 4α2 + 2α3 + α4 + 16(8σ1 + 4σ + 2σ3 + σ4 ) α1 =0 α2 =0 α3 =0 α4 =0 (A.20) (2α3 +α4 )(β1 +2β2 β3 α4 ).2 ].W2β4 α4 +256k2 + 512k1 ).W2β1 α1 (−j)β1 α2 ].W2β1 α2 W16 PL5 PHỤ LỤC B MÃ NGUỒN MỘT SỐ CHƯƠNG TRÌNH CỦA THUẬT TỐN FFC B.1 Hàm mơ sim_log % This script is used to run Monte Carlo simulation for TIADC Calibration function sim_log(mdl,input_file, n_sims, block_attrs_file) %% Load file load(’config.mat’); load(’-mat’,[input_file ’.mat’]); n_fins = length(fins); load_system(mdl); save_system(mdl,[mdl ’_’ input_file]); mdl=[mdl ’_’ input_file]; %params=[5:32]; %n_params=length(params); param_i = 1; set_param(mdl,’StopTime’,’Ts*(n_samples-1)’); if (~isempty(block_attrs_file)) load(’-mat’,[block_attrs_file ’.mat’]); n_block_grps=size(block_attrs); n_block_grps=n_block_grps(2); else n_block_grps=0; end %% Store performance SFDR, SNR, SNDR orig_sfdr = zeros(n_sims,n_fins); %Word-length range PL6 orig_snr = zeros(n_sims,n_fins); orig_sndr = zeros(n_sims,n_fins); cal_sfdr = zeros(n_sims,n_fins); cal_snr = zeros(n_sims,n_fins); cal_sndr = zeros(n_sims,n_fins); %% Randomize the mismatches g_mis = sigma_g * randn(n_sims,n_channels); s_mis = sigma_t * randn(n_sims,n_channels); o_mis = sigma_0 * randn(n_sims,n_channels); %% Kaiser window to estimate PSD kaiser_win=kaiser(n_samples,38); kaiser_win_rbw=enbw(kaiser_win,fs); %% Randomize the errors noise_mat = (sigma_jitt + sigma_noise) * randn(n_sims,Nfft); %% Monte Carlo tic % Preallocate signals out_tiadc = zeros(1,Nfft); out_ideal = zeros(1,Nfft); t = 0:Ts:0+Ts*(Nfft-1); assignin(’base’, ’t’, t); assignin(’base’, ’t_s’, t); for sim_i=1:n_sims % Set errors and noise gain_err = g_mis(sim_i,:); skew_err = s_mis(sim_i,:); offset_err = o_mis(sim_i,:); noise = noise_mat(sim_i,:); for fin_i=1:n_fins assignin(’base’, ’nyquist_zone’, NZs(fin_i)); assignin(’base’, ’NY’, NZs(fin_i)); % Assign the bin to input PL7 fin = fins(fin_i)*fs; fin_bin=round(fin./(fs/Nfft)); even_bin_idx = find(mod(fin_bin,2)==0); fin_bin(even_bin_idx)=fin_bin(even_bin_idx)+1; fin= fin_bin*(fs/Nfft); % Amplitude and initial phase each channel amp = ones(1,length(fin)); init_ph= 2*pi*rand(1,length(fin)); % Generate signals for i=1:M ph = (i*Ts+skew_err(i))*2*pi*fin + init_ph; ph_id = (i*Ts+0)*2*pi*fin + init_ph; out_tiadc(i:M:end) = offset_err(i)+ (1+gain_err(i))*siggen(round(Nfft/M),fin,amp,fs/M,ph,sigma_jitt) + noise(i:M:end); out_ideal(i:M:end) = + siggen(round(Nfft/M),fin,amp,fs/M,ph_id,sigma_jitt) + noise(i:M:end); end % Scale signals scale=Din/max(abs(out_tiadc)); out_tiadc=scale.*out_tiadc; out_ideal=scale.*out_ideal; % Quantization out_tiadc = round(out_tiadc*2^(nbits_ADC-1))/2^(nbits_ADC-1); out_ideal = round(out_ideal*2^(nbits_ADC-1))/2^(nbits_ADC-1); % Simulate the models assignin(’base’, ’orig’, out_tiadc); assignin(’base’, ’out_tiadc’, out_tiadc); sim(mdl); %% Result calculation, Performance calculation PL8 %[orig_snr1(sim_i,fin_i), orig_sndr1(sim_i,fin_i), orig_sfdr1(sim_i,fin_i)] = myperfMeasureTung(out_tiadc,fin_bin,n_channels); %[cal_snr1(sim_i,fin_i), cal_sndr1(sim_i,fin_i), cal_sfdr1(sim_i,fin_i)] = myperfMeasureTung(comp_sig,fin_bin,n_channels); % Original performance [orig_spec F]=periodogram(out_tiadc,kaiser_win,numel(out_tiadc),fs,’power’); try orig_snr(sim_i,fin_i) = snr(orig_spec,F,kaiser_win_rbw,’power’); catch err orig_snr(sim_i,fin_i) = snr(orig); end try orig_sfdr(sim_i,fin_i)=sfdr(orig_spec,F,’power’); catch err orig_sfdr(sim_i,fin_i)=sfdr(orig); end try orig_sndr(sim_i,fin_i)=sinad(orig_spec,F,kaiser_win_rbw,’power’); catch err orig_sndr(sim_i,fin_i)=sinad(orig); end % Calibrated performance if not(isnan(comp_sig(:))) % Performance [cal_specF]= periodogram(comp_sig(:),kaiser_win,numel(comp_sig(:)),fs,’power’); try PL9 cal_snr(sim_i,fin_i,param_i) = snr(cal_spec,F,kaiser_win_rbw,’power’); catch errtest_cal53_filter_order.m cal_snr(sim_i,fin_i,param_i) = snr(comp_sig(:)); end try cal_sfdr(sim_i,fin_i,param_i)=sfdr(cal_spec,F,’power’); catch err cal_sfdr(sim_i,fin_i,param_i)=sfdr(comp_sig(:)); end try cal_sndr(sim_i,fin_i,param_i)=sinad(cal_spec,F,kaiser_win_rbw,’power catch err cal_sndr(sim_i,fin_i,param_i)=sinad(comp_sig(:)); end %if (cal_sfdr(mis_idx,fin_i,wl_idx)0) save(result_file,’block_attrs’,’-append’); end save_system(mdl); close_system(mdl); B.2 Hàm tạo mô hình sim_log % Create log system by adding Toworkspace blocks after interested blocks to log signal max, values Input: system, dut: system and dut file [system ’_block_tags.mat’] contains variable block_tags Output: file [system ’_log’] is new model in which new ToWorkspace blocks are added function newsystem = create_log_model(system, dut, block_tags_file) load_system(system); newsystem=[system ’_log’]; PL11 save_system(system,newsystem); %% Find out blocks in systems if (isempty(block_tags_file)) blocks=find_system([newsystem ’/’ dut],’LookUnderMasks’,’all’); block_tags=struct(’name’,{},’tag’,{}); for (blk_i=1:length(blocks)) block_tags(blk_i).name=char(blocks(blk_i)); block_tags(blk_i).tag=get_param(blocks(blk_i),’tag’); end disp(’Create blog_tags file, edit the file to group blocks (signals)’); save([newsystem ’_block_tags.mat’], ’block_tags’); save_system(newsystem); close_system(newsystem); return; end load(’-mat’,[block_tags_file ’.mat’]); %% After above step, the user should edit the block_tags variable manually to set block groups And then the tag will be set to the blocks n_block_grps=0; for (blk_i=1:length(block_tags)) if (isnumeric(block_tags(blk_i).tag)) block_name=block_tags(blk_i).name; block_name_vec=strsplit(char(block_name),’/’); % block path should be in the newsystem % e.g before ’cal55_log/calibration/acc1/acc_in’ Now it should be ’cal55_fix/calibration/acc1/acc_in’ block_name_vec{1}=newsystem; block_name=strjoin(block_name_vec,’/’); set_param(block_name,’tag’,num2str(block_tags(blk_i).tag)); PL12 if (n_block_grps

Ngày đăng: 12/02/2023, 10:09

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

TÀI LIỆU LIÊN QUAN

w