找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2273|回复: 0
打印 上一主题 下一主题
收起左侧

CPSK调制VHDL程序及仿真

[复制链接]
跳转到指定楼层
楼主
ID:272961 发表于 2018-1-7 22:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
8.11.6 CPSK调制VHDL程序及仿真
1. CPSK调制VHDL程序
--文件名:PL_CPSK
--功能:基于VHDL硬件描述语言,对基带信号进行调制
--最后修改日期:
library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity PL_CPSK is
port(clk      :in std_logic;           --系统时钟
     start    :in std_logic;           --开始调制信号
     x      :in std_logic;           --基带信号
     y      :out std_logic);         --已调制输出信号
end PL_CPSK;
architecture behav of PL_CPSK is
signal q:std_logic_vector(1 downto 0);  --2位计数器
signal f1,f2:std_logic;               --载波信号
begin
process(clk)                       --此进程主要是产生两重载波信号f1f2
begin
if clk'event and clk='1' then
   if start='0' then q<="00";
   elsif q<="01" then f1<='1';f2<='0';q<=q+1;
   elsif q="11" then f1<='0';f2<='1';q<="00";
   else  f1<='0';f2<='1';q<=q+1;
   end if;
end if;
end process;
process(clk,x)                        --此进程完成对基带信号x的调制        
begin
if clk'event and clk='1' then
   if q(0)='1' then
      if x='1' then y<=f1;             --基带信号x为‘1’时,输出信号yf1
      else y<=f2;                   --基带信号x为‘0’时,输出信号yf2
      end if;
   end if;
end if;
end process;
end behav;
2. CPSK调制VHDL程序仿真图及注释
CPSK调制VHDL程序仿真图及注释如图8.11.10所示。
CPSK调制VHDL程序仿真全图

注:a.载波信号f1f2是通过系统时钟clk 分频得到的,且滞后系统时钟一个clk
b.调制输出信号y滞后载波一个clk;滞后系统时钟两个clk
bCPSK调制VHDL程序仿真全局部放大图
8.11.10 CPSK调制VHDL程序仿真图及注释
8.11.8 CPSK解调VHDL程序及仿真
1. CPSK解调VHDL程序
--文件名:PL_CPSK2
--功能:基于VHDL硬件描述语言,对CPSK调制的信号进行解调
--最后修改日期:
library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity PL_CPSK2 is
port(clk       :in std_logic;                --系统时钟
     start     :in std_logic;                --同步信号
     x       :in std_logic;                --调制信号
     y       :out std_logic);              --基带信号
end PL_CPSK2;
architecture behav of PL_CPSK2 is
signal q:integer range 0 to 3;      
begin
process(clk)                              --此进程完成对CPSK调制信号的解调
begin
if clk'event and clk='1' then
   if start='0' then q<=0;
   elsif q=0 then q<=q+1;               --q=0时,根据输入信号x的电平来进行判决
      if x='1' then y<='1';     
      else y<='0';
      end if;
   elsif q=3 then q<=0;
   else  q<=q+1;
   end if;
end if;
end process;
end behav;
2. CPSK解调VHDL程序仿真图及注释
CPSK解调VHDL程序仿真图及注释如图8.11.13所示

aCPSK解调VHDL程序仿真全图

注:a.q=0时,根据x的电平来进行对判决。
b.输出信号y滞后输入信号x一个clk
bCPSK解调VHDL程序仿真局部放大图
8.11.13 CPSK解调VHDL程序仿真图及注释
8.11.10绝对码-相对码转换VHDL程序及仿真
1. 绝对码-相对码转换VHDL程序
--文件名:PL_DPSK
--功能:基于VHDL硬件描述语言,对基带信号进行绝对码到相对码的转换
--最后修改日期:
library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity PL_DPSK is
port(clk      :in std_logic;         --系统时钟
     start    :in std_logic;         --开始转换信号
     x      :in std_logic;          --绝对码输入信号
     y      :out std_logic);        --相对码输出信号
end PL_DPSK;
architecture behav of PL_DPSK is
signal q:integer range 0 to 3;         --分频器
signal xx:std_logic;                --中间寄存信号   
begin
process(clk,x)                    --此进程完成绝对码到相对码的转换
begin
if clk'event and clk='1' then
   if start='0' then q<=0; xx<='0';
   elsif q=0 then q<=1; xx<=xx xor x;y<=xx xor x; --输入信号与前一个输出信号进行异或
   elsif q=3 then q<=0;
   else q<=q+1;
   end if;
end if;
end process;
end behav;
2. 绝对码-相对码转换程序仿真图及注释
绝对码-相对码转换程序仿真图及注释如图8.11.16所示。

注:a.q=0时,输出信号y是输入信号x与中间寄存信号xx异或。
    b.输出信号y滞后于输入信号x一个clk
8.11.16 绝对码-相对码转换程序仿真图及注释
8.11.12 相对码-绝对码转换VHDL程序及仿真
1. 相对码-绝对码转换VHDL程序
--文件名:PL_DPSK2
--功能:基于VHDL硬件描述语言,对基带码进行相对码到绝对码的转换
--最后修改日期:
library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity PL_DPSK2 is
port(clk    :in std_logic;          --系统时钟
     start  :in std_logic;          --开始转换信号
     x    :in std_logic;          --相对码输入信号
     y    :out std_logic);        --绝对码输出信号
end PL_DPSK2;
architecture behav of PL_DPSK2 is
signal q:integer range 0 to 3;       --分频
signal xx:std_logic;              --寄存相对码
begin
process(clk,x)                   --此进程完成相对码到绝对码的转换
begin
if clk'event and clk='1' then
   if start='0' then q<=0;
   elsif q=0 then q<=1;
   elsif q=3 then q<=0; y<=xx xor x; xx<=x;  --输入信号x与前一输入信号xx进行异或
   else q<=q+1;
   end if;
end if;
end process;
end behav;
2. 相对码-绝对码转换VHDL程序仿真图及注释
相对码到绝对码的转换程序仿真图及注释如图8.11.19所示。

a)相对码到绝对码的转换程序仿真全图

    b.输出信号y滞后于输入信号x 一个基带码长(4clk)。
b)相对码到绝对码的转换程序仿真局部放大图
8.11.19 相对码到绝对码的转换程序仿真图及注释

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表