MPSK调制与解调VHDL程序与仿真解读.docx
《MPSK调制与解调VHDL程序与仿真解读.docx》由会员分享,可在线阅读,更多相关《MPSK调制与解调VHDL程序与仿真解读.docx(17页珍藏版)》请在冰豆网上搜索。
MPSK调制与解调VHDL程序与仿真解读
课程设计任务书
学生姓名:
专业班级:
指导教师:
工作单位:
题目:
MPS调制与解调VHDL程序与仿真
初始条件:
选择的FPGA芯片不限,选用的仿真工具不限
要求完成的主要任务:
完成MPSI调制与解调FPGA实现过程,能熟练使用VHDL语言对其调制与解调程序的描述,以及对仿真结果的分析。
时间安排:
1、2014年5月30日,布置课设具体实施计划与课程设计报告格式的要求说明。
2、2014年5月31日至2014年6月15日,设计说明书撰写。
3、2014年6月18日,上交课程设计成果及报告,同时进行答辩。
摘要
本论文是为了设计在FPGA(Field-ProgrammableGateArray,现场可编程门阵列)上实现MPSK多进制相移键控)调制解调的功能。
在QuartusH平台上,运用VHD硬件描述语言进行编程,对整个MPSK系统进行仿真,得到仿真时序图,对程序代码进行XS■综合,得到RTL视图。
仿真结果表明该设计的正确性以及可行性,更清晰直观的了解
到MPS调制解调的原理。
关键词:
MPS;Quartusn;VHDL语言
Abstract
ThispaperisdesignedtoachieveMPSK(M-aryPhaseShiftKeying)modulationanddemodulationfunctionsinFPGA(Field-ProgrammableGateArray,afieldprogrammablegatearray)on.OntheQuartusIIplatform,theuseofVHDLhardwaredescriptionIanguageprogrammingfortheentireMPSKsystemsimulation,simulationtimingdiagramoftheprogramcodeXSTsynthesis,getRTLview.Simulationresultsshowthecorrectnessandfeasibilityofthedesign,intuitivetounderstandmoreclearlytheprincipleofMPSKmodulationanddemodulation.
Keywords:
MPSK;QuartusI;VHDLIanguage
摘要I
AbstractII
目录1
引言2
1MPSK调制解调的原理3
2QPSK调制实现方法3
2.1相乘电路3
2.2选择法4
3QPSK解调实现方法4
4QPSK调制解调电路的FPGA实现过程5
4.1QPSK调制解调实现依据5
4.2QPSK调制及仿真结果5
4.3QPSK解调及仿真结果7
5总结9
6参考文献10
附录IQPSK调制程序11
附录QPSI解调程序12
引言
作为数字通信技术中重要组成部分的调制解调技术一直是通信领域的热点课题。
随着当代通信的飞速发展,通信体制的变化也日新月异,新的数字调制方式不断涌现并且得到实际应用。
目前的模拟调
制方式有很多种,主要有AMFMSSBDSBCW等,而数字调制方式的种类更加繁多,女口ASKFSKMSKGMSKPSKDPSKQPSKQAM等。
在众多调制方式中,MPSK言号由于抗干扰能力强而得到了广泛的应用,具有较高的频谱利用率和较好的误码性能,并且实现复杂度小,解调理论成熟,广泛应用于数字微波、卫星数字通信系统、有线电视的上行传输、宽带接入与移动通信等领域中,并已成为新一代无线接入网物理层和B3G通信中使用的基本调制方式。
现场可编程门阵列(FieldProgrammableGateArray,FPGA是20世纪90年代
发展起来的大规模可编程逻辑器件,随着电子设计自动化技术和微电子技术的进步,FPGA勺时钟延迟可达到ns级,结合其并行工作方式,在超咼速、实时测控方面都有着非常广阔的应用前景。
FPGA具有咼
集成度、高可靠性等特点,在电子产品设计中也将得到广泛的应用。
FPGA器件的另一特点是可用硬件描述语言VHDL对其进行灵活编程,可利用FPGAT商提供的软件仿真硬件的功能,使硬件设计如同软件设计一样灵活方便,缩短了系统研发周期。
基于上述优点,用FPGA
实现调制解调电路,不仅降低了产品成本,减小了设备体积,满足了系统的需要,而且比专用芯片具有更大的灵活性和可控性。
在资源允许下,还可以实现多路调制。
MPSK是目前应用非常广泛的调制解调技术,目前MPS碉制的实现主要是利用数字电路和专用芯片来完成,通常利用可编程数字电路对基带信号进行码元变换,成形滤波等处理后得到同相分量和正交分量,然后将两路信号分量经过数模转换获得模拟信号送入一个正交相乘器与中频载波调制得到中频MPSK调制信号,该方法适合高码率数字信号的传输,但系统的开放性和灵活性较差。
MPSK调制与解调VHDL程序与仿真
1MPSK调制解调的原理
多进制数字相位调制又称多相制,是二相制的推广。
它是利用载波的多种不同相位状态来表征数字信息的调制方式。
与二进制数字相位调制相同,多进制数字相位调制也有绝对相位调制(MPS)和相对相位调制(MDPSK两种。
设载波为coswt,则M进制数字相位调制信号可表示为:
*PsKt)=2:
g(t—nT)cosWt+%)=cosW^coSQ(t—nT)—sinw悅sinng(^nTb)
nnn
上式中,g(t)是高度为1,宽度为Tb的门函数,Tb为M进制码元的持续时间,亦即k(k=log2M)比特二进制码元的持续时间,n为第n个码元对应的相位,共有M种不同取值,在本论文中M取4,所以-取0°、90°、180°和270°四个相位。
令:
I(t)二'cosSg(t-nTb)Q(t)=»sin「ng(t-nTb)
nn
这样可得:
Smpsk(tpI(t)coswj_Q(t)sinwj,由此可见,MPSK言号可以看成是两个正交载波进行多电平双边带调制所得两路MASK信号的叠加。
这样,就为MPS信号的产生提供了依据。
本次课程设计主要实现当M=4即4PSK正交相移键控,也称QPS)的调制与解调。
2QPSK调制实现方法
2.1相乘电路
输入基带信号是二进制不归零双极性码元,它被“串/并变换”电路变成两路码元。
变成并行码元后,其每个码元的持续时间是输入码元的两倍,如图1所示。
这两路并行码元序列分别用以两路正交载波相乘,这两路信号在相加电路中相加后得到调制信号。
CXO
图1正交调制的方法产生MPSK信号
2.2选择法
输入基带信号经过串并变换后用于控制一个相位选择电路,按照当时的输入双比特决定哪个相位的载波输出。
本次4PSK的FPGA实现方法采用的原理便是选择法。
3QPSK解调实现方法
由于4PSK言号可以看作是两个载波正交的2PSK信号的合成,因此,对4PSK信号的解调可以采用与2PSK信号类似的解调方法进行。
图2是4PSK信号相干解调器的组成方框图。
图中两个相互正交的相干载波分别检测出两个分量a和b,然后,经并/串变换器还原成二进制双比特串行数字信号,从而实现二进制信息恢复,此法也称为极性比较法。
图24PSK信号相干解调器的组成方框图
4QPSK调制解调电路的FPGA实现过程
4.1QPSK调制解调实现依据
调制电路方框图如图3所示。
基带信号通过串/井转换得到两位并行信号;四选一开关根据两位并行信号选择相应的载波输出。
图3QPSK调制电路原理方框图
解调电路原理与调制电路相反,这里就不做过多介绍。
4.2QPSK调制及仿真结果
在程序中,clock为系统时钟信号,start为开始调制信号,start为高电平上升沿时开始进行MPSI调制,x为基带信号,y为调制好的信号。
表一调制信号说明
信号yy
载波相位
载波波形
载波符号
“00”
0°
f3
“01”
90°
f2
“10”
180°
f1
“11”
270°
—
f0
QPS碉制程序仿真波形如图4所示:
(a)QPSK调制VHDl程序仿真全图
Name
1.0ns
5.qm
9.0ns:
i
13Qns
ITf皿
乩9™
25・9
0ps
i>*a
dk
A0
LrLrLrLrLrLrLrLrLrLrLrLrLrLrLrLTLrLrLrLrLrLrLrLrL
暮】
田f
A[OH
*
⑹
X闻X[3]X
[61XLl£]X
01X[3]
X»]X
[12]X⑼X[3J
X
⑹
田q
ami
sitart
A0
X
AD
r
r
SKK
B00
00
zxz
oiX
11厂
1
吒
y
AD
」
L
"L
r
"L
1—
砂.8
田77
B00
DO
DC
01
■■ii
■■ti
n■
■1
■11
ii1
■II1■1
■11b1
■
ii
4
(b)QPSK调制VHDl程序仿真局部放大图
图4QPSK调制VHDLg序仿真波形图
仿真结果简要说明:
图中输入信号的一个码元占两个时钟周期,通过观察QPS碉制仿真局部放大图可知已调信号y与输入信号满足表一中所描述的关系,已调输出信号相比输入信号要延迟一个周期,即八个时钟周期。
4.3QPSK解调及仿真结果
解调信号说明如表2所示。
将一个信号周期分成4份,高电平权值分别为0、0、0、0,低电平权值分别为1、1、2、3。
在程序中,clock为系统时钟信号,start为开始调制信号,start为高电平上升沿时开始进行QPSK调制,x为调制信号,y为解调好的基带信号。
表2解调信号说明
载波波形
载波相位
加法器xx
中间信号yyy
0°
0+0+2+3=5
“00”
90°
0+1+2+0=3
“01”
1'
180°
1+1+0+0=2
“10”
•_1—
270°
1+0+0+3=4
“11”
MPSK军调程序仿真波形如图5所示:
(a)QPSK军调VHDl程序仿真全图
Ftlui猷
l0r)E
1
q0歸1
EQ]mEQ严
10pK
120m
1
狎0ns
IS0m
18.qni
“IFiE
0ps
ell
a[0]
start
io
-
1I
11«l1
1
■IIII
1111D
■■II
1
Iiiiiiiii
1B1
1
器
J
i
i
ii
n
r
0iK
A[OJ
[5]x[E]fiTT
[2]f
[L]
汕口nti
xTixml
y
U
1iiii
iiiii
■■111■j
■11
r
Byr
i[0]]
X国
zc
TT
X
[i:
100
00
DC
ID
Ai
i:
□PL9
AO
I!
11n1iiniiiii
IIhII
■iiii
iiiii
-
n■iiii■i
iii
-
iiiiiiii
1
1
1
I!
1
1
n
11
iini
iiiiiiiii
■1iii
11q1
11»i
iiiiiiiiiiiii
IIdI
1111
11»1
IIII
11[|1
11il1
IId|
IIIIiini
iicii
iiiii
iiiiiini
iiiiiiiii
■1ii1
Iiq1
iiqi
iitii
1iii1
■iiii
■iiii
■iiii
■iiii
1IF11
11111
■IIII
■IIII
11111
11F11
11111
■IIII
11■11
11II11
■IIII
■IIII
11Ii11
11111
■IIII
■IIII
11Ii1I
■IIII
■IIII
■IIII
nail
3111
tail
■■ii
nailaaii
tail
Rillh・i1
nailEl■11
■III
IllinailEl■11
■III
■IIInail
■ail
■■ii
■■I1
■■Ii
■1I1
1■1
1■1
1■1
J■1
1■1
1I1
1■1
1■1
II1
1■1
1■1
II■1
1■1
II1
1■1
II■1
1■1
1I1
1■1
1■1
1II
■iii
iiiiiiiiiiii
1i1i
iiii
iiiiiiiiiiiiiiii
iiii
iii1
iiiiiiiiiiiijijj
lilliiiiiiiiiiiiiiij
lilliiiiiiiiiiiiiiii
iiii
nr1
!
lI1
iiI1
9I1
il1I
1F1
?
lI1
iiI1
ii11
』PI
■P1
1I1
?
lI1
a■i
»■i
di1
II1
ElI1
a■i
iiI1
1I1
a■i
ti■i
■i■i
」pj
1■i
EI■1
11
11
1II
11
11
11
11
11
11
11
11
11
(b)QPSK军调VHDI程序仿真局部放大图
图5QPSK解调VHDI程序仿真波形图
仿真结果简要说明:
图中已调信号每个码元占两个时钟周期,输
出基带信号与输入已调信号相比,要延迟一个周期,但根据QPSKi
部放大图观察可知,仿真结果与表二中的仿真说明相符合。
5总结
多进制数字调制技术与FPGA的结合使得通信系统的性能得到了迅速的提咼。
本文基于FPGA实现了MPSI调制解调电路部分。
在实际应用中,完全可以把调制部分和解调部分电路都集成到一片FPGA芯
片内,这样即提高了FPGA内部结构的利用率,又可以降低系统的成本。
多进制数字调制技术与FPGA的结合使得通信系统的性能得到了迅速的提高。
本文基于FPGA实现了QPS碉制解调电路,该设计对其它类型的调制解调电路也有一定的参考作用。
本文作者创新观点:
文中基于FPGA方式实现了QPSK数字调制解调电路的设计.它比传统的模拟调制方式有着显著的优越性.通信链路中的任何不足均可以借助于软件根除,不仅可以实现信息加密,而且还可以通过相应的误差校准技术,使接收到数据准确性更高。
此外,本文采用了相位选择法进行QPSK解调设计,与常用的调相解调法相比,设计更简单,更适合于FPGA实现,系统的可靠性也更高。
6参考文献
【1】徐以涛,沈良,王金龙.FPGA技术在软件无线电中的应用【J】.电信科学,2001(11):
36-39.
【2】樊昌信,张甫翊,徐炳祥,等.通信原理【M】.第五版•北京:
国防工业出版社,
2001.
【3】阳晰•高速数字调制解调【D】.成都:
电子科技大学,2005.
【4】损增友•基于FPGA的MPSK调制器的设计【J].数字技术与应用,2009⑺:
19-20.
【5】詹仙宁,田耘.VHDL开发精解与实例剖析【M】.北京:
电子工业出版社,2009.
--系统时钟
--开始调制信号
--基带信号
--调制信号
附录IQPS碉制程序
libraryieee;
useieee.std」ogic_arith.all;
useieee.std」ogic_1164.all;
useieee.std_logic_unsigned.all;
entityPL_MPSKis
port(clock:
instd_logic;start:
instd_logic;
x:
instd_logic;
y:
outstd_logic);
endPL_MPSK;
architecturebehavofPL_MPSKissignalq:
integerrange0to7;
signalxx:
std_logic_vector(1downto0);
signalyy:
std_logic_vector(1downto0);signalf:
std_logic_vector(3downto0);
begin
ifclk'eventandclk='1'then
ifstart二'O'thenq<=0;
elsifq=0thenq<=1;f(3)<='1';f
(1)<='0';xx
(1)<=x;yy<=xx;
elsifq=2thenq<=3;f
(2)<='0';f(0)<='1';
elsifq=4thenq<=5;f(3)<='0';f
(1)<='1';xx(0)<=x;
elsifq=6thenq<=7;f
(2)<='1';f(0)<='0';
elsifq=7thenq<=0;
elseq<=q+1;
endif;
endif;
endprocess;
y<=f(0)whenyy="11"else
f
(1)whenyy="10"else
f
(2)whenyy="01"else
f(3);--根据yy寄存器数据,输出对应的调制信号
endbehav;
附录n:
qpsK军调程序
libraryieee;
useieee.std」ogic_arith.all;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;entityPL_MPSK2isport(clock
start
y
endPL_MPSK2;architecturebehavofPL_MPSK2issignalq:
integerrange0to7;
signalxx:
std_logic_vector(2downto0);signalyyy:
std_logic_vector(1downto0);signalyy:
std_logic_vector(2downto0);begin
process(clk)begin
ifclock'eventandclock二'1'then
ifstart二'O'thenq<=0;
elsifq=0thenqv=1;yyv二xx;y<=yyy(0);的数据送入yy寄存器
--调制信号
ifx='0'thenxx<="001";
入加法器的数据“00T
elsexx<二"000";endif;
elsifq=2thenq<=3;
--调制信号
ifx='0'thenxx<=xx+"001";
入加法器的数据“00T
endif;
elsifq=4thenq<=5;y<=yyy
(1);ifx='0'thenxx<=xx+"010";
--计数器
--加法器
--2位并行基代信号寄存器
--寄存xx数据
--把加法计数器
x为低电平时,
x为低电平时,
入加法器的数据“010”
endif;
elsifq=6thenq<=7;
ifx='0'thenxx<二xx+"011";--调制信号x为低电平时,送
入加法器的数据“01T
endif;
elseq<=q+1;
endif;
endif;
endprocess;
process(yy)--此进程根据yy寄存器里的数据进行译码
begin
ifclk='1'andclk'eventthen
ifyy二"101"thenyyy<="00";elsifyy二"011"thenyyy<="01";
elsifyy二"010"thenyyy<="10";elsifyy二"100"thenyyy<="11";
elseyyy<="00";
endif;
endif;
endprocess;
endbehav;
--yy寄存器“101对应基带码“00”--yy寄存器“011对应基带码“01”--yy寄存器“010对应基带码“10”--yy寄存器“100对应基带码“11”