cpsk调制器设计

来源:百度知道 编辑:UC知道 时间:2024/09/27 17:32:09
现代电子系统设计课的作业.
哪位大哥会呀,实验报告如下:
2.26 设计二十六:CPSK调制器设计
2.26.1 设计任务
设计二进制CPSK(绝对调相)调制器。
2.26.2 基本要求
(1) 基于VHDL设计一个二进制CPSK调制器;
(2) 调制器输入输出信号包括:输入时钟clk,输入开始信号start,输入基带数据信号x及输出已调信号y;
(3) 其他。
2.26.3 实验仪器设备
(1) PC机一台。
(2) 电子综合设计实验箱一套。
2.26.4 设计提示
系统框图见图2.26-1,仅供参考:(图就不画了啊,)

图2.26-1 CPSK调制方框图

(1)层次化设计方法设计CPSK调制器;
(2)可用相位∏代表‘0’码,相位0代表‘1’码,即当数字基带信号为‘0’码时,已调信号相对于载波的相位为∏; 当数字基带信号为‘1’码时,已调信号相对于载波相位为同相。
(3)采用键控法进行FSK调制,即数字基带信号作为键控信号控制判决器来完成FSK调制
求程序...

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) --此进程主要是产生两重载波信号f1,f2
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
i