资源描述
武汉理工大学《FPGA原理及应用课程设计》
课程设计任务书
学生姓名: 龚明超 专业班级: 通信1201班
指导教师: 陈适 工作单位: 信息工程学院
题目:MPSK调制与解调VHDL程序与仿真
初始条件:
选择的FPGA芯片不限,选用的仿真工具不限
要求完成的主要任务:
完成MPSK调制与解调FPGA实现过程,能熟练使用VHDL语言对其调制与解调程序的描述,以及对仿真结果的分析。
时间安排:
1、2014年12月23日,布置课设具体实施计划与课程设计报告格式的要求说明。
2、2014 年12月24日至2015年1月6日,设计说明书撰写。
3、2015年1月7日,上交课程设计成果及报告,同时进行答辩。
指导教师签名: 2015年 月 日
系主任(或责任教师)签名: 2015年 月 日
目录
摘要 I
Abstract II
引言 1
1 MPSK调制解调的原理 2
2 MPSK调制实现方法 2
2.1相乘电路 2
2.2选择法 3
3 MPSK解调实现方法 3
4 MPSK调制解调电路的FPGA实现过程 4
4.1 MPSK调制解调实现依据 4
4.2 MPSK调制及仿真结果 4
4.3 MPSK解调及仿真结果 6
5总结 8
6参考文献 9
附录Ⅰ: MPSK调制程序 10
附录Ⅱ:MPSK解调程序 11
摘要
本论文是为了设计在FPGA(Field-Programmable Gate Array,现场可编程门阵列)上实现MPSK(多进制相移键控)调制解调的功能。在Quartus Ⅱ平台上,运用VHDL硬件描述语言进行编程,对整个MPSK系统进行仿真,得到仿真时序图,对程序代码进行XST综合,得到RTL视图。仿真结果表明该设计的正确性以及可行性,更清晰直观的了解到MPSK调制解调的原理。
关键词:MPSK;Quartus Ⅱ;VHDL语言
Abstract
This paper is designed to achieve MPSK (M-ary Phase Shift Keying) modulation and demodulation functions in FPGA (Field-Programmable Gate Array, a field programmable gate array) on. On the Quartus Ⅱplatform, the use of VHDL hardware description language programming for the entire MPSK system simulation, simulation timing diagram of the program code XST synthesis, get RTL view. Simulation results show the correctness and feasibility of the design, intuitive to understand more clearly the principle of MPSK modulation and demodulation.
Keywords: MPSK; Quartus Ⅱ; VHDL language
I
引言
作为数字通信技术中重要组成部分的调制解调技术一直是通信领域的热点课题。随着当代通信的飞速发展,通信体制的变化也日新月异,新的数字调制方式不断涌现并且得到实际应用。目前的模拟调制方式有很多种,主要有AM、FM、SSB、DSB、CW等,而数字调制方式的种类更加繁多,如ASK、FSK、MSK、GMSK、PSK、DPSK、 QPSK、QAM等。在众多调制方式中,MPSK信号由于抗干扰能力强而得到了广泛的应用,具有较高的频谱利用率和较好的误码性能,并且实现复杂度小,解调理论成熟,广泛应用于数字微波、卫星数字通信系统、有线电视的上行传输、宽带接入与移动通信等领域中,并已成为新一代无线接入网物理层和B3G通信中使用的基本调制方式。现场可编程门阵列(Field Programmable Gate Array,FPGA)是20世纪90年代发展起来的大规模可编程逻辑器件,随着电子设计自动化技术和微电子技术的进步,FPGA的时钟延迟可达到ns级,结合其并行工作方式,在超高速、实时测控方面都有着非常广阔的应用前景。FPGA具有高集成度、高可靠性等特点,在电子产品设计中也将得到广泛的应用。FPGA器件的另一特点是可用硬件描述语言VHDL对其进行灵活编程,可利用FPGA厂商提供的软件仿真硬件的功能,使硬件设计如同软件设计一样灵活方便,缩短了系统研发周期。基于上述优点,用FPGA实现调制解调电路,不仅降低了产品成本,减小了设备体积,满足了系统的需要,而且比专用芯片具有更大的灵活性和可控性。在资源允许下,还可以实现多路调制。
MPSK是目前应用非常广泛的调制解调技术,目前MPSK调制的实现主要是利用数字电路和专用芯片来完成,通常利用可编程数字电路对基带信号进行码元变换,成形滤波等处理后得到同相分量和正交分量,然后将两路信号分量经过数模转换获得模拟信号送入一个正交相乘器与中频载波调制得到中频MPSK调制信号,该方法适合高码率数字信号的传输,但系统的开放性和灵活性较差。
MPSK调制与解调VHDL程序与仿真
1 MPSK调制解调的原理
多进制数字相位调制又称多相制,是二相制的推广。它是利用载波的多种不同相位状态来表征数字信息的调制方式。与二进制数字相位调制相同,多进制数字相位调制也有绝对相位调制(MPSK)和相对相位调制(MDPSK)两种。
设载波为coswt,则M进制数字相位调制信号可表示为:
上式中,g(t)是高度为1,宽度为Tb的门函数,Tb为M进制码元的持续时间,亦即k(k=)比特二进制码元的持续时间,为第n个码元对应的相位,共有M种不同取值,在本论文中M取4,所以取0°、90°、180°和270°四个相位 。令:
,
这样可得: ,由此可见,MPSK信号可以看成是两个正交载波进行多电平双边带调制所得两路MASK信号的叠加。这样,就为MPSK信号的产生提供了依据。
本次课程设计主要实现当M=4,即4PSK(正交相移键控,也称QPSK)的调制与解调。
2 MPSK调制实现方法
2.1相乘电路
输入基带信号是二进制不归零双极性码元,它被“串/并变换”电路变成两路码元。变成并行码元后,其每个码元的持续时间是输入码元的两倍,如图1所示。这两路并行码元序列分别用以两路正交载波相乘,这两路信号在相加电路中相加后得到调制信号。
图1 正交调制的方法产生MPSK信号
2.2选择法
输入基带信号经过串并变换后用于控制一个相位选择电路,按照当时的输入双比特决定哪个相位的载波输出。本次4PSK的FPGA实现方法采用的原理便是选择法。
3 MPSK解调实现方法
由于4PSK信号可以看作是两个载波正交的2PSK信号的合成,因此,对4PSK信号的解调可以采用与2PSK信号类似的解调方法进行。
图2是4PSK信号相干解调器的组成方框图。图中两个相互正交的相干载波分别检测出两个分量a和b,然后,经并/串变换器还原成二进制双比特串行数字信号,从而实现二进制信息恢复,此法也称为极性比较法。
图2 4PSK信号相干解调器的组成方框图
4 MPSK调制解调电路的FPGA实现过程
4.1 MPSK调制解调实现依据
调制电路方框图如图3所示。基带信号通过串/井转换得到两位并行信号;四选一开关根据两位并行信号选择相应的载波输出。
clock
start
基带信号
分频
串并变换
四选一开关
f1
f2
f3
f4
已调信号
图3 QPSK调制电路原理方框图
解调电路原理与调制电路相反,这里就不做过多介绍。
4.2 MPSK调制及仿真结果
信号yy
载波相位
载波波形
载波符号
“00”
0°
f3
“01”
90°
f2
“10”
180°
f1
“11”
270°
f0
在程序中,clock为系统时钟信号,start为开始调制信号,start为高电平上升沿时开始进行MPSK调制,x为基带信号,y为调制好的信号。
表一 调制信号说明
MPSK调制程序仿真波形如图4所示:
(a)MPSK调制VHDL程序仿真全图
(b)MPSK调制VHDL程序仿真局部放大图
(c)MPSK调制VHDL程序仿真RTL视图
图4 MPSK调制VHDL程序仿真波形图及RTL视图
仿真结果简要说明:图中输入信号的一个码元占两个时钟周期,通过观察MPSK调制仿真局部放大图可知已调信号y与输入信号满足表一中所描述的关系,已调输出信号相比输入信号要延迟一个周期,即八个时钟周期。
4.3 MPSK解调及仿真结果
解调信号说明如表2所示。将一个信号周期分成4份,高电平权值分别为0、0、0、0,低电平权值分别为1、1、2、3。在程序中,clock为系统时钟信号,start为开始调制信号,start为高电平上升沿时开始进行MPSK调制,x为调制信号,y为解调好的基带信号。
表2 解调信号说明
载波波形
载波相位
加法器xx
中间信号yyy
0°
0+0+2+3=5
“00”
90°
0+1+2+0=3
“01”
180°
1+1+0+0=2
“10”
270°
1+0+0+3=4
“11”
MPSK解调程序仿真波形如图5所示:
(a)MPSK解调VHDL程序仿真全图
(b)MPSK解调VHDL程序仿真局部放大图
(c)MPSK解调VHDL程序仿真RTL视图
图5 MPSK解调VHDL程序仿真波形图及RTL视图
仿真结果简要说明:图中已调信号每个码元占两个时钟周期,输出基带信号与输入已调信号相比,要延迟一个周期,但根据MPSK局部放大图观察可知,仿真结果与表二中的仿真说明相符合。
5总结
多进制数字调制技术与FPGA的结合使得通信系统的性能得到了迅速的提高。本文基于FPGA实现了MPSK调制解调电路部分。在实际应用中,完全可以把调制部分和解调部分电路都集成到一片FPGA芯片内,这样即提高了FPGA内部结构的利用率,又可以降低系统的成本。多进制数字调制技术与FPGA的结合使得通信系统的性能得到了迅速的提高。通过本次的课程设计,让我对基于FPGA方式实现MPSK数字调制解调电路的设计有了更加深刻的理解,它比传统的模拟调制方式有着显著的优越性.通信链路中的任何不足均可以借助于软件根除,不仅可以实现信息加密,而且还可以通过相应的误差校准技术,使接收到数据准确性更高。此外,此次采用的相位选择法进行MPSK解调设计,与常用的调相解调法相比,设计更简单,更适合于FPGA实现,系统的可靠性也更高。对于我个人而言,此次收获还是很丰富的,之前对于Quartus II这款软件的应用并不是十分的了解,通过这次的设计操作让我对它的基本应用更加熟悉,之前打算使用ISE实现本次设计,但后来发现难度较大,从而选用了Quartus,以此也可以看出选用一款合适的软件对于设计的成功与否起着很重要的作用。
6参考文献
【1】徐以涛,沈良,王金龙.FPGA技术在软件无线电中的应用【J】.电信科学,200l(11):36-39.
【2】樊昌信,张甫翊,徐炳祥,等.通信原理【M】.第五版.北京:国防工业出版社,2001.
【3】阳晰.高速数字调制解调【D】.成都:电子科技大学,2005.
【4】损增友.基于FPGA的MPSK调制器的设计【J】.数字技术与应用,2009(7):19-20.
【5】詹仙宁,田耘.VHDL开发精解与实例剖析【M】.北京:电子工业出版社,2009.
附录ⅠMPSK调制程序
library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity PL_MPSK is
port(clock :in std_logic; --系统时钟
start :in std_logic; --开始调制信号
x :in std_logic; --基带信号
y :out std_logic); --调制信号
end PL_MPSK;
architecture behav of PL_MPSK is
signal q:integer range 0 to 7; --计数器
signal xx:std_logic_vector(1 downto 0); --中间寄存器
signal yy:std_logic_vector(1 downto 0); --2位并行码寄存器
signal f:std_logic_vector(3 downto 0); --载波f
begin
process(clk) --通过对clk分频,得到4种相位;并完成基带信号的串并转换
begin
if clk'event and clk='1' then
if start='0' then q<=0;
elsif q=0 then q<=1;f(3)<='1'; f(1)<='0'; xx(1)<=x;yy<=xx;
elsif q=2 then q<=3;f(2)<='0'; f(0)<='1';
elsif q=4 then q<=5;f(3)<='0'; f(1)<='1'; xx(0)<=x;
elsif q=6 then q<=7;f(2)<='1'; f(0)<='0';
elsif q=7 then q<=0;
else q<=q+1;
end if;
end if;
end process;
y<=f(0) when yy="11" else
f(1) when yy="10" else
f(2) when yy="01" else
f(3); --根据yy寄存器数据,输出对应的调制信号
end behav;
附录Ⅱ:MPSK解调程序
library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity PL_MPSK2 is
port(clock :in std_logic; --系统时钟
start :in std_logic; --同步信号
x :in std_logic; --调制信号
y :out std_logic); --基带信号
end PL_MPSK2;
architecture behav of PL_MPSK2 is
signal q:integer range 0 to 7; --计数器
signal xx:std_logic_vector(2 downto 0); --加法器
signal yyy:std_logic_vector(1 downto 0); --2位并行基代信号寄存器
signal yy:std_logic_vector(2 downto 0); --寄存xx数据
begin
process(clk)
begin
if clock'event and clock='1' then
if start='0' then q<=0;
elsif q=0 then q<=1;yy<=xx; y<=yyy(0); --把加法计数器的数据送入yy寄存器
if x='0' then xx<="001"; --调制信号x为低电平时,送入加法器的数据“001”
else xx<="000";
end if;
elsif q=2 then q<=3;
if x='0' then xx<=xx+"001"; --调制信号x为低电平时,送入加法器的数据“001”
end if;
elsif q=4 then q<=5; y<=yyy(1);
if x='0' then xx<=xx+"010"; --调制信号x为低电平时,送入加法器的数据“010”
end if;
elsif q=6 then q<=7;
if x='0' then xx<=xx+"011"; --调制信号x为低电平时,送入加法器的数据“011”
end if;
else q<=q+1;
end if;
end if;
end process;
process(yy) --此进程根据yy寄存器里的数据进行译码
begin
if clk='1' and clk'event then
if yy="101" then yyy<="00"; --yy寄存器“101”对应基带码“00”
elsif yy="011" then yyy<="01"; --yy寄存器“011”对应基带码“01”
elsif yy="010" then yyy<="10"; --yy寄存器“010”对应基带码“10”
elsif yy="100" then yyy<="11"; --yy寄存器“100”对应基带码“11”
else yyy<="00";
end if;
end if;
end process;
end behav;
11
本科生课程设计成绩评定表
姓名
龚明超
性别
男
专业、班级
通信1201班
课程设计题目:多进制数字相位调制(MPSK)
课程设计答辩或质疑记录:
1. 目前MPSK的应用中已经实现到多少进制,即M的值?
答:目前使用较多的为四进制,实现可用的已经到达64PSK。
2. 随着M值的提高,对于调制解调有什么影响?
答:随着M值的提高,调制解调中的相位划分越来越复杂,调制解调出的波形中所含的噪声也逐渐增加。
3. 调制解调过程中如何实现波形与数字信号之间的转换?
答:输入基带信号经过串并变换后用于控制一个相位选择电路,按照当时的输入双比特决定哪个相位的载波输出。
成绩评定依据:
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
年 月 日
0
展开阅读全文