文档库

最新最全的文档下载
当前位置:文档库 > 基于VHDL语言的2ASK调制系统的设计

基于VHDL语言的2ASK调制系统的设计

基于VHDL语言的2ASK调制系统的设计

基于VHDL语言的2ASK调制系统的设计

《通信原理》课程设计说明书基于VHDL语言的2ASK调制系统

学院:电气与信息工程学院

学生姓名:代雪晶

指导教师:刘海波职称副教授

专业:通信工程

班级:通信1302班

完成时间:2016年6月

摘要

现代通信系统的发展随着VHDL等设计语言的出现进入了一个新的阶段,普通的传输系统设计方法已经不能满足使用需求。由于大多数信号都是带通型的,所以必须先用数字基带信号对载波进行调节,形成数字调制信号再进行传输。因而,调制技术是实现现代通信的重要手段。2ASK信号是数字调制方式中最早出现的,也是最简单的,但其抗噪声性能较差,因此实际应用并不广泛,但经常作为研究其它数字调制方式的基础。

设计在研究2ASK传输系统的基础上,基于VHDL语言设计了它的调制解调仿真实现方案。首先确定了2ASK传输系统的仿真方案。其次编写了方案所需的程序,包括基带信号的产生,调制及解调实现功能。最后,对整个系统进行仿真,对结果中的错误进行分析并改进方案。

关键词:2ASK;调制;解调;VHDL语言

目录

1 绪论 (1)

1.1 课题的研究背景 (1)

1.2 课题研究的目的和意义 (2)

1.3 论文的内容安排 (2)

2 方案的设计 (3)

2.1 方案设计的原理 (3)

2.1.1 2ASK调制原理 (3)

2.1.2 2ASK解调原理 (5)

2.2 整体方案设计 (7)

2.3 本章小结 (7)

3 2ASK调制系统的软件仿真 (8)

3.1 2ASK调制系统仿真建模 (8)

3.2 调制程序 (8)

3.3 2ASK调制系统仿真 (9)

3.4 仿真结果调试及分析 (10)

3.5 本章小结 (11)

4 2ASK解调系统软件仿真 (12)

4.1 2ASK解调系统仿真建模 (12)

4.2 解调程序 (12)

4.3 2ASK解调系统仿真 (13)

4.4 仿真结果调试及分析 (14)

4.5 本章小结 (15)

5 2ASK调制与解调系统综合仿真 (16)

5.1 基带信号的输入 (16)

5.1.1 m序列简介 (16)

5.1.2 m序列的实现 (17)

5.2 综合仿真 (18)

5.3 仿真结果调试及分析 (19)

5.4 本章小结 (22)

结束语 (23)

参考文献 (24)

致谢 (25)

附录程序清单 (26)

1 绪论

1.1 课题的研究背景

现代通信系统是时代生命线,现代通信已经不再是单一的电话网或电报文字通信网,而是一个综合的为多种信息服务的通信网。为适应世界性的政治与经济活动的需要,人类已经迅速建立起世界性的全球通信网。通信网已经成为支撑现代经济的最重要的基础结构之一。改革开放以来,我国的通信建设有了迅速的发展,但与一些发达国家相比还是比较落后。随着时代的发展,用户不再满足于听到声音,而且还要看到图像,通信终端也不局限于单一的电话机,而且还有传真机和计算机等数据终端。现有的传输媒介电缆,微波中继和卫星通信等将更多地采用数字传输。传递信息所需的一切技术设备的总和称为通信系统。图1为通信系统的一般模型。

基于VHDL语言的2ASK调制系统的设计

图1 通信系统的一般模型

图1中,信息源可以通过输出信号的性质不同分为模拟信源和数字信源,由于信息源产生信息的种类和速率不同,因而对传输系统的要求也各不同。发送设备的基本功能是将信源和传输媒介匹配起来,即将信源产生的信息信号变换为便于传输的信号形式,送往传输媒介,调制是最常见的变换方式。发送设备还包括为达到某种特殊要求所进行的各种处理,如多路复用、保密处理、纠错编码处理等。传输媒介是从发送设备到接收设备之间信号传递所经过的媒介,它可以是无线的,也可以是有线的。在实际的传输过程中必然会引入干扰,如热噪声、衰落、脉冲干扰等。接收设备的基本功能是完成发送设备的反变换,即进行解调、译码、解密等。它的任务是从带有干扰的信号中正确恢复出原始信息来。

通信系统的发展日新月异。20世纪末,EDA(Electronic Design Automation 电子设计自动化)技术获得了飞速的发展。它的核心已日趋转向基于计算机的电子设计自动化技术。采用EDA技术来设计并测试通信系统,能有效地缩小了系统的体积,降低了成本,增加了可靠性。EDA技术中的VHDL语言使得设计具有良好的可移植性及产品升级的系统性。

1.2课题研究的目的和意义

课题是基于VHDL语言设计一个2ASK传输系统。通过课题理解掌握课题涉及的相关内容,熟练使用相关开发工具软件,掌握基本的有线传输系统的构成,熟悉数字信号载波传输的基本方法,掌握基本的硬件电路调试方法。通过课题,可以了解到模拟化和数字化的区别。

模拟调制就是用模拟信号调制载波,数字调制就是用数字信号调制载波。采用数字化的好处很多,最明显的是抗干扰性能得到加强,容易加密等。

数字信号传输和模拟信号传输是不一样的,模拟信号一般通过高频调制以后就可以通过线路进行传输,接收端对输入信号进行解调后,就可以输出模拟信号;而数字信号传输就不同了,数字信号不但需要调制,调制之前还要进行编码,接收端对输入信号首先进行解调,然后再解码。

1.3 论文的内容安排

论文的第1章介绍了课题研究的背景,目的及意义。第2章介绍了方案的设计,2ASK调制及解调原理。第3章,第4章讲述了2ASK的调制和解调的软件仿真。第5章介绍2ASK调制系统的综合仿真。

2 方案的设计

2.1 方案设计的原理

2.1.1 2ASK 调制的原理

幅度键控2ASK (Amplitude-shift keying )技术是一种数字调制技术,它是连续波调制。2ASK 指的是振幅键控方式。其调制方式是根据信号的不同,调节正弦波的幅度。2ASK 技术主要是用在数据传输方面,它的优点是有效性好,随着输入信噪比的增加,系统的误码率将更迅速地按指数规律下降。

幅度键控的调制可以通过乘法器和开关电路来实现。载波在数字信号1或0的控制下通或断,在信号为1的状态载波接通,此时传输信道上有载波出现;在信号为0的状态下,载波被关断,此时传输信道上无载波传送。那么在接收端就可以根据载波的有无还原出数字信号的1和0。对于二进制幅度键控信号的频带宽度为二进制基带信号宽度的两倍。幅移键控法(ASK)的载波幅度是随着调制信号而变化的,其最简单的形式是,载波在二进制调制信号控制下通断, 此时又可称作开关键控法(OOK)。 在振幅键控中载波幅度是随着基带信号的变化而变化的。使载波在二进制基带信号1或0的控制下通或断,即用载波幅度的有或无来代表信号中的“1”或“0”,这样就可以得到2ASK 信号,二进制振幅键控方式称为通—断键控(OOK )。2ASK 信号典型的时域波形如图2所示。

基于VHDL语言的2ASK调制系统的设计

图2 2ASK 信号的典型时域波形

2ASK 信号的时域数学表达式为:

2()cos ASK n c S t a A t ω=?(1)

式中,A 为未调载波幅度,cω为载波角频率,na为符合下列关系的二进制序列的第n 个码元:

n a =0 出现概率为P (2)

n a =1 出现概率为1-P (3)

由式(1),式(2),式(3)可知,令A =1,则2ASK 信号的一般时域表达式为:

()()[]t nT t g a c

s

n

ωcos t S A SK 2∑-=

(4)

式中,Ts 为码元间隔,g(t)为持续时间 [-S T /2,S T /2] 内任意波形形状的脉冲(分析时一般设为归一化矩形脉冲),而S(t)就是代表二进制信息的随机单极性脉冲序列。

为了更深入掌握2ASK 信号的性质,除时域分析外,还应进行频域分析。由于二进制序列一般为随机序列,其频域分析的对象应为信号功率谱密度。设g(t)为归一化矩形脉冲,若g(t)的傅氏变换为G(f),S(t)则为二进制随机单极性矩形脉冲序列,且任意码元为0 的概率为P ,则S(t)的功率谱密度表达式为:

2222()(1)()(1)(0)()S s s P f f P P G f f P G f ξ=-+- (5)

式中,()f G 与二进制序列的码元速率Rs 在数值上相等。可以看出,单极性矩形脉冲随机序列含有直流分量。2ASK 信号的双边功率谱密度表达式为:

[]2

221(1)(0)()()4

z c c f P G f f f f ξξ-++-(6) 由式(6)可知,2ASK 信号的功率谱密度由两个部分组成:(1)由g(t)经线性幅度调制所形成的双边带连续谱;(2)由被调载波分量确定的载频离散谱。

对信号进行频域分析的主要目的之一就是确定信号的带宽。最常用和最简单的带宽定义是以功率谱主瓣宽度为度量的“谱零点带宽”,这种带宽定义特别适用于功率谱主瓣包含信号大部分功率的信号显然,2ASK 信号的谱零点带宽为:

[]202()()2ASK s s s s B f R f R f R T =+--== (7)

式中,Rs 为二进制序列的码元速率。

2ASK 信号的产生方法比较简单。首先,因2ASK 信号的特征是对载波的“通-断键控”,用一个模拟开关作为调制载波的输出通/断控制门,由二进制序列S(t)控制门的通断,S(t)=1 时开关导通;S(t)=0 时开关截止,这种调制方式称为通-断键控法。其次,2ASK 信号可视为S(t)与载波的乘积,故用模拟乘法器实现2ASK 调制也是很容易想到的另一种方式,称其为乘积法。在这里,采用的是通-断键控法,2ASK 调制的基带信号和载波信号分别从“2ASK 基带输入”和“2ASK 载波输入”输入。 2.1.2 2ASK 解调的原理

2ASK 的调制有两种实现方法:乘法器实现法和键控法。

乘法器实现法如图3所示。乘法器常采用环行调制器,S(t)是调制信号,是载波信号。两个信号经过乘法器频谱搬移后,输出信号经过带通滤波器滤除高频谐波

和低频干扰,完成调制。

基于VHDL语言的2ASK调制系统的设计

图3 乘法器实现法

键控法如图4所示。二进制ASK又称为通断控制(OOK),是用一个电

开关来控制载波振荡器的输出,这里的开关电路受控制。当发0码时,控制

开关关闭;当发1码时,控制开关打开,载波传输。这样就很简单的实现了ASK的调制。

基于VHDL语言的2ASK调制系统的设计

图4 键控法

2ASK 解调有非相干解调(包络检波法)和相干解调(同步检测法)两种方法,它们的共同原理图如图5所示。

基于VHDL语言的2ASK调制系统的设计

图5 2ASK解调原理框图

包络检波法如图6所示。包络检波法是一种非相干解调,信号经过带通滤波器抑制来自信道的带外干扰,然后进行解调和抽样判决。采用包络检波法的接收系统通常工作在大噪比的情况下,最佳门限值为接收信号包络值的一半,也就是说对于2ASK的包络检波法来说,最佳门限值和接收信号的包络值有关,这个特性使得2ASK不适用于变参信道。

基于VHDL语言的2ASK调制系统的设计

图6 包络检波器

同步检测法如图7所示。同步检测法也称相干解调,信号经过带通滤波器抑制来自信道的带外干扰,相乘器进行频谱反向搬移,以恢复基带信号。低通滤波器用来抑制相乘器产生的高次谐波干扰,通常判决电平取A/2。

基于VHDL语言的2ASK调制系统的设计

图7 同步检测法

由于信号只有1和0两种状态,因此只需要在每个信号间隔内做出一次判决即可,由采样判决电路完成。在相同大信噪比情况下,2ASK信号相干解调时的误码率总是低于包络检波时的误码率,即相干解调2ASK系统的抗噪声性能优于非相干解调系统,但两者相差并不太大。然而,包络检波解调不需要稳定的本地相干载波,故在电路上要比相干解调简单的多。虽然2ASK信号中确实存在着载波分量,原则上可以通过窄带滤波器或锁相环来提取同步载波,但这会给接收设备增加复杂性。因此,实际中很少采用相干解调法来解调2ASK信号。但是,包络检波法存在门限效应,相干检测法无门限效应。所以,一般而言,对2ASK系统,大信噪比条件下使用包络检测,即非相干解调,而小信噪比条件下使用相干解调。2.2 整体方案设计

基于VHDL语言的2ASK调制系统的设计

图8 整体方案框图

方案的设计思路是建立在Quartus 软件上的。首先,要有一个信源,这个信源就用伪随机序列发生器。基带信号和载波信号在控制器的控制下进入调制器。调制出来的信号经过传输,进入解调器,被恢复成基带信号。整体方框图如图8

所示。在VHDL 中采用模拟键控,产生ASK 波型,示意波型如图9所示。

0 1 0 0 1 1 0

基于VHDL语言的2ASK调制系统的设计

基于VHDL语言的2ASK调制系统的设计

图9 2ASK 波形

2.3 本章小结

本章介绍了调制解调技术和整体设计方案。调制解调技术在通信系统中已经是一项比较成熟的技术了,在此理论基础上,设计了2ASK 载波传输系统实现模型:首先必须有基带信号和载波,然后将它们进行调制并传输到接受器(解调器)中进行解调,得到基带信号,这样就完成了一个简单的传输系统设计。

3 2ASK 调制系统的软件仿真

S(t)

ASK

3.1 2ASK调制系统仿真建模

基于VHDL语言的2ASK调制建模方框图如图10所示,功能的实现是在Quartus II软件上完成的。

基于VHDL语言的2ASK调制系统的设计

图10 2ASK调制系统建模方框图

3.2 调制程序

2ASK调制的VHDL程序主要的思想是通过输入信号和载波相与(AND)来完成调制的。由于这部分是软件仿真,发送的是二元数字信号,所以不用通过带通滤波器。但是如果在实际传输过程中,不管是模拟信号还是数字信号,为了滤除其余频率,在调制前要接一个带通滤波器。

2ASK调制的VHDL程序(见附录)主要的思想是通过输入信号和载波相与(AND)来完成调制。

整个调制部分的主要程序为:

if clk'event and clk='1' then

if start='0' then q<=0;

elsif q<=1 then f<='1';q<=q+1;

elsif q=3 then f<='0';q<=0;

else f<='0';q<=q+1;

第一行程序是说在系统时钟的上升沿进行调制。第二行程序则说当系统处于等待状态时,q也为0。第三行就是说当start为1的时候,将1值赋给q并且载波f处于高电平,然后进行一个q值加1的循环。第四行程序意思是当q等于3的时候,载波f就为低电平,然后将0值赋给q。最后一行则说当为低电平时,进行q值加1的循环。由于第四行程序中f<='0';q<=0,所以可以知道此时q等于1。

整个程序的作用就是完成q等于1和2时f为高电平,q等于3和0时f为低电平。控制载波的频率对于一个调制系统是很重要的。知道了载波的频率才能在解调时正确的将信号恢复,而且载波的频率也会影响到传输和误码率等问题,

所以载波频率的选择要恰当。这里就是把系统时钟进行4分频,即f的周期为40ns。这部分主要程序可以通过改变第四行q(即q<=1)后面数字的大小,改变载波信号的占空比。也可以通过改变q(即q=3和q<=0)后面数字的大小,就可以改变载波信号的频率。

3.3 2ASK调制系统仿真

在程序编写好了后,生成模块。调制信号的模块如图11所示。

基于VHDL语言的2ASK调制系统的设计

图11 调制模块

模块连线图如图12所示,在模块的三个输入端分别接入系统时钟信号clk,允许调制信号start,调制信号x和输出信号y。

基于VHDL语言的2ASK调制系统的设计

图12 模块连线图

由于VHDL的系统工作频率是有范围的,所以系统时钟频率的设定不能太大,否则系统运行不了那么快的速度,就会造成没有结果或者结果出错。这里最好系统时钟周期设成10ns,以便于观察和输出正确的结果。在start高电平时进行调制,f是载波,q是分频器,f就是q分系统时钟的频率得到的。为了调制过程简单,节省时间,在单独的调制部分不接入m序列。

进行全编译后2ASK程序调制仿真图如图13所示。

基于VHDL语言的2ASK调制系统的设计

图13 2ASK调制仿真全图

3.4 仿真结果调试

x和y在280ns附近的二进制码元宽度(后面提到的码元宽度都是二进制的)有点不一样,这是本身设定要注意到的问题:1码和0码的码元宽度要保持长度一致。

如图14所示,图中的1码和0码的码元长度就是一致的,都是载波f的6个周期。它发送的是101码,但是可以看出它每个1码有7个高点平。虽然时间上是载波的6个周期,但是这样就会在解调部分造成误码。所以,在发送码元时,一定要选择在适当的时间传送,即信号输入的时间最好在start由低电平变为高电平时刻的附近,尽量的减少误码的出现。

如图15所示,就是选择了正确的时间传送信号。每个码元长度都是载波信号的6个周期。对于发送同样的101码,图15就比图14要好的多,在观察时很直观,实际应用中也会减少误码率。图15所示的载波f是系统时钟的4分频,也就是40ns。

所以,在调制系统中,要选择正确的传输开始时间,选择合适的载波频率,注意码元的长度一致,否则将很难传输一个正确的信号。

基于VHDL语言的2ASK调制系统的设计

图14 信号输入时间不恰当时2ASK调制仿真全图

基于VHDL语言的2ASK调制系统的设计

图15 载波为系统时钟的4分频时的2ASK调制仿真全图

3.5本章小结

本章的主要内容是2ASK调制系统软件仿真的实现。用VHDL语言编写一个具有分频器和相乘器的功能模块并进行传输系统的仿真以及结果调试。结果很直观的看出2ASK调制系统从输入基带信号到输出已调信号的实现过程。

4 2ASK解调系统软件仿真

4.1 解调系统仿真建模

基于VHDL语言的2ASK调制系统的设计

2ASK解调建模方框图如图16所示。

图16 2ASK解调建模方框图

4.2 解调程序

2ASK解调VHDL程序(见附录)的主要思想是通过一个模块内部的记数来判决解调信号的电平。当然,这个记数值的上限是可以通过程序改变的,这也就是说码元宽度是可以随着调制出来的信号而改变,以符合调制信号的各项参数,从而减少误码的出现。

程序的主要部分是:

if clk'event and clk='1' then xx<=x;

if start='0' then q<=0;

elsif q=11 then q<=0;

else q<=q+1;

第一行程序的作用是在系统时钟clk上升沿时,把解调信号x赋给中间信号xx。第二行和第三行程序则说当开始信号start等于0时或q值为11时,将q值清零。第四行程序是一个q值加1的循环。

这一部分程序具有对系统时钟记数的功能。其中先设定是在系统时钟上升沿工作,然后用if语句完成q的循环计数,当q等于11时循环又从0开始记数。这里面,可以通过改变第三行程序的q=11的值来改变码元宽度。具体的原理在下个程序说明后介绍。

完成2ASK解调的程序主要是:

if q=11 then m<=0;

elsif q=10 then

if m<=3 then y<='0';

else y<='1';

end if;

elsif xx'event and xx='1'then m<=m+1;

第一行程序是说当q等于0时将m计数器清零。第二行、第三行和第四行程序则是通过对m大小,来判决y输出的电平。这里当q等于10的时候,如果m的值小于等于3,调制出来的信号是低电平,否则就是高电平。最后一行程序作用是用计数器m计xx信号的脉冲个数。

程序通过对m的数值判断大小来解调信号。码元宽度的设置就和m的设置密切相关。这里的码元宽度是载波的3个周期,如果改动第三行程序中m的值,就可以改变码元宽度,具体的设置值要和调制部分保持一致。

4.3 2ASK解调系统仿真

解调模块如图17所示。

基于VHDL语言的2ASK调制系统的设计

图17 解调模块图

模块连线图如图18, 在模块的三个输入端分别接入系统时钟信号clk,允许解调信号start,解调信号x和输出信号y。

基于VHDL语言的2ASK调制系统的设计

图18 模块连线图

进行全编译后2ASK程序解调仿真图如图19,图20,图21所示。

基于VHDL语言的2ASK调制系统的设计

图19 2ASK解调仿真全图

由图19可以看出,由于解调前的信号x的码元宽度是6个载波周期,而这里一个载波周期是系统时钟周期的两倍,也就是说码元周期是12个系统时钟周期。从图19可以明显看出x信号携带的数据是1011011解调出来后也是1011011,即信号y,没有误码。

4.4 仿真结果调试

如图20所示,x的信号值延时一个系统时钟赋给xx。当x信号出现第一个高电平时,内部计数器m开始记数,在q等于10的时候通过判断m的数值来判决输出信号y是高电平还是低电平。.在q=11时,m清零。在q为其它时,m计xx (x信号的寄存器)的脉冲数。由于在q等于10前没有进行判决,所以之前的y 信号都没有输出,这就造成了输出信号y延时输入信号x有9个系统时钟。当然,输入信号x的时刻与允许调制信号start不协调程度不一样的话,造成的延时也不一样,甚至可以造成较严重中的错误。而这里面最要注意到的问题就是前面反复说的码元长度。如果码元长度给定(这里的码元长度等于12个系统时钟周期),那么就需要注意start信号和x信号的同步情况,但是如果码元长度除了问题,最后就结果就会出现较大错误。

如图21所示,x信号的第一个码元的长度不够,m在记数时记到3就清零了,符合y输出低电平的条件:if m<=3 then y<='0'。而本来传输的是信号1,y 的输出应该是高电平。再看y信号的第一个高电平和相对的x信号的长度不一样。y信号是两个连1,即11,x信号应该是12个载波周期,即24个系统时钟周期,而这里只有9个载波周期,这就让人无法得知传输的信息到底是11还是10。所以这个结果就出现了错误,也就是误码。

基于VHDL语言的2ASK调制系统的设计

图20 start信号和x信号不同时的2ASK解调仿真图

基于VHDL语言的2ASK调制系统的设计

图21 x信号的码元长度不够时2ASK解调仿真图

4.5 本章小结

本章介绍的是2ASK解调系统软件仿真的实现。用VHDL语言编写一个具有判决器的功能模块并进行传输系统的仿真以及结果调试。通过结果了解2ASK解调系统从信号传输进来到解调输出的全过程。