基于VHDL的多功能调制解调器的设计Word文档格式.docx
- 文档编号:17374153
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:22
- 大小:380.35KB
基于VHDL的多功能调制解调器的设计Word文档格式.docx
《基于VHDL的多功能调制解调器的设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于VHDL的多功能调制解调器的设计Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
DPSK解调器关键则是实现相对码到绝对码的转换,其结构图如图9所示,DPSK解调采用CPSK解调器与相对码到绝对码转换电路即可实现,其中,相对码到绝对码的转换是以在以计数器输出信号为时钟控制下完成的。
三、原理图说明
1、顶层模块的原理图
利用选择译码器输出矢量的每一位分别作为调制解调器的工作使能输入信号,从而实现不同条件下多种调制解调方式间的选择,对于PSK调制与解调以CPSK为例来输入原理图。
2、利用仿真程序生成2ASK调制器的RTL视图及电路符号
3、利用仿真程序生成2ASK解调器的RTL视图及电路图
4、利用仿真程序生成2FSK调制器的RTL视图及电路图
5、利用仿真程序生成2FSK解调器的RTL视图及电路图
6、利用仿真程序生成2CPSK调制器的RTL视图及电路图
7、利用仿真程序生成2CPSK解调器的RTL视图及电路图
8、利用仿真程序生成2DPSK调制器绝对码转换为相对码的RTL视图及电路图
9、利用仿真程序生成2DPSK解调器相对码转换为绝对码的RTL视图及电路图
四、VHDL源代码的实现
1、选择译码器的程序
libraryieee;
useieee.std_logic_1164.all;
entityselecteris
port(
sel:
instd_logic_vector(2downto0);
Q:
outstd_logic_VECTOR(5downto0)
);
endselecter;
architecturertlofselecteris
begin
process(sel)
caseselis
when"
000"
=>
Q<
="
000001"
;
001"
000010"
010"
000100"
011"
001000"
100"
010000"
101"
100000"
whenothers=>
null;
endcase;
endprocess;
endrtl;
2、2ASK调制器的程序
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entityPL_ASKis
port(clk:
instd_logic;
--系统时钟
start:
--开始调制信号
x:
--基带信号
y:
outstd_logic);
--调制信号
endPL_ASK;
architecturebehavofPL_ASKis
signalq:
integerrange0to3;
--分频计数器
signalf:
std_logic;
--载波信号
begin
process(clk)
ifclk'
eventandclk='
1'
then
ifstart='
0'
thenq<
=0;
elsifq<
=1thenf<
='
q<
=q+1;
--改变q后面数字的大小,就可以改变载波信号的占空比
elsifq=3thenf<
--改变q后面数字的大小,就可以改变载波信号的频率
elsef<
endif;
endif;
endprocess;
y<
=xandf;
--对基带码进行调制
endbehav;
3、2ASK解调器的程序
entityPL_ASK2is
--同步信号
endPL_ASK2;
architecturebehavofPL_ASK2is
integerrange0to11;
--计数器
signalxx:
--寄存x信号
signalm:
integerrange0to5;
--计xx的脉冲数
process(clk)--对系统时钟进行q分频,
thenxx<
=x;
--clk上升沿时,把x信号赋给中间信号xx
--if语句完成q的循环计数
elsifq=11thenq<
elseq<
process(xx,q)--此进程完成ASK解调
begin
ifq=11thenm<
--m计数器清零
elsifq=10then
ifm<
=3theny<
--if语句通过对m大小,来判决y输出的电平
elsey<
elsifxx'
eventandxx='
thenm<
=m+1;
--计xx信号的脉冲个数
4、2FSK调制器的程序
entityPL_FSKis
clk:
--系统时钟
start:
x:
y:
outstd_logic--调制信号
endPL_FSK;
architecturertlofPL_FSKis
signalq1:
--载波信号f1的分频计数器
signalq2:
--载波信号f2的分频计数器
signalf1,f2:
--载波信号f1,f2
process(clk)--此进程通过对系统时钟clk的分频,得到载波f1
ifclk'
then
thenq1<
elsifq1<
=5then
f1<
q1<
=q1+1;
--改变q1后面的数字可以改变载波f1的占空比
elsifq1=11then
--改变q1后面的数字可以改变载波f1的频率
else
process(clk)--此进程通过对系统时钟clk的分频,得到载波f2
thenq2<
elsifq2<
=0then
f2<
q2<
=q2+1;
--改变q2后面的数字可以改变载波f2的占空比
=1then
--改变q2后面的数字可以改变载波f2的频率
process(clk,x)--此进程完成对基带信号的FSK调制
ifx='
y<
=f1;
--当输入的基带信号x=’0’时,输出的调制信号y为f1
else
=f2;
--当输入的基带信号x=’1’时,输出的调制信号y为f2
5、2FSK解调器的程序
entityPL_FSK2is
outstd_logic--基带信号
endPL_FSK2;
architecturebehavofPL_FSK2is
--寄存器
process(clk)--对系统时钟进行q分频
xx<
--在clk信号上升沿时,x信号对中间信号xx赋值
q<
--if语句完成Q的循环计数
elsifq=11then
process(q,xx)--此进程完成FSK解调
ifq=11then
m<
elsifq=10then
=3then
elsifxx'
6、2CPSK调制器的程序
entityPL_CPSKis
--已调制输出信号
endPL_CPSK;
architecturebehavofPL_CPSKis
std_logic_vector(1downto0);
--2位计数器
process(clk)--此进程主要是产生两重载波信号f1,f2
00"
01"
thenf1<
f2<
elsifq="
11"
elsef1<
process(clk,x)--此进程完成对基带信号x的调制
then--上升沿触发
ifq(0)='
theny<
--基带信号x为‘1’时,输出信号y为f1
--基带信号x为‘0’时,输出信号y为f2
7、2CPSK解调器的程序
entityPL_CPSK2is
endPL_CPSK2;
architecturebehavofPL_CPSK2is
process(clk)--此进程完成对CPSK调制信号的解调
elsifq=0thenq<
--在q=0时,根据输入信号x的电平来进行判决
elsifq=3thenq<
8、2DPSK调制器绝对码转换为相对码的程序
entityPL_DPSKis
--开始转换信号
--绝对码输入信号
--相对码输出信号
endPL_DPSK;
architecturebehavofPL_DPSKis
--分频器
--中间寄存信号
process(clk,x)--此进程完成绝对码到相对码的转换
=1;
=xxxorx;
--输入信号与前一个输出信号进行异或
9、2DPSK解调器相对码转换为绝对码的程序
entityPL_DPSK2is
--相对码输入信号
--绝对码输出信号
endPL_DPSK2;
architecturebehavofPL_DPSK2is
--分频
--寄存相对码
process(clk,x)--此进程完成相对码到绝对码的转换
--输入信号x与前一输入信号xx进行异或
五、仿真结果与说明
1、选择译码器的仿真波形如下图所示
对应于不同的输入选择信号,输出信号的特定输出高电平,其余为低电平。
2、2ASK调制器的仿真波形如下图所示
当start信号为高电平时,进行ASK调制;
载波信号f通过系统时钟进行4分频获得。
3、2ASK解调器的仿真波形如下图所示
当start信号为高电平时,进行ASK解调;
在q=11时,m清零;
根据m的大小,进行对输出基带信号y的电平的判决;
在q为其他时,m计xx的脉冲数;
输出的基带信号y滞后输入的调制信号x十个时钟周期。
4、2FSK调制器的仿真波形如下图所示
当start信号为高电平时,进行FSK调制;
载波f1,f2分别是通过对clk信号进行12分频和2分频得到的;
基带码长是载波信号f1的两个周期,载波信号f2的六个周期;
输出的调制信号则在时间上滞后于载波信号一个时钟周期,滞后于输入时钟脉冲两个周期。
5、2FSK解调器的仿真波形如下图所示
当start信号为高电平时,进行FSK解调;
当q=11时,m清零;
当q=10时,根据m的大小,进行对输出基带信号y的电平判决;
当q为其他值是,计数器m记下xx的脉冲数;
输出信号y滞后于输入信号x十个时钟周期。
6、2CPSK调制器的仿真波形如下图所示
当start信号为高电平时,进行CPSK调制;
载波信号f1、f2是通过输入时钟脉冲clk分频得到的,且滞后输入时钟一个时钟周期;
调制输出信号y滞后载波一个时钟周期,滞后输入时钟两个时钟周期。
7、2CPSK解调器的仿真波形如下图所示
当start信号为高电平时,进行CPSK解调;
当q=0时,根据x的电平来进行判决;
输出信号y滞后输入信号x一个时钟周期。
8、2DPSK调制器绝对码转换为相对码的仿真波形如下图所示
当q=0时,输出信号y是输入信号x与中间寄存信号xx异或,输出信号y滞后于输入信号x一个时钟周期。
9、2DPSK解调器相对码转换为绝对码的仿真波形如下图所示
当q=3时,输出信号y是信号x与xx的异或;
输出信号y滞后于输入信号x一个基带码长即4个输入时钟周期。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VHDL 多功能 调制解调器 设计