基于VHDL的多功能调制解调器的设计Word文档格式.docx

上传人:b****6 文档编号:17374153 上传时间:2022-12-01 格式:DOCX 页数:22 大小:380.35KB
下载 相关 举报
基于VHDL的多功能调制解调器的设计Word文档格式.docx_第1页
第1页 / 共22页
基于VHDL的多功能调制解调器的设计Word文档格式.docx_第2页
第2页 / 共22页
基于VHDL的多功能调制解调器的设计Word文档格式.docx_第3页
第3页 / 共22页
基于VHDL的多功能调制解调器的设计Word文档格式.docx_第4页
第4页 / 共22页
基于VHDL的多功能调制解调器的设计Word文档格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

基于VHDL的多功能调制解调器的设计Word文档格式.docx

《基于VHDL的多功能调制解调器的设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于VHDL的多功能调制解调器的设计Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。

基于VHDL的多功能调制解调器的设计Word文档格式.docx

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个输入时钟周期。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1