资源描述
CPSK调制解调器设计
精品文档
1、设计要求
设计CPSK调制解调器,对波形进行仿真分析。
2、设计原理
所谓绝对调相即CPSK,是利用载波的不同相位去直接传送数字信息的一种方式。对二进制2CPSK,若用相位π代表“0”码,相位0代表“1”码,即规定数字基带信号为“ 0”码时,已调信号相对于载波的相位为π;数字基带信号为“1”码时,已调信号相对于载波相位为同相。按此规定,2CPS K信号的数学表示式为
式中为载波的初相位。受控载波在0、π两个相位上变化。
3、CPSK调制与解调方框图
CPSK调制方框图如图1所示。
FPGA
CLK
START
基带信号
计数器
0相载波
π相载波
二选一开关
调制信号
图1 CPSK调制方框图
CPSK解调方框图如图2所示,
FPGA
clk
start
调制信号
计数器q
判决
基带信号
图2 CPSK解调方框图
4、程序设计
4.1 CPSK调制VHDL程序
程序设计思路:clk为系统时钟,Start为选通信号,x为基带信号,y为已调制输出信号。先用2位计数器产生两个相位相差90度的载波信号f1,f2。当基带信号x为‘1’时,输出信号y为f1。当基带信号x为‘0’时,输出信号y为f2。由于f1内部信号时序仿真时会被软件优化掉,为了能观测到f1波形,特地引出f3口,f1输出到f3以便观察。最后是例化,可以与解调端连接起来仿真。具体程序如下:
library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity cpsk is
port(clk :in std_logic;
start :in std_logic;
x :in std_logic;
y :out std_logic;
f3 :out std_logic);
end cpsk;
architecture behav of cpsk is
signal q:std_logic_vector(1 downto 0);
signal f1,f2:std_logic;
begin
process(clk)
begin
if clk'event and clk='1' then
if start='0' then q<="00";
elsif q<="01" then f1<='1';f3<=f1;f2<='0';q<=q+1;
elsif q="11" then f1<='0';f3<=f1;f2<='1';q<="00";
else f1<='0';f3<=f1;f2<='1';q<=q+1;
end if;
end if;
end process;
process(clk,x)
begin
if clk'event and clk='1' then
if q(0)='1' then
if x='1' then y<=f1;
else y<=f2;
end if;
end if;
end if;
end process;
end behav;
调制器生成的RTL电路如下:
4.2 CPSK解调VHDL程序
library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity cnt4 is
port(clk :in std_logic;
start :in std_logic;
x :in std_logic;
y :out std_logic);
end cnt4;
architecture behav of cnt4 is
signal q:integer range 0 to 3;
begin
process(clk)
begin
if clk'event and clk='1' then
if start='0' then q<=0;
elsif q=0 then q<=q+1;
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;
解调器生成的RTL电路如下:
4.2 CPSK例化
设计思路:为了进行联调,进行例化,把调制端输出口接到解调端输入口,进行波形分析。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY dingceng IS
PORT (en,cp,ina: IN STD_LOGIC;
outa: OUT STD_LOGIC;
guangcha:OUT STD_LOGIC);
END ENTITY dingceng;
ARCHITECTURE one OF dingceng IS
COMPONENT cpsk
port(clk :in std_logic;
start :in std_logic;
x :in std_logic;
y :out std_logic;
f3 :out std_logic);
end COMPONENT;
COMPONENT cnt2
port(clk :in std_logic;
start :in std_logic;
x :in std_logic;
y :out std_logic);
end COMPONENT;
SIGNAL cpsk1_y:STD_LOGIC;
BEGIN
u1: cpsk PORT MAP(clk=>cp,start=>en,x=>ina,y=>cpsk1_y);
u2: cnt2 PORT MAP(clk=>cp,start=>en,x=>cpsk1_y,y=>outa);
guangcha<=cpsk1_y;
END ARCHITECTURE one;
5.仿真波形分析
5.1 CPSK调制仿真图
分析:载波信号f3(即f1)、f2是通过系统时钟clk 分频得到的,且滞后系统时钟一个clk。可见f2与f3相位相差90度,f3落后f2一个时钟,当当基带信号x为‘1’时,输出信号y为f3。当基带信号x为‘0’时,输出信号y为f2。
5.2 CPSK解调仿真图
分析:正确进行了解调,当q=0时,根据x的电平来进行对判决。Guangcha是调制器的输出波形,解调输出信号outa滞后输入信号ina一个clk且相反。
收集于网络,如有侵权请联系管理员删除
展开阅读全文