Real-time SDR

Hardware & Software
role
Team Lead
Project type
Hardware & Software
Project year
2022

Tune in 📡🎧🔊

Have you ever wondered how the radio that you turn on every morning to listen to on your way to work works? I know I have.

In this project I was tasked with the challenge of navigating industry-level complex specifications while adhering to and overcoming the obstacles that come with programming a real-time implementation of a computing system that operates in a form factor-constrained environment.

Using front-end radio-frequency hardware based on the Realtek RTL2832U chipset along with the Raspberry Pi 4 MCU I was able to implement an SDR (software-defined radio) system that receives real-time frequency-modulated mono/stereo audio. The system could also be leveraged in order to allow the reception of digital data sent through the FM broadcast utilizing the radio data system protocol.

How it works

A brief description of how the system is designed to work is as follows:

  1. The system is split into 2 consecutive sections; the RF hardware block followed by the SDR audio processing block.
  2. A radio frequency signal is received by the system which is then passed through a combination of analog mixers and low-pass filters in the RF hardware block. The signal is split into its respective I/Q components and passed to the SDR audio processing block.
  3. The SDR audio processing block is again split into 2 respective sections; the RF front-end processing block followed by 3 unique audio processing paths. The RF front-end processing block demodulates the audio data at predetermined sample rates via low-pass filters, decimators, and FM demodulators
  4. The output of the RF front-end processing block is then passed to one of three audio processing paths; mono, stereo, or RDS. The output of each path is the final output of the system; the result is either mono audio, stereo audio, or radio data.

This system was programmed and built in C. Multithreading was used in order to optimize the system's performance.

Takeaways

Working on this project was a real eye opener on how complex real-time computing systems are. Each moving part of the system heavily relies on other parts and so ensuring that each modular component work as intended is vital to achieve what the system is supposed to do.

Ensuring time constraints and requirements were met was also a challenge; after completing the coding phase of the system I had to go back and further optimize and refactor the code in order to speed up its performance. This also allowed me to truly understand and appreciate the processing power and speed of coding a system in an environment such as C.

role
Team Lead
Project type
Hardware & Software
Project year
2022

Tune in 📡🎧🔊

Have you ever wondered how the radio that you turn on every morning to listen to on your way to work works? I know I have.

In this project I was tasked with the challenge of navigating industry-level complex specifications while adhering to and overcoming the obstacles that come with programming a real-time implementation of a computing system that operates in a form factor-constrained environment.

Using front-end radio-frequency hardware based on the Realtek RTL2832U chipset along with the Raspberry Pi 4 MCU I was able to implement an SDR (software-defined radio) system that receives real-time frequency-modulated mono/stereo audio. The system could also be leveraged in order to allow the reception of digital data sent through the FM broadcast utilizing the radio data system protocol.

How it works

A brief description of how the system is designed to work is as follows:

  1. The system is split into 2 consecutive sections; the RF hardware block followed by the SDR audio processing block.
  2. A radio frequency signal is received by the system which is then passed through a combination of analog mixers and low-pass filters in the RF hardware block. The signal is split into its respective I/Q components and passed to the SDR audio processing block.
  3. The SDR audio processing block is again split into 2 respective sections; the RF front-end processing block followed by 3 unique audio processing paths. The RF front-end processing block demodulates the audio data at predetermined sample rates via low-pass filters, decimators, and FM demodulators
  4. The output of the RF front-end processing block is then passed to one of three audio processing paths; mono, stereo, or RDS. The output of each path is the final output of the system; the result is either mono audio, stereo audio, or radio data.

This system was programmed and built in C. Multithreading was used in order to optimize the system's performance.

Takeaways

Working on this project was a real eye opener on how complex real-time computing systems are. Each moving part of the system heavily relies on other parts and so ensuring that each modular component work as intended is vital to achieve what the system is supposed to do.

Ensuring time constraints and requirements were met was also a challenge; after completing the coding phase of the system I had to go back and further optimize and refactor the code in order to speed up its performance. This also allowed me to truly understand and appreciate the processing power and speed of coding a system in an environment such as C.

No items found.