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

FSK调制与解调VHDL程序及仿真

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

8.10  FSK调制与解调VHDL程序及仿真

1.        FSK调制VHDL程序

--文件名:PL_FSK

--功能:基于VHDL硬件描述语言,对基带信号进行FSK调制

--最后修改日期:2004.3.16

library ieee;

use ieee.std_logic_arith.all;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity PL_FSK is

port(clk     :in std_logic;         --系统时钟

     start   :in std_logic;         --开始调制信号

     x     :in std_logic;          --基带信号

     y     :out std_logic);        --调制信号

end PL_FSK;

architecture behav of PL_FSK is

signal q1:integer range 0 to 11;      --载波信号f1的分频计数器

signal q2:integer range 0 to 3;       --载波信号f2的分频计数器

signal f1,f2:std_logic;             --载波信号f1f2

begin

process(clk)                     --此进程通过对系统时钟clk的分频,得到载波f1

begin

if clk'event and clk='1' then

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

   elsif q1<=5 then f1<='1';q1<=q1+1; --改变q1后面的数字可以改变,载波f1的占空比

   elsif q1=11 then f1<='0';q1<=0;    --改变q1后面的数字可以改变,载波f1的频率

   else  f1<='0';q1<=q1+1;

   end if;

end if;

end process;

process(clk)                      --此进程通过对系统时钟clk的分频,得到载波f2

begin

if clk'event and clk='1' then

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

   elsif q2<=0 then f2<='1';q2<=q2+1; --改变q2后面的数字可以改变,载波f2的占空比

   elsif q2=1 then f2<='0';q2<=0;     --改变q2后面的数字可以改变,载波f2的频率

   else f2<='0';q2<=q2+1;

   end if;

end if;

end process;

process(clk,x)                    --此进程完成对基带信号的FSK调制

begin

if clk'event and clk='1' then

   if x='0' then y<=f1;            --当输入的基带信号x=0’时,输出的调制信号yf1

   else y<=f2;                  --当输入的基带信号x=1’时,输出的调制信号yf2

   end if;

end if;

end process;

end behav;

2. FSK调制VHDL程序仿真图

FSK调制VHDL程序仿真图如图8.10.7所示。

aFSK调制VHDL程序仿真全图

注:a. 载波f1f2分别是通过对clk12分频和2分频得到的。

b.基带码长为载波f12个周期,为载波f26个周期。

c.输出的调制信号y在时间上滞后于载波信号一个clk,滞后于系统时钟2clk

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

8.10.7  FSK调制VHDL程序仿真图

              

8.10.5 FSK解调方框图及电路符号

FSK解调方框图如图8.10.8所示, FSK解调电路符号如8.10.9所示。说明:图中没有包含模拟电路部分,调制信号为数字信号形式。

8.10.8 FSK解调方框图

8.10.9 FSK解调电路符号

8.10.6 FSK解调VHDL程序及仿真

1. FSK解调VHDL程序

--文件名:PL_FSK2

--功能:基于VHDL硬件描述语言,对FSK调制信号进行解调

--最后修改日期:2004.3.16

library ieee;

use ieee.std_logic_arith.all;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity PL_FSK2 is

port(clk      :in std_logic;             --系统时钟

     start    :in std_logic;             --同步信号

     x      :in std_logic;             --调制信号

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

end PL_FSK2;

architecture behav of PL_FSK2 is

signal q:integer range 0 to 11;           --分频计数器

signal xx:std_logic;                   --寄存器

signal m:integer range 0 to 5;           --计数器

begin

process(clk)                         --对系统时钟进行q分频

begin

if clk'event and clk='1' then xx<=x;      --clk信上升沿时,x信号对中间信号xx赋值

   if start='0' then q<=0;              --if语句完成Q的循环计数

   elsif q=11 then q<=0;

   else q<=q+1;

   end if;

end if;

end process;

process(xx,q)                         --此进程完成FSK解调

begin

if q=11 then m<=0;                                   --m计数器清零

elsif q=10 then

   if m<=3 then y<='0';                --if语句通过对m大小,来判决y输出的电平

   else y<='1';

   end if;

elsif  xx'event and xx='1'then m<=m+1;  --xx信号的脉冲个数

end if;

end process;

end behav;

2.FSK解调VHDL程序仿真图及注释

FSK解调VHDL程序仿真图及注释如图8.10.10所示。

aFSK解调VHDL程序仿真全图

注:a.q=11时,m清零。

b.q=10时,根据m的大小,进行对输出基带信号y的电平的判决。

c.q为其它值时,计数器m计下xx(寄存x信号)的脉冲数。

d.输出信号y滞后输入信号x 10clk

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

8.10.10 FSK解调VHDL程序仿真图及注释

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