前言(SDR的理解)
\qquad
我在写上一篇关于HackRF-One的文章时是第一次使用SDR设备,利用便捷的SDR软件我能很方便的实现简单的收发功能。但在后期的学习中发现SDR设备更多的是结合开发软件用于通信方案的快速验证,使用SDR我们可以快速的实现很多不同调制方式的实验验证,比自己慢慢搭一个原型机要快很多。
\qquad
这篇文章的实验内容是使用GUN Radio这款开源软件实现WBFM的收发实验,文章内容以记录软件使用步骤为主,GUN Radio更复杂的功能会在后续继续学习记录。最开始想WSL使用软件但是Linux使用不熟练最终没能实现(想顺便熟悉一下WSL)。
准备工作(环境搭建)
- 操作系统:Ubuntu20.04(VM16.0虚拟机) windows也可以但我没试过
- SDR软件:GNU Radio 3.8.1.0
- SDR设备:HackRF One
这里的环境搭建工作我会贴一些我觉得比较有帮助的网页,我在安装的时候走了很大弯路(不使用较新版本软件的话建议直接安装较为方便)。顺便加一些我觉得对学习了解SDR很有帮助的网站
学习和参考资料链接:
- 开源SDR实验室–环境搭建 :开源SDR实验室有很多SDR的相关文章,实验也很多。
- HackRF One—VMware虚拟机ubuntu20.04+GNU Radio环境搭建 :该文作者和我使用的环境是一样
- Hackrf one环境搭建以及升级固件:HackRF one要是识别不正确可以参考该文章进行驱动和固件升级
- 基于官网教程的GNURADIO源码安装指导:本文基本是GNU Radio官方网站上的源码安装的中文参考
以下网站需要魔法才可以访问(学习参考价值很大) - GNU Radio官方网站 :进一步了解GNU Radio到官方网站寻找资料
- 常见SDR硬件设备:包含常见SDR设备的特性介绍
- HackRF one:HackRF One 学习视频,外国工程师讲的很详细B站有中文教程
- B站:不懂但是想学的东西就去”B站大学“搜一搜总会有所收获。
实验记录
GNU Radio 界面介绍
- Part1: 工具栏包含运行,调试,生成py文件的所有操作。
工具栏里的运行的4个按键比较重要:分别为查看错误,生成py文件,运行和暂停,
其次是几个模块控制按钮,使能模块,关闭使能模块,跳过模块,最后这个我还没用过
- Part2:工作窗口,从3中的模块栏中拖拽到工作区便可以使用模块
- Part3:模块栏包含的常用模块,也可以增加其他模块。点击查找模块才能搜索。
- Part4:运行信息与变量数值。
WBFM 接收实验搭建
参考文章:开源SDR实验室-WBFM接收
实验过程很像Simulink,添加模块连线实现设计功能,上手还是比较容易的。不同的是这里是存在实际硬件设备作为输入或者输出。处理数据时需要注意设备的支持频率范围,数据的采样率等等实际情况。
模块连接图:使用的都是常用模块。设置好各种参数即可。
运行时效果图,三个调节模块控制输出音量,频道频率和中心频率。
总结
实验现象是我可以断断续续的听到解调出来的FM的信号,但在运行信息中出现O U a的错误信息,这是声卡采集和软件不同步造成的,很多人说是因为使用了虚拟机,但为什么我并不清楚。简单的使用GNU Radio并不复杂很多简单常用的调制方式软件直接有模块实现比较方便,但如果需要实现较为复杂的调制解调模式,添加自定义模块等等就是一个比较复杂的结构了,后续我如果需要深入使用该软件,将会继续更新实验内容。