【无线通信篇】ASK调制信号的MATLAB仿真

电子说

1.3w人已加入

描述

1.ASK信号的调制原理

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

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

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

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

 

matlab

 

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主要程序如下:

 

matlab

 

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

 

matlab

 

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

3.ASK调制信号的FPGA实现

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

 

matlab

 

采用开关(键控)方式产生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)倍最大幅值。

 

matlab

 

最后的仿真为

 

 

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

 

 

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

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

编辑:hfy
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分