GNU Radio 实数与复数信号分析
本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!
温馨提示:“开源SDR实验室”是北京的。
本文利用GNU Radio来分析复数信号,理解什么是复数信号,并介绍为什么要引入复数信号来分析信号处理过程。
目录
一、实验原理
IQ信号与IQ调制有关,IQ调制也称为正交调制,其调制原理图如下所示:
二、实验内容
1、实数和复数余弦信号
搭建以下GRC程序,运行程序并查看结果。所有模块的数据类型Type都设置为Float,图中所有模块的输入输出都显示为橙色 。
上图显示,我们得到了一个频率为1K,幅度为1的余弦实信号。
接下来,我们将上述GRC程序中的所有模块的数据类型都修改为Complex后如下图所示,所有模块的输入输出都显示为蓝色 。
运行程序得到如下结果,其中蓝色线和绿色线的相位相差了90度,一个为I路,一个为Q路。
2、Hilbert变换
以上是用余弦信号作为信号源,接下来我们分析一下用方波的情况以及用方波进行Hilbert变换的情况,按照下图搭建方波的程序。注意Signal Source、Throttle、第一个WX GUI Scope Sink和Hilbert的输入数据类型都是Float。第二个WX GUI Scope Sink的数据类型是Complex。
其中Hilert模块的参数设置如下图所示。
原始的实数Float方波的时域波形如下图所示。
原始实数Float方波经过Hilbert变换之后所得到的波形为下图中的绿线波形所示。
为了查看方波的复数信号,我们搭建如下的GRC程序,通过查看结果与上述Hilbert变换结果对比发现,GRC的复数信号并不能正确显示出一个复数方波信号的Q分量,要想得到真正的Q分量,则需要用Hilbert模块才行。
3、实数信号与复数信号区别对比
接下来我们通过以下的两个余弦信号相乘的例子再看一下实数信号与复数信号的区别。按照下图搭建GRC程序。所有模块的数据类型都设置为Float。第一个余弦信号的频率是10KHz,第二个余弦信号的频率是1KHz,根据三角函数公式可知,二者相乘之后得到的信号的频率为9K和11KHz,我们利用三个WX GUI FFT Sink来分别查看10K余弦实信号,1KHz余弦实信号和9K/11K乘积实信号的频谱。
第一个10KHz信号的频谱如下图的Tab1所示:
第二个1KHz信号的频谱如下图的Tab2所示:
10K和1K信号相乘得到的结果信号的频谱如下图的Tab3所示,这也就验证了10K和1K信号相乘得到的结果信号的频率是9K和11K。
当我们将上述GRC程序的所有模块数据类型都修改为Complex复数时,如下图所示。
此时的10K余弦复数信号频谱图如下:
1K的余弦复数信号频谱图如下:
而10K*1K余弦复数信号的频谱图如下所示,我们发现此时只有11KHz信号频谱,并不像实数信号中的那样还存在一个9KHz信号频谱。
三、联系方式
淘宝店铺、QQ技术交流群、CSDN联系方式如下:
微信公众号二维码: