文档详情

(EDA)基于FPGA的QPSK调制解调电路设计与实现说明书.doc

发布:2016-05-12约3.66千字共11页下载文档
文本预览下载声明
基于FPGA的QPSK调制解调电路设计与实现 1 QPSK简介 图1 QPSK信号调制原理图 图2 QPSK信号解调原理图 2 QPSK调制电路的FPGA实现及仿真 2.1基于FPGA的QPSK调制电路方框图 图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 else f(3) when yy=00; --根据yy寄存器数据,输出对应的载波 carrier=f; end behav; 在quartus ii下的仿真结果总体结果如下图所示 局部放大图如下 3 QPSK解调电路的FPGA实现及仿真 3.1 QPSK解调电路方框图 当调制为低电平时,译码器1根据记数器输出值,送入加法器相应的数据。加法器把运算结果送到寄存器,译码器2根据寄存器数据通过译码,输出两位并行信号,该信号再通过并/串转换即可得到解调后的基带信号,调制框图如图4所示。 图4 QPSK解调电路框图 3.2解调电路VHDL程序 library ieee; use ieee.std_logic_arith.all; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity PL_MPSK2 is port(clk :in std_logic;
显示全部
相似文档