In this lab, you will learn how to implement a simple simulator for the OFDM layer chain. You don't need to implement everything from scratch. Instead, there is a very easy-to-follow example code provided by WARPLab (https://warpproject.org/trac/wiki/WARPLab/Examples/OFDM). You only need to read and understand this example code, and then introduce different level of noise power to check the decoding performance for various SNR values. Through code review and modification, you will know how to generate time-domain signals, simulate transmissions over the air with random noisy channels and offline decode the signals and analyze the performance.
You can download the example code here lab1_example.zip
Default parameters: the same with WARPLab example code. Change the modulation to BPSK
See details in lab1_info.pdf.
In this lab, you will learn how to migrate your lab1 simulation code to the real platform, USRP. You need to read the generated time-domain signals to USRP Tx, send the samples, and receive by USRP Rx for offline decoding. When using USRP, you will see the effect of the synchronization problem. Hence, you can compare the decoding performance when you enable or disable CFO and SFO calibration. We will provide you an example USRP code that sends some random signals and receives all the signal over the air.
You can download the example code here lab2_example.zip
Default parameters: the same with WARPLab example code. Change the modulation to BPSK
See details in lab2_info.pdf.
In this lab, you will learn how to implement a simulator for 2x1 interference nulling. You will implement your code based on lab1. Basically, you need to extend your code to generate two streams, each sent by a Tx antenna. You will also generate random frequency-domain channels in the simulator. Then, you need to calculate the precoding coefficient and perform precoding. For Rx, you need to compare the SNR with and without precoding.
See details in lab3_info.pdf.
In this lab, you will learn how to implement a simulator for 2x1 interference nulling over USRP. You will implement your code based on lab3. You need to finish the same task, but now using USRP!
You can download the example code here lab4_example.zip
See details in lab4_info.pdf.