GNU radio FM调制解调实验
1. 实验原理
1.1 角度调制基本概念
正弦载波有三个参量:幅度、频率、相位。
不仅可以把调制信号的信息载荷于载波的幅度变化中,还可以载荷于载波的频率或相位中。在调制中,若载波的频率随调制信号变化,称为频率调制或调频FM;若载波的相位随调制信号变化,则称为相位调制或调相PM。
在这两种调制过程中,载波的幅度都保持恒定不变,而载波的频率和相位的变化都表现为载波的瞬时相位的变化,因此把调频和调相统称为角度调制或调角。如图1(图源:基带、射频,到底是干什么用的?-面包板社区 (eet-china.com))
角度调制与幅度调制不同的是,已调信号频谱不再是原调制信号频谱的线性搬移,而是频谱的非线性变换,会产生与频谱搬移不同的信道频率成分,故角度调制又称为非线性调制。
角度调制分为频率调制FM和相位调制PM,即载波的幅度保持不变,而载波的频率或相位随着基带调制信号变化的调制方式。如果载波的频率变化量与调制信号电压成正比,则称为调频FM,如果载波的相位变化量与调制信号电压成正比,则称为调相PM。如表1所示。
角度调制 | 某变化量与调制信号电压成正比 |
---|---|
调频FM | 载波的频率变化量 |
调相PM | 载波的相位变化量 |
角度调制的一般原理公式如下所示:
其中,
相位调制PM,是指瞬时相位偏移
其中,
频率调制FM,是指瞬时频率偏移
其中,
由此可知,PM和FM的区别仅在于,PM是相位偏移随
1.2 单音调制FM与PM
假设调制信号为单一频率的余弦波,即
当用该调制信号来进行相位调制PM时,PM已调信号为:
其中,
当用该调制信号来进行频率调制FM时,FM已调信号为:
其中,
1.3 单频FM解调
调制信号为
设定
则由FM表达式可得,
证明:
其中,
调制信号
注:arg表示复数的幅角,若
其中,
注:在
1.4 窄带FM(NBFM)
如果上述FM调制公式中的最大瞬时相位偏移
则FM信号的频谱宽度比较窄,称为窄带调频(NBFM),而当最大瞬时相位偏移不满足上述条件是,FM信号的频谱带比较宽,称为宽带调频(WBFM)。
NBFM 和 WBFM 最大的区别是最大瞬时相位偏移不同。
NBFM 最大相偏 = 5kHz
WBFM 最大相偏 = 75kHz
直接反应到频谱上,WBFM 的频谱比 NBFM 要宽,同时 NBFM 的声音带宽会被进一步压低,而 WBFM (普通广播)的音质就会听起来好很多。
将单音 FM信号公式展开得到,
当最大瞬时相位偏移远远小于 0.5 时,可有
则 NBFM 信号的时域表达式为
利用常见的傅里叶变换对
由时域相乘,对应频域卷积的关系可得,(参考博客关于傅里叶变换的浅谈 - 知乎 (zhihu.com)以及关于时域乘法和频域卷积关系的浅谈-Part 1 - 知乎 (zhihu.com))
因此,可得 NBFM 信号的频域表达式为
1.5 宽频FM(WBFM)
当FM调制公式中的最大瞬时相位偏移
假设单音调制信号为
有单音调制FM信号的时域表达式为
将两个因子分别展开傅里叶级数
其中,
利用三角公式
以及贝塞尔函数性质
得到FM信号的级数展开式为
对上式进行傅里叶变换,即得FM信号的频域表达式
由此可知,FM调频信号的频谱载波分量
1.6 调频信号的带宽
调频信号的频谱包含无穷多个频率分量,因此理论上调频信号的频带宽度为无限宽,但是实际上边频幅度
当
这就是广泛用于计算调频信号带宽的卡森(Carson)公式。
当
这就是窄带调频NBFM的带宽。此时,带宽由第一对边频分量决定,带宽值随调制信号频率
当
这就是带宽调频WBFM的带宽。此时,带宽由最大频偏
对于多音或任意带限信号调制时的调频信号带宽仍可用卡森公式估算,即
但是,这里的
NBFM 和 WBFM 最大的区别是最大瞬时相位偏移不同。
NBFM 最大相偏 = 5kHz
WBFM 最大相偏 = 75kHz
例如,调频广播中规定的最大频偏
2. 实验内容
2.1 单频FM调制
按图2搭建一个FM调制的GRC程序。
2.1.1 变量定义
将
2.1.2 生成调制信号
用 Signal Source 模块生成一个正弦波调制信号
2.1.3 生成载波信号
分别生成
即为FM已调信号,调制信号波形如图3所示。
FM已调信号如图4所示。
FM已调信号的频域波形如图5所示。
2.2 单频FM解调
按照图6搭建FM解调GRC
2.2.1 定义变量
采样率:200000Hz
载波频率
低通滤波器截止频率
2.2.2 生成载波信号
用两个Signal Source分别生成载波信号
并分别于FM已调信号相乘(FM已调信号为FM调制中生成并保存到文件的信号)。
对于
由
对于
由
2.2.3 生成复数信号
由于
则上一步得到的
2.2.4 生成延迟信号
附属信号通过Delay模块生成延迟信号
2.2.5 共轭相乘
利用Multiply Conjugate模块生成
2.2.6 取信号的角度
利用Complex tp Arg模块取出复数信号
经过低通滤波后的信号频谱如图7所示,FM解调后得到的调制信号的时域波形如图8所示,频谱如图9所示。
2.3 WBFM调制解调
按图10所示搭建一个WBFM调制解调的GRC程序。
2.3.1 从电脑硬盘读取音频
使用Wav File Source模块来读取.wav文件,尽量避免使用中文名文件、英文大写为首字母的文件或过大的文件,否则会报错,如
1 | RuntimeError: is not a valid wav file |
2.3.2 WBFM调制(发送)
使用WBFM Transmit模块生成WBFM宽带FM信号。
2.3.3 重采样
使用Rational Resampler模块来调整采样率,经过Rational Resampler模块作用,采样率变化过程为
2.3.4 信道模拟
使用Channel Model来模拟信道作用。
2.3.5 低通滤波
低通滤波的截止频率设置为
2.3.6 重采样
使用Rational Resampler模块来调整采样率,经过此Rational Resampler模块作用,采样率变化过程为
2.3.7 WBFM解调(接收)
使用WBFM接收模块来进行WBFM解调,其中
2.4 使用HackRF实现WBFM调制解调
如图11为使用HackRF实现WBFM调制GUN Radio流图,图12为使用HackRF实现WBFM解调流图。
2.4.1 HackRF接收信号
HackRF用osmocom Source模块来接收FM信号,其中采样率设置为变量
**Ch0:Frequncy(Hz)**设置为变量
用一个Signal Source产生一个频率为
2.4.2 低通滤波
低通滤波器的截止频率设置为
2.4.3 重采样
使用Rational Resampler模块来继续调整采样率,以此来满足后续Audio Sink模块需要的
2.4.4 WBFM接收
使用WBFM接收模块来进行WBFM解调,其中
2.4.5 音量调节
使用一个Multiply Constant模块来调节声音音量大小,这个数值的取值设定为一个可调节的变量
2.4.6 收听电台
依据图中的流图将会听到103.915MHz的电台(北京交通广播电视台),可以通过调节
3. 参考资料
- GNU Radio FM调制解调实验_开源SDR实验室的博客-CSDN博客
- 傅里叶时移和频移性质_寂小小寞的博客-CSDN博客_频移定理
- coswt的傅里叶变换 (baidu.com)
- 求教书中傅里叶变换中F(jw)和F(w)有什么区别? - 知乎 (zhihu.com)
- 关于时域乘法和频域卷积关系的浅谈-Part 1 - 知乎 (zhihu.com)
- 卷积运算是什么? - 知乎 (zhihu.com)
- 卷积_百度百科 (baidu.com)
- 时域上的乘积等于频域上的卷积_卷积的通俗理解——从傅里叶变换到滤波器_学术入门的博客-CSDN博客
- 第一类贝塞尔函数 - 快懂百科 (baike.com)
- GNU Radio GRC HackRF实现FM接收_开源SDR实验室的博客-CSDN博客
- cos和sin的傅立叶变换_yundanfengqing_nuc的博客-CSDN博客_sin和cos的傅里叶变换