本文用GNU Radio来实现AM发射和接收。
本文的前半部分介绍如何生成AM信号。后半部分则介绍如何解调AM信号。AM信号调制程序利用Socket来将生成的AM信号传输给实现AM解调的程序。本文并没有使用HackRF One、LimeSDR等硬件,只是使用了计算机的扬声器和麦克风。
需要具备的基础知识:
GNU Radio系列教程(三):初级篇之GNU Radio GRC流图
GNU Radio系列教程(四):初级篇之GNU Radio GRC采样率
目录
一、AM发射器
按照下图搭建一个AM发射器流图。(注意该图是用的GRC v3.8版本的)

其中使用到的模块及其参数解释如下:
(1)“Option”模块:注明了GRC流图文件名称,标题和作者等信息。
(2)“Audio Source”模块:计算机的麦克风被用来作为声音信号的输入。Sample rate(48KHz),Device Name(此参数可以不填,默认为空即可。)
(3)“Sample_rate”参数:在本GRC中除了“Audio Source”模块之外的所有采样率都是768KHz,该采样率的选取依据是,每个码元周期有16个采样值,则48000*16=768000Hz=768KHz。
(4)“Repeat”模块:为了能够实现采样率由48KHz到768KHz的转化,“Repeat”模块将内插值设定为16,48000*16=768000Hz=768KHz。
(5)“QT GUI Range”参数:为了实现对声音信号增益的动态调节控制,设定一个id为volume的“QT GUI Range”参数,默认值为1.2,start开始值为0,stop结束值为10.0,step步长为0.1。
(6)“Multiply Constant”模块:使用id为volume的参数,作为“Multiply Constant”模块的乘数。
(7)“Add Constant”模块:调制信号加上常数1,这里为什么要加上常数1,可参见AM调制公式。
(8)“Signal Source”模块:用于生成一个载波信号,注意这里载波信号的采样率为768KHz,载波信号的频率(48KHz)与“Audio Source”的采样率(48KHz)之间没有必然的联系,只是碰巧而已,你也可以自己修改载波信号频率值。“Signal Source”模块中的“Amplitude”设定为0.5(即500m,m表示的10的-3次方。)

最低0.47元/天 解锁文章
3107

被折叠的 条评论
为什么被折叠?



