Implementing a MATLAB-based Self-Configurable Software Defined Radio Transceiver Next Authors: Benjamin Drozdenko Ramanathan Subramanian Kaushik Chowdhury Miriam Leeser Presenter: Kaushik Chowdhury GEneration NEtworks and SYStems Lab AIM OF THE PROJECT • Build a fully reconfigurable software-defined radio. • Cognitive ability: Tune dynamically RF center frequency, transmission power, modulation, and algorithm parameters to adapt to changing environment. • Requirement to ensure consistent inter-frame transceive time. 2 CHALLENGES ADDRESSED • How to ensure clocked operations in a system with no interrupts? • How to ensure that the transceive function adheres very closely to expected inter-frame time? • How to ensure that the system blocks run between calls to transceive complete within less than one inter-frame time, while maintaining high levels of accuracy? 3 SYSTEM ARCHITECTURE 4 5 DETAILED SYSTEM DESIGN Machine 1 Designated Transmitter (DTx) 1. Energy Detection 1.1 Wait DIFS 1.2 Detect Energy 1.3 MAC Contend 1.1 DTx waits for a fixed interval of time before sensing the channel state. 1.2 DTx either backs off or transmits depending on whether the channel state is busy or not. 1.3 DTx contends for channel access. 64 bits PLCP SYNC (128 bits ≡ 2 frames) 2: Transmit DATA Frame Prepare 802.11b DATA frame (256 USRP frames) During: Prepare new USRP frame (64 bits ≡ 1408 samples) Exit: Wait SIFS Frm Ctrl Entry: 3: Receive ACK Frame 3.1 Search SYNC 3.2 Read Header SFD Dur/ID SIGNAL SERVICE Dest Addr LENGTH Src Addr MAC Frame Body and FCS (16,128 bits ≡ 252 frames) 2 3.1 3.2 CRC Sequence # 6 DETAILED SYSTEM DESIGN Designated Receiver (DRx) Machine 2 1. Receive DATA Frame 1.3 1.1 1.2 Read Search Read Payload SYNC Header 1.1 1.2 1.3 64 bits 2: Transmit ACK Frame Entry: Prepare 802.11b ACK frame (4 USRP frames) During: Prepare new USRP frame (64 bits ≡ 1408 samples) Exit: Wait SIFS 3: Wait DIFS DRx waits for DCF Inter-frame Space (DIFS) duration before reentering DRx State 1 PLCP SYNC (128 bits ≡ 2 frames) Frm Ctrl 2 SFD Dur/ID SIGNAL SERVICE Rcv Addr LENGTH CRC MAC FCS SYSTEM BLOCKS RFFE PD DDD SMS RCTF Radio Frequency Front End: Automatic Gain Control (AGC), Frequency Offset Estimation & Compensation, and Raised Cosine Receive Filter (RCRF) Preamble Detection Despreading, Demodulation, and Descrambling Scrambling, Modulation, and Spreading Raised Cosine Transmit Filter 7 PARAMETER CHOICES Value/ Range Fixed/ Tunable Param Block Description Ri, Rd USRP USRP Interpolation / 500 Decimation Factor Fixed Lf USRP USRP Frame Length 64 bits Fixed Lp Frame #Octets per 802.11b Frame Payload 2012 octets Fixed K RFFE AGC Step Size 0.1 – 10 Tunable N RFFE AGC Update Period Δf RFFE Frequency Resolution 128 – 1408 1 – 16 Hz Tunable Tunable SYNC DETECTION 8 1.) Compare Received Signal (complex samples) to Expected Spread Preamble (real samples) Despread and demodulate to get real bits 2.) Compare −Window1 +Window1 Demodulated Signal to Expected Scrambled Preamble (real symbols) Descrambled Next USRP Frame 3.) Compare Descrambled −Window2 2nd USRP Frame to Expected SFD Sequence (real bits) +Window2 Expected SFD Sequence EXPERIMENTAL SETUP 9 10 Translate MATLAB to C? Why port/translate MATLAB to C? • Accelerate our MATLAB algorithms that need operate in real-time. Challenges in manual translation of MATLAB to C 1. Hard to keep functional and implementation specs separate 2. Coding errors 3. Not time-efficient or cost-effective 11 MATLAB to C using MEX What is MEX? MATLAB code, generated into C code, compiled into an executable. MATLAB CODE mycode.m file MATLAB CODER .c file MEX function mycode_mex.mexa64 Advantages of Automatic Translation of MATLAB to C using MATLAB Coder: 1. Spend more time improving algorithms 2. Test quickly and more thoroughly • Comprehensive Code Generation Report 3. Saves a lot of time and money Implementation Considerations: 1. Data Type 2. Memory Allocation 3. Built-in function’s support for code generation 12 MATLAB to C using MEX What is MEX? MATLAB code, generated into C code, compiled into an executable. MATLAB CODE mycode.m file MATLAB CODER .c file MEX function mycode_mex.mexa64 Advantages of Automatic Translation of MATLAB to C using MATLAB Coder: 1. Spend more time improving algorithms 2. Test quickly and more thoroughly • Comprehensive Code Generation Report 3. Saves a lot of time and money Implementation Considerations: 1. Data Type 2. Memory Allocation 3. Built-in function’s support for code generation 13 MATLAB to C using MEX What is MEX? MATLAB code, generated into C code, compiled into an executable. MATLAB CODE mycode.m file MATLAB CODER .c file MEX function mycode_mex.mexa64 Advantages of Automatic Translation of MATLAB to C using MATLAB Coder: 1. Spend more time improving algorithms 2. Test quickly and more thoroughly • Comprehensive Code Generation Report 3. Saves a lot of time and money Implementation Considerations: 1. Data Type 2. Memory Allocation 3. Built-in function’s support for code generation 14 MATLAB to C using MEX What is MEX? MATLAB code, generated into C code, compiled into an executable. MATLAB CODE mycode.m file MATLAB CODER .c file MEX function mycode_mex.mexa64 Advantages of Automatic Translation of MATLAB to C using MATLAB Coder: 1. Spend more time improving algorithms 2. Test quickly and more thoroughly • Comprehensive Code Generation Report 3. Saves a lot of time and money Implementation Considerations: 1. Data Type 2. Memory Allocation 3. Built-in function’s support for code generation EXPERIMENTS AND RESULTS 15 Tighter standard deviation using MEX Closer adherence to fixed inter-frame time 16 REFERENCES & ACKNOWLEDGMENTS 1 I. F. Akyildiz, S. Mohanty, M. C. Vuran, and V. Won-Yeol, “NeXt generation/dynamic spectrum access/cognitive radio wireless networks: A survey,” Computer Networks, vol. 500, no. 13, Sept. 2006. 2 Ettus Research, Inc. [Online]. “USRP N200/N210 Networked Series.” 3 IEEE Std 802.11-2009, “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.” 4 MathWorks Documentation. [Online] . “Communications System Toolbox Documentation.” “USRP Support Package from Communications System Toolbox.” 5 Travis Collins, “Multi-Node Software Defined Radio TestBed”, NEWSDR 2014. 6 J. Mitola III and G. Q. Maguire, Jr., "Cognitive radio: making software radios more personal," IEEE Personal Communications Magazine, vol. 6, nr. 4, pp. 13–18, Aug. 1999. 7 M. Luise and R. Reggiannini, "Carrier frequency recovery in all-digital modems for burst-mode transmissions", IEEE Trans. Commun., vol. 43, no. 3, pp.1169 -1178 1995. This work is supported by MathWorks under the Development-Collaboration Research Grant A#: 1-945815398. We would like to thank Mike McLernon and Ethem Sozer for their continued support on this project.