Due: Saturday, March 21, 2026 at 11:59 PM via Gradescope

Throughout this lab, you may reference the tutorial on this page as needed.

Instructions

In previous labs, I have provided step-by-step instructions on what to implement and which experiments to conduct. In this lab, I want to give you the opportunity to exercise creativity by allowing you to decide exactly what to implement on the SDRs. Think of this lab as a “mini-project” where you can investigate and implement whatever draws your interest within the realm of digital communications. While I am happy to provide high-level guidance, I expect you to do the heavy-lifting to accomplish whatever it is you pursue. If you find yourself stuck on a specific bug/issue for an extended period of time, please reach out or post on Piazza. The only real instructions are to “do something cool” and write a brief lab report on it. My expectation is that you make a genuine attempt to implement something you find interesting, rather than take the path of least resistance. I am not expecting each of you to do something revolutionary, but I am expecting each of you to put in an appropriate amount of thought, time, and effort into whatever you choose to do.

You may work in teams of two, if you wish, but this is not required. If you do, you only need to submit a single lab report, but there should be a section that describes the contributions of each person. Note that my expectations will indeed be higher for those of you that choose to work in teams.

Possible Directions

To give you some inspiration on directions to take, consider the following possible ideas.

Technology Focused:

  • OFDM: Implement orthogonal frequency-division multiplexing.
  • Synchronization: Explore and implement techniques for carrier frequency offset (CFO) estimation/correction and timing synchronization.
  • Coding: Explore and implement channel coding (i.e., error correction) techniques; compare their performance against uncoded schemes. You may also look into bit-interleaved coded modulation (BICM).
  • Channel Estimation: Investigate the tradeoff between the number/position of pilot symbols and symbol-error rate (or bit-error rate). You may also look into channel prediction and pilot interpolation.
  • Equalization: Implement multi-tap channel equalization to mitigate inter-symbol interference introduced by multipath.
  • Spread Spectrum: Implement direct-sequence spread spectrum, like that used in code-division multiple access (CDMA).
  • RF Fingerprinting: Explore and implement ML-based RF fingerprinting to identify individual SDRs based on subtle signatures in their transmitted signals.

Application Focused:

  • Use an SDR to visualize RF activity across a broad range of the spectrum by sweeping its carrier frequency.
  • Create a two-player game (like chess) or a messaging/chat application that communicates from one computer to another through the RemoteRF platform.
  • Decode Wi-Fi broadcasts to identify nearby access points.

Lab Report

Submit a lab report summarizing what you intended to implement/investigate and how it turned out. Show any relevant plots and what the key conclusions one should draw from those plots. Teach me what it is you learned and what you accomplished. Add in a block diagram or two if appropriate, along with any relevant equations. A sample outline is as follows:

  1. Introduction and Objective
  2. Technical Implementation (what you did)
  3. Results & Plots
  4. Lessons Learned and Conclusion

The report does not have to be particularly long. My priority is that you make a genuine attempt at doing something you are interested in.