1、引言

上一篇描述了利用GQRX查看频谱和记录信号文件的过程,本篇将实际录制和分析AM和FM信号。

AM和FM虽然历史悠久,且均为简单的模拟调制信号,但是生命力很强,目前仍有很多业务在使用。常见的AM信号有短波频段(3~30MHz)的调幅广播、108~138MHz航空管制通话。常见的FM信号有88~108MHz调频广播、模拟电视伴音、对讲机等。

本篇所用到的软件有之前提到的Inspectrum、Audacity,数据可视化及信号处理用Matlab R2020b。

2、一点历史

AM应该是无线通信历史上最早的一种调制方式了。在马可尼将无线电报广泛商用以后,下一个目标就是用无线电传输语音。这开始并不是一件容易的事,毕竟当时连发射稳定的正弦连续波都很困难。在先驱者费登森(Reginald Aubrey Fessenden)、德福雷斯特(Lee de Forest)等人的持续努力下,在1900年代成功进行了实验性质的AM信号传输。1920年代真空管接收机和发射机发明之后,AM得到快速发展。接下来的30年是广播的黄金时代,直到1950年代电视的发明。AM的出现改变了大众传媒的历史,NBC、BBC等著名机构都诞生于这一时期。

AM方式容易被干扰,听上去有难以去除的静电噪音和振动噪音。为了消除这些缺点,阿姆斯特朗(Edwin Howard Armstrong)于1933年发明了FM调制方式(Armstrong也是超外差接收机架构的发明者,很可惜,这些伟大的发明并没有带给他富足的生活,反而让他陷入无尽的商业竞争和诉讼,最终要了他的命)。FM调制是一种非线性调制,以消耗更大的带宽为代价,使得高保真的音频传输成为可能。阿姆斯特朗在他的FM演示中特意播放了泼水和撕纸的声音,这在之前的AM中是无法实现的。

关于AM和FM的更多信息,请看:

https://en.wikipedia.org/wiki/AM_broadcastinghttps://en.wikipedia.org/wiki/AM_broadcastinghttps://en.wikipedia.org/wiki/AM_broadcasting

https://en.wikipedia.org/wiki/FM_broadcastinghttps://en.wikipedia.org/wiki/FM_broadcastinghttps://en.wikipedia.org/wiki/FM_broadcasting

3、 AM

下面将以18900kHz处的一个调幅广播作为例子,展示IQ格式下AM信号的相关内容:一是分析和展示正弦载波的概念;二是展示AM调制的效果;三是进行AM解调。
本节使用的几个IQ数据在此下载。

3.1 复信号中的载波

实数正弦波可以由一个沿直线进行往复运动(即简谐运动)的点产生。我们测量质点在各个时刻的瞬时位移,并描绘在坐标系中,就得到下图所示的波形。

 图1 简谐运动和实数正弦波形。波形即谐变物理量(如位移)关于时间的函数

那么复数正弦波的图像应该是什么样的?一个频率为kHz、初始相位为的复数正弦波为:

从指数形式的复数正弦波表达式中可以看出,s(t)的相位随时间呈线性变化,所以s(t)对应着复平面上的匀速圆周运动。由于复数本身有两个维度,再加上时间轴,因此画出的复数正弦波形是一个像弹簧一样的三维螺旋曲线。

画出载波的图像需要一个只包含载波的信号。不过正常人谁会只发射载波呢,那等于打通了电话却不说话。我们可以认为调幅广播中短暂的静音间隙就是纯载波发射,虽然一般只有一两秒钟,对于我们已经够用了。

先用Inspectrum打开中心频率为18900200Hz、采样率为100kHz的原始数据文件。与GQRX瀑布图的方向不同,Inspectrum的频谱是横向的。左右拖动频谱,在13秒附近找到一个持续比较长的、信噪比高的静音片段,将选中的部分导出为一个新文件,文件名为carrier。由于广播信号所在的射频频率为18900kHz,这样就得到了一段持续900ms,频率为+200Hz的复数正弦波。

图2 利用Inspectrum查看并截取正弦载波频段

用Matlab导入carrier文件,并用下面的代码绘制基带信号的样本点在复平面上的运动,以及将时间轴展开后的三维波形。

%读取文件
fid=fopen('carrier');
x = fread(fid,'float');
x = x(1:2:end) + 1i*x(2:2:end);%选择前10000个样本
lower=1;
upper=10000;
rp=real(x(lower:upper));
ip=imag(x(lower:upper));
sa=(1:upper-lower+1);% plot3(rp,ip,sa);%设置图像属性
lim=0.005;
axis([-lim,lim,-lim,lim,1,length(sa)]);
ax = gca;
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
xlabel('real');
ylabel('imaginary');
zlabel('samples');
grid on;
view(3);%动画
waveform = animatedline('Color','b');
motion = animatedline('Color','r','Marker','o','Linestyle','none');
for k = 1:length(sa)clearpoints(motion);addpoints(motion,rp(k),ip(k),0);    addpoints(waveform,rp(k),ip(k),sa(k));drawnow
end
view(0,90);

图3 +200Hz复数正弦波的波形图

图中的红色小圈显示了不同时刻的样本点在复平面上的构成了圆周运动,蓝色螺旋线表示了复数正弦波形。红色小圈和蓝色螺旋线每转一圈,对应着正弦波的一个周期,单位时间内转的圈数越多,表明频率越大。两者的半径则代表了信号幅度;毛刺表明了噪声的存在。

上图选取了wav文件中的前10000个样本。当采样率为100kHz的时,10000个样本的持续时间即0.1秒。对于200Hz的正弦波,0.1s内应当有20个周期。但是实际数一下发现只有大约19个周期,这说明接收的信号存在大约10Hz的频偏。

现在来看18899800Hz处信号。在复信号格式下,射频的18899800Hz转换为基带的-200Hz。重复刚才的步骤,可以得到-200Hz正弦波的图像。可以看到,这一次图中红色小圈和螺旋线转动的方向与图4中相反。同样的10000个样本,这一次的周期有21个。

图4 -200Hz复数正弦波的波形图

接收信号的频偏有两个原因:

  • 电路中的晶振或时钟不够准确,可能是发射机不准,也可能是接收机不准,还可能发射机接收机都不准;
  • 发射机和接收机存在相对运动,即多普勒频移。

广播台是固定的,不存在多普勒效应,而且一般也比较准。所以产生频偏的原因大概率是由于本人接收机的问题。

为了补偿频偏,需要将接收频率设置为18900010Hz,这样基带信号的零频与AM信号的波峰实现了比较精确的重合。可以想象,当载波频率趋向0Hz时,正弦波的旋转也越来越慢,最终停止,成为一个直流信号,得到的三维波形图是一条平行于Z轴的直线。18900010Hz的复载波信号波形如下图所示。

 图5 0Hz复数正弦波的波形图

3.2 复信号的AM调制

顾名思义,AM幅度调制只改变载波的幅度,不改变载波的相位和频率。 所以一个零频的载波经过幅度调制之后,在复平面上应当只做径向运动,没有切向运动。

为了展示AM调制产生的基带信号的波形,我们在18900010Hz的广播信号中选择一段有声音的部分,画出其波形图。

这不就是模拟调制的星座图?

图6 一段语音经过幅度调制后产生的基带信号的波形图

仔细看上面这段AM调制之后的基带信号,整体上还是随时间缓慢转动,说明频偏补偿还没有完全到位,再改进需要专门的载波频偏补偿算法。

3.3 AM信号解调

下面对18900010Hz的原始数据进行解调。根据AM调制的原理,基带信号各个样本的幅度,就是消息信号的样本。

AM信号细分下来,由DSB-SC,SSB,VSB,常规AM等多种形式。常规AM在调制之前先对音频信号加直流偏置,再控制调制指数,确保不发生过调制(overmodulation)。这样做的好处是在接收端只需要进行简单的包络检波就可以恢复出消息信号,无需恢复载波,降低了接收机成本。因此这种方式特别适合于广播这种接收机远多于发射机的系统。

常规AM信号的包络检波解调过程如下:

%读取文件
fid=fopen('raw');
y = fread(fid,'float');
y = y(1:2:end) + 1i*y(2:2:end);%解调
amplitude=abs(y);%去除直流分量
amplitude=amplitude-mean(amplitude);%降采样,需要Signal Processing Toolbox
fs_baseband=100000;
fs_audio=48000;
voice=resample(amplitude,fs_audio,fs_baseband);%输出音频文件
audiowrite('msg.wav',voice,fs_audio);

4、总结

本篇分析了最简单的AM调制方式,要点如下:

  • 射频AM信号变换到基带后,正弦载波变成了直流分量;
  • AM调制只改变载波的幅度,所以基带信号只做径向运动,没有切向运动;
  • AM解调是对基带信号的求模,常规AM可以用包络检波的方法解调。

篇幅差不多,FM信号下一篇再写好了。

最后有一个小问题:AM基带信号在Inspectrum中的频谱具有对称性,那么它应该是一个实信号,其虚部应该为0。但是从后面的Audacity中看出其虚部明显不为0。矛盾在哪里?

利用USRP探索软件无线电(3)相关推荐

  1. 利用USRP探索软件无线电(1)

    1.参考资料 Ettus Knowledge Base USRP Manual USRP X3x0 Series X300/X310 hardware resource TwinRX hardware ...

  2. 利用USRP探索软件无线电(2)

    1.引言 上次我们已经完成了USRP X310和SDR软件的安装,这一篇的主要任务是利用GQRX进行查看频谱和记录数据. 利用GQRX和USRP研究SDR的主要流程如下:先通过查看频谱确定感兴趣的信号 ...

  3. 【直播预告】流行度偏差如何利用?探索解耦域适应无偏召回模型

    3月27日,19:00-20:00,大淘宝技术与DataFun联合策划了本次活动,邀请了大淘宝技术高级算法工程师陈智鸿老师,就无偏召回模型进行深度分享与交流,欢迎大家按时收看直播~ 反欺诈体系篇 分享 ...

  4. 图情论文笔记 | 川大实践之红色资源开发利用路径探索

    文章目录 "学习书屋"简介和建设情况 红色资源开发利用之川大经验 大资源建设 大平台建设 总结 参考文献 "学习书屋"简介和建设情况 川大学习书屋:四川大学图书 ...

  5. SIGIR2022 | 流行度偏差如何利用?探索解耦域适应无偏召回模型

    召回模型中流行度偏差的现象主要有两种:流行度分部差异.长尾分布差异.本工作主要探索如何改善召回阶段中的双塔模型来缓解流行度偏差.目前已有缓解流行度偏差的方法主要有两大类:逆倾向评分(IPS)和因果图推 ...

  6. 利用机器学习探索食物配方 通过Word2Vec模型进行菜谱分析

    介绍 食物是我们生活中不可分割的一部分.据观察,当一个人选择吃东西时,通常会考虑食材和食谱.受食材和烹饪风格的影响,一道菜可能有数百或数千种不同的菜谱.网站上的菜谱展示了做一道菜所需要的食材和烹饪过程 ...

  7. word2vec模型评估_利用机器学习探索食物配方 通过Word2Vec模型进行菜谱分析

    介绍 食物是我们生活中不可分割的一部分.据观察,当一个人选择吃东西时,通常会考虑食材和食谱.受食材和烹饪风格的影响,一道菜可能有数百或数千种不同的菜谱.网站上的菜谱展示了做一道菜所需要的食材和烹饪过程 ...

  8. MIT+IBM同时利用AI探索神经科学,让脑科学研究如虎添翼

    导语:近期,麻省理工学院(MIT)和IBM的研究人员分别发表了两项研究成果,用AI来辅助人们在临床医学和神经科学领域的研究和发展. 智东西7月8日消息,最近,有两项分别来自麻省理工学院和IBM的研究, ...

  9. 利用计算机探索规律,用计算机探索规律2

    用计算机探索规律2 (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 7.9 积分 如皋实验小学四数(下) 第八单元:用计算器探索规律 第2课时商不变的 ...

最新文章

  1. 干货|对比理解不同概率估计和模型损失函数
  2. 如何提高Sprint Review的质量?
  3. 005_Spring Data JPA条件查询
  4. 牛客网(剑指offer) 第十八题 二叉树的镜像
  5. 什么是声明式事务控制
  6. linux篇:查看Linux版本号
  7. BZOJ2333 [SCOI2011]棘手的操作 【离线 + 线段树】
  8. Java 中 Vector、ArrayList、List 使用深入剖析
  9. 【项目管理】阿尔法项目经理的时间投入启示
  10. 夜晚较为活跃之物种对照图
  11. 这位日本网友和谷歌街景的故事,感动了58万人
  12. 混合光电探测器(HPD)行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  13. 基二FFT时间抽取和频域抽取算法
  14. Win7蓝牙被禁用怎么办?
  15. 深圳大学 计算机 教育部学科,深圳大学有13个A类学科,位居全国第24!
  16. 如何在电脑上打开epub电子书
  17. Python windows高效截屏
  18. 计算机硬件英语对话,关于电脑问题的英语对话
  19. 深度学习模型部署浅析
  20. 数据包络分析--二阶段网络(考虑各阶段的公平性)

热门文章

  1. 交通强国+新基建:各地政府布局智能交通是“政治任务”,亦有内在需求
  2. 模型训练之决策树、随机森林、提升树
  3. mysql left join 三表查询_MySql的join(连接)查询 (三表 left join 写法)
  4. Servlet模板修改
  5. 1.7 信息化发展与应用
  6. 【EI快速高录用】这可能是近2年发表SCI论文的最好机会!
  7. 服务器组装风扇,服务器配件之风扇篇
  8. 技巧3 vue3项目 axios前后端交互 图片地址拼接方法
  9. Pycharm安装FLASK出现错误,无法安装
  10. js中sort()字母排序和自定义多列排序