最近在业余的时间里一直在搞C++ 版本的FM解调程序,使用的硬件是RTLSDR, 很便宜的一个淘宝货,FM解调的C++代码网上有很多,但是很多都是linux 下的, 嫌麻烦,又要装虚拟机之类的,(其实后来还是迫不得已装了),想在WIN7下实现,用的是VS2015,网上还没有现成的代码,都是自己东拼西凑的。
代码涉及的技术:
- RTLSDR的IQ数据获取
- FM的解调
- 信号滤波
- 音频播放
- 多线程,线程间通信,资源冲突
- 数据缓冲,缓存
- 程序速度问题
- 界面
- FFT频谱
别小看这么一个收音机程序,这里所涉及的知识足以让一个工程师搞上一阵子,要把这么多东西柔和在一起,不但需要扎实的射频功底,也是非常锻炼C++功底的。其实搞这个RTL的收音机程序最主要目的是锻炼自己C++代码搬砖。
最核心的,FM的解调代码部分最主要是参考这个JvanKatwijk老大爷的,一个退休的工程师。
https://github.com/JvanKatwijk
https://www.sdr-j.tk/index.html