Software-Defined Radio developed using C++ and running based on Linux in Respberry Pi
- Linux
- Aplay
- C++ compiler
- Respberry Pi 4 with Linux
- NESDR Smart SDRs
Only with Linux
- Clone the code into ResPi
- Compile using
src/Makefile
- Run with command
cat [.raw file] | [compiled executable] [mode] | aplay -c 2 -f S16_LE -r [audio sampling frequency in Hz]
- Sample .raw files could be found in Release
ResPi with NESDR Smart SDRs
- Clone the code into ResPi
- Compile using
src/Makefile
- Run with command
rtl_sdr -f 107.1M -s [radio sampling freq in Hz] | [compiled executable] [mode] | aplay -c 2 -f S16_LE -r [audio sampling freq in Hz]
Mode Option
Different mode support different sampling rate.
Mode 0 | Mode 1 | Mode 2 | Mode 3 | |
---|---|---|---|---|
Radio Fs (kHz) | 2400 | 1440 | 2400 | 1920 |
AUdio Fs (KHz) | 48 | 48 | 44.1 | 44.1 |
- Signal Processing
- Radio SIgnal was processed with software-defined filters for audio recovery.
- Support Different Channel with Different Sampling Frequency
- Supported Channel
- Mono: main audio
- Stereo: for seperate left and right channel. Test with
stereo_l0_r9.raw
andstereo_l1_r8.raw
in sample raw files - RDS: radio info
- Option of sampling freq
- Use can choose to use more stable option or higher quality option
- see mode option above
- Supported Channel
- Runtime Optimized
- Using multithread to take advantage of multicore
- Algorithm optimized mathmatically include but not only with
- Filters and resamples combines and intruction deduction
- Reduce execution on unwanted data due to sampling frequency change
- cmath
- chrono
- algorithm
- atomic
- thread
SDR/
├─ build/
├─ data/
├─ doc/
├─ include/
├─ model/
├─ src/
├─ test/
├─ .gitignore
├─ CMakeLists.txt
├─ README.md
- data: contain sample .raw files
- include: .h files
- model: class or object model
- src: source code files
This is final course prject of McMaster University COMPENG 3DY4.
Please follow the Mcmaster Academic Integrity Policy and the Code of Conduct of the Professional Engineers of Ontario.
Copying my code will have you results in academic dishonest.
Partial code credits to McMaster Faculty of Engineering. Partial Code Credit to Yilong Wang, Chuchu Zeng, Hairong Bao.