ASK调制VHDL程序及仿真程序

ASK调制VHDL程序及仿真程序
1. ASK调制VHDL程序
--文件名:PL_ASK
--功能:基于VHDL硬件描述语言,对基带信号进行ASK振幅调制
--最后修改日期: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_ASK is
port(clk     :in std_logic;           --系统时钟
     start   :in std_logic;           --开始调制信号
     x     :in std_logic;           --基带信号
     y     :out std_logic);         --调制信号
end PL_ASK;
architecture behav of PL_ASK is
signal q:integer range 0 to 3;         --分频计数器
signal f :std_logic;                 --载波信号
begin
process(clk)
begin
if clk'event and clk='1' then
   if start='0' then q<=0;
   elsif q<=1 then f<='1';q<=q+1; --改变q后面数字的大小,就可以改变载波信号的占空比
   elsif q=3 then f<='0';q<=0;    --改变q后面数字的大小,就可以改变载波信号的频率
   else  f<='0';q<=q+1;
   end if;
end if;
end process;
y<=x and f;                   --对基带码进行调制
end behav;
2.  ASK调制VHDL程序仿真图及注释
ASK调制VHDL程序仿真图及注释如图8.9.7所示。
(a)ASK调制仿真全图
注:a.基带码长等于载波f的6个周期。
b. 输出的调制信号y滞后于输入基带信号x一个clk时间。
(b)ASK调制仿真局部放大图
图8.9.7 ASK调制VHDL程序仿真图及注释
8.9.6 ASK解调VHDL程序及仿真
1.ASK解调VHDL程序
--文件名:PL_ASK2
--功能:基于VHDL硬件描述语言,对ASK调制信号进行解调
--最后修改日期:2004.2.12
library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity PL_ASK2 is
port(clk      :in std_logic;          --系统时钟
     start    :in std_logic;         --同步信号
     x      :in std_logic;          --调制信号
     y      :out std_logic);        --基带信号
end PL_ASK2;
architecture behav of PL_ASK2 is
signal q:integer range 0 to 11;        --计数器
signal xx:std_logic;                --寄存x信号
signal m:integer range 0 to 5;        --计xx的脉冲数
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)                    --此进程完成ASK解调
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.ASK程序解调仿真图及注释
ASK程序解调仿真图及注释如图8.9. 10所示。
(a)ASK解调仿真全图
注:a.在q=11时,m清零。
b.在q=10时,根据m的大小,进行对输出基带信号y的电平的判决。
c.在q为其它时,m计xx(x信号的寄存器)的脉冲数。
d. 输出的基带信号y滞后输入的调制信号x 10个clk。
(b)ASK解调仿真局部放大图
图8.9.10  ASK程序解调仿真图及注释959
Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有