基于VHDL的多功能调制解调器的设计基于VHDL的多功能调制解调器的设计.doc

基于VHDL的多功能调制解调器的设计基于VHDL的多功能调制解调器的设计.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于VHDL的多功能调制解调器的设计基于VHDL的多功能调制解调器的设计

设计功能与要求 调制解调器被人们称为“猫”,它是在发送端通过调制将数字信号转换为模拟信号,而在接收端通过解调再将模拟信号转换为数字信号的一种装置。这篇报告将通过这学期所学习的VHDL的相关知识设计一个多功能的调制解调器,下面是设计要求: 实现二进制振幅键控(2ASK)的调制与解调; 实现二进制频移键控(2FSK)的调制与解调; 实现二进制相位键控(2PSK)的调制与解调。 设计思路 1、2ASK调制与解调 (1)、2ASK调制器原理图如图1、图2所示,输入随机信号序列,经过基带信号形成器,产生波形序列,然后通过惩罚器进行频谱搬移,并使用带通滤波器来滤除高频谐波和低频干扰,最终输出振幅键控信号。 (2)、2ASK解调器以包络解调为例来说明,原理图如图3所示,其中分频器对时钟信号进行分频得到与发射端数字载波相同的数字载波信号;寄存器在时钟上升沿到来时把数字ASK信号存入寄存器;计数器利用分频输出的载波信号作为计数器的时钟信号,在其上升沿到来时,对寄存器中的ASK载波个数进行计数,当计数值大于3时,输出位1,否则为0;判决器则以数字载波为判决时钟,对计数器输出信号进行抽样判决,并输出解调后的基带信号。 2、2FSK调制与解调 (1)、2FSK调制器的原理图如图4所示,信号通过2个独立的分频器产生不同频率的载波信号,然后通过选通开关选择不同频率的高频信号,从而实现2FSK调制。 (2)、2FSK与2ASK解调相似,也是由分频器、寄存器、计数器和判决器构成,其结构构图如图5所示: 3、2PSK调制与解调 相位键控分为绝对调相(CPSK)与相对调相(DPSK)两种。CPSK是利用载波的不同相位去直接传送数字信息的一种方式;DPSK则是利用载波相位的相对变化来传送数字信号,即利用前后码之间载波相位的变化表示数字基带信号。 (1)CPSK调制与解调 CPSK调制器结构图如图6所示。计数器对外部时钟信号进行分频与计数,并输出两路相位不同的数字载波信号;2选1开关在基带信号的控制下,对两路载波信号进行选择,输出信号即为CPSK信号。 CPSK解调器的结构图如图7所示,计数器q输出与发射端同步的0相数字载波;将计数器输出的0相载波与数字CPSK信号中的载波进行与运算,当两比较信号在判决时刻都为1时,输出为1,否则输出为0,从而实现解调。 (2)、DPSK调制与解调 DPSK调制器的结构图如图8所示,CPSK调制器,计数器,异或门和寄存器共同完成绝对码到相对码的变换功能。 DPSK解调器关键则是实现相对码到绝对码的转换,其结构图如图9所示,DPSK解调采用CPSK解调器与相对码到绝对码转换电路即可实现,其中,相对码到绝对码的转换是以在以计数器输出信号为时钟控制下完成的。 原理图说明 顶层模块的原理图 利用选择译码器输出矢量的每一位分别作为调制解调器的工作使能输入信号,从而实现不同条件下多种调制解调方式间的选择,对于PSK调制与解调以CPSK为例来输入原理图。 利用仿真程序生成2ASK调制器的RTL视图及电路符号 利用仿真程序生成2ASK解调器的RTL视图及电路图 利用仿真程序生成2FSK调制器的RTL视图及电路图 利用仿真程序生成2FSK解调器的RTL视图及电路图 利用仿真程序生成2CPSK调制器的RTL视图及电路图 利用仿真程序生成2CPSK解调器的RTL视图及电路图 利用仿真程序生成2DPSK调制器绝对码转换为相对码的 RTL视图及电路图 利用仿真程序生成2DPSK解调器相对码转换为绝对码的RTL视图及电路图 VHDL源代码的实现 1、选择译码器的程序 library ieee; use ieee.std_logic_1164.all; entity selecter is port( sel:in std_logic_vector(2 downto 0); Q:out std_logic_VECTOR(5 downto 0) ); end selecter; architecture rtl of selecter is begin process(sel) begin case sel is when 000 = Q=000001; when 001 = Q=000010; when 010 = Q=000100;

您可能关注的文档

文档评论(0)

cduutang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档