网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > FPGA > 正文

MPSK调制与解调VHDL程序与仿真

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

8.14 MPSK调制与解调VHDL程序与仿真

2. MPSK调制程序及注释

--文件名:PL_MPSK

--功能:基于VHDL硬件描述语言,对基带信号进行MPSK调制(这里M=4

--说明:调制信号说明如表8.14.2所示。

8.14.2 调制信号说明

信号yy

载波相位

载波波形

载波符号

00

f3

01

90°

f2

10

180°

f1

11

270°

f0

--最后修改日期:2004.2.14

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);           --调制信号

end PL_MPSK;

architecture behav of PL_MPSK is

signal q:integer range 0 to 7;            --计数器

signal xx:std_logic_vector(1 downto 0);   --中间寄存器

signal yy:std_logic_vector(1 downto 0);   --2位并行码寄存器

signal f:std_logic_vector(3 downto 0);    --载波f

begin

process(clk)        --通过对clk分频,得到4种相位;并完成基带信号的串并转换

begin

if clk'event 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;

end process;

y<=f(0) when yy="11" else

   f(1) when yy="10" else

   f(2) when yy="01" else

   f(3);                                  --根据yy寄存器数据,输出对应的载波

end behav;

3. MPSK调制程序仿真及注释

MPSK调制程序仿真及注释如图8.14.6所示。

aMPSK调制VHDL程序仿真全图

bMPSK调制VHDL程序仿真局部放大图1

cMPSK调制VHDL程序仿真局部放大图2

8.14.6 MPSK调制VHDL程序仿真及注释

2. MPSK解调VHDL程序及注释

--文件名:PL_MPSK2

--功能:基于VHDL硬件描述语言,完成对MPSK调制信号 的解调(这里M=4)。

--说明:解调信号说明如表8.14.3所示。将一个信号周期分成4份,高电平权值分别为0000,低电平权值分别为1123

8.14.3 解调信号说明

载波波形

载波相位

加法器xx

中间信号yyy

0+0+2+3=5

00

90°

0+1+2+0=3

01

180°

1+1+0+0=2

10

270°

1+0+0+3=4

11

--最后修改日期:2004.2.14

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;             --系统时钟

    start    :in std_logic;             --同步信号

    x      :in std_logic;              --调制信号

    y      :out std_logic);            --基带信号

end PL_MPSK2;

architecture behav of PL_MPSK2 is

signal q:integer range 0 to 7;            --计数器

signal xx:std_logic_vector(2 downto 0);   --加法器

signal yyy:std_logic_vector(1 downto 0);  --2位并行基代信号寄存器

signal yy:std_logic_vector(2 downto 0);   --寄存xx数据

begin

process(clk)

begin

if clk'event and clk='1' then

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

   elsif q=0 then q<=1;yy<=xx; y<=yyy(0);          --把加法计数器的数据送入yy寄存器

      if x='0' then xx<="001";         --调制信号x为低电平时,送入加法器的数据“001

      else xx<="000";

      end if;       

   elsif q=2 then q<=3;            

      if x='0' then xx<=xx+"001";      --调制信号x为低电平时,送入加法器的数据“001

      end if;        

   elsif q=4 then q<=5; y<=yyy(1);     

      if x='0' then xx<=xx+"010";      --调制信号x为低电平时,送入加法器的数据“010

      end if; 

   elsif q=6 then q<=7;       

      if x='0' then xx<=xx+"011";      --调制信号x为低电平时,送入加法器的数据“011

      end if;

   else  q<=q+1;

   end if;

end if;

end process;

process(yy)                         --此进程根据yy寄存器里的数据进行译码

begin

if clk='1' and clk'event then

   if yy="101" then yyy<="00";        --yy寄存器“101”对应基带码“00

   elsif yy="011" then yyy<="01";     --yy寄存器“011”对应基带码“01

   elsif yy="010" then yyy<="10";     --yy寄存器“010”对应基带码“10

   elsif yy="100" then yyy<="11";     --yy寄存器“100”对应基带码“11

   else yyy<="00";

   end if;

end if;

end process;

 end behav;

3. MPSK解调程序仿真图及注释

MPSK解调程序仿真图及注释如图8.14.9所示。

aMPSK解调VHDL程序仿真全图

注:中间信号yy yyy的关系为:5对应“00”;3对应“01”;2对应“10”;4对应“11”。

bMPSK解调VHDL程序仿真局部放大图1

cMPSK解调VHDL程序仿真局部放大图2

8.14.9 MPSK解调VHDL程序仿真图及注释

  • 上一篇资讯: 电子琴程序设计与仿真
  • 下一篇资讯: TLC7524接口电路程序
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师