【无线通信篇】你知道ASK调制吗?

作者: 范龙飞,文章来源: MYMINIEYE微信公众号

1.ASK信号的调制原理

数字信号对载波信号的振幅调制称为振幅键控,即ASK。

在2ASK调制系统中,数字信息只有0和1两种,所调制的载波信号的幅度变化状态也只有两种:无载波输出时代表发送0;有载波输出时代表发送1。

在4ASK调制系统中,数字信息就有00、01、10、11四种,需要载波信号幅度的4个电平状态表示。显然,进制越大,相同频带内可以传输的数据信息量也就越多,即频带利用率越高。

ASK调制系统的模型如下所示:

ASK信号产生模型

基带信号m(t)可以看作一串由0、1组成的矩形脉冲信号,理论上其带宽是无限的,与载波信号调制之后的键控信号s(t)带宽也是无限的。工程中为了提高频带利用率,需要对信号带宽做限制,通常只需要将在主瓣带宽内包含90%能量的信号发送出去即可。

在频带资源比较紧张的情况下,为进一步降低信号的带宽,提高频带利用率,一种常用的方法就是在调制之前对基带信号进行成型滤波,如上图ASK信号产生模型所示。

2.ASK调制信号的MATLAB仿真

在FPGA设计前通常都会使用MATLAB对系统进行建模与仿真。设计ASK调制系统时,选定系统参数,如下所示:

码元长度(Len)

1000

码元速率(Rb)

1Mbps

采样频率(Fs)

8MHz

数据长度(LenData)

8000

载波频率(Fc)

70MHz

Matlab主要程序如下:

程序运行之后,生成2ASK的时域波形以及频谱如下:

从ASK信号的频谱图可以看出,经过成型滤波之后的信号频谱已经滤除了主瓣外的频率成分,采样后的载频分量被搬移到了2MHz处。采样后的载波频率fas = k*fs±fc,其中k为整数,当k=9时,fas=9*8-70=2MHz。

3.ASK调制信号的FPGA实现

前面采用MATLAB对ASK信号进行了仿真,接下来在Vivado开发环境下完成2ASK调制技术的设计并进行仿真。键控法实现ASK的FPGA十分简单,如下所示:

采用开关(键控)方式产生ASK调制信号,输入到DAC之前,在FPGA内部可以用一个数字带通滤波器对信号频带进行限制,关键在于产生本地载波信号,无论是Altera还是Xinlinx都提供了NCO核,我们可以根据需要,设置相应的参数后,就可以产生载波信号。

DDS/NCO核的参数的主要设置为:

• SystemClock : 8MHz

• ParameterSelection : Hardware Parameters

• PhaseWidth : 32

• OutputWidth : 14

• PhaseIncrement Programmability : Programmable

• Phaseoffset Programmability : None

• OutputSelection : Sine

输出频率为2MHz,相位累加器设置为 32’d1073741824。

主要程序如下,其中sine是DDS/NCO的输出信号,当进行4ASK调制的时候,输出信号的幅度有四种,需要合理设置中间值,分别为最大幅值的1/3和2/3,在FPGA实现除法是比较复杂和耗时的,这里采用了近似的方法,采用移位法实现0.3281(≈1/3)和0.6563(≈2/3)倍最大幅值。

最后的仿真为

FPGA实现后的2ASK调制信号仿真波形

FPGA实现后的4ASK调制信号仿真波形

从图上可以看出,2ASK中只有零值和最大值两种情况,4ASK有四种不同的幅值,符合ASK调制信号的要求。

推荐阅读