毕业论文基于fpga的psk调制解调电路设计与实现说明书.doc

毕业论文基于fpga的psk调制解调电路设计与实现说明书.doc

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

PAGE 基于FPGA的QPSK调制解调电路设计与实现 数字调制信号又称为键控信号,调制过程可用键控的方法由基带信号对载频信号的振幅、频率及相位进行调制,最基本的方法有3种:正交幅度调制(QAM)、频移键控(FSK)、相移键控(PSK).根据所处理的基带信号的进制不同分为二进制和多进制调制(M进制).多进制数字调制与二进制相比,其频谱利用率更高.其中QPSK(即4PSK)是MPSK(多进制相移键控)中应用最广泛的一种调制方式。 1 QPSK简介 QPSK信号有00、01、10、11四种状态。所以,对输入的二进制序列,首先必须分组,每两位码元一组。然后根据组合情况,用载波的四种相位表征它们。QPSK信号实际上是两路正交双边带信号, 可由图1所示方法产生。 QPSK信号是两个正交的2PSK信号的合成,所以可仿照2PSK信号的相平解调法,用两个正交的相干载波分别检测A和B两个分量,然后还原成串行二进制数字信号,即可完成QPSK信号的解调,解调过程如图2所示。 图1 QPSK信号调制原理图 图2 QPSK信号解调原理图 2 QPSK调制电路的FPGA实现及仿真 2.1基于FPGA的QPSK调制电路方框图 基带信号通过串/并转换器得到2位并行信号,,四选一开关根据该数据,选择载波对应的相位进行输出,即得到调制信号,调制框图如图3所示。 图3 QPSK调制电路框图 系统顶层框图如下 图中输入信号clk为调制模块时钟,start为调制模块的使能信号,x为基带信号,y是qpsk调制信号的输出端,carrier【3..0】为4种不同相位的载波,其相位非别为0、90、180、270度,锁相环模块用来进行相位调节,用来模拟通信系统中发送时钟与接收时钟的不同步start1为解调模块的使能信号。y2为解调信号的输出端。 2.2调制电路VHDL程序 程序说明 信号yy 载波相位 载波波形 载波符号 “00” 0° f3 “01” 90° f2 “10” 180° f1 “11” 270° f0 library ieee; use ieee.std_logic_arith.all; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity PL_MPSK is port(clk :in std_logic; --系统时钟 start :in std_logic; --开始调制信号 x :in std_logic; --基带信号 y :out std_logic; carrier :out std_logic_vector(3 downto 0); xxx :out std_logic_vector(1 downto 0) ); --调制信号 end PL_MPSK; architecture behav of PL_MPSK is signal q:integer range 0 to 7; --计数器 signal ss:std_logic_vector(1 downto 0); --中间寄存器 signal yy:std_logic_vector(1 downto 0); --2位并行码寄存器 signal xx:std_logic_vector(1 downto 0); signal f:std_logic_vector(3 downto 0); --载波f begin process(clk) --通过对clk分频,得到4种相位;并完成基带信号的串并转换 begin if clkevent and clk=1 then if start=0 then q=0; elsif q=0 then q=1;f(3)=1; f(1)=0; xx(1)=x;yy=xx; elsif q=2 then q=3;f(2)=0; f(0)=1; elsif q=4 then q=5;f(3)=0; f(1)=1; xx(0)=x; elsif q=6 then q=7;f(2)=1; f(0)=0; else q=q+1; end if; end if; --ss=yy; xxx=yy; end process; y=f(0) when yy=11 else f(1) when yy=10 else f(2) when yy=01 e

文档评论(0)

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

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

1亿VIP精品文档

相关文档