FPGA课程设计报告书2FSK调制解调器设计.docx
- 文档编号:30058138
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:19
- 大小:1.08MB
FPGA课程设计报告书2FSK调制解调器设计.docx
《FPGA课程设计报告书2FSK调制解调器设计.docx》由会员分享,可在线阅读,更多相关《FPGA课程设计报告书2FSK调制解调器设计.docx(19页珍藏版)》请在冰豆网上搜索。
FPGA课程设计报告书2FSK调制解调器设计
学号:
课程设计
题目
二进制频移键控(FSK)
调制器与解调器设计
学院
信息工程学院
专业
通信工程
班级
姓名
指导教师
2014年6月18日
课程设计任务书
学生姓名:
专业班级:
指导教师:
工作单位:
信息工程学院
题目:
二进制频移键控(FSK)调制器与解调器设计
初始条件:
(1)QuartusII、ISE等软件;
(2)课程设计辅导书:
《XilinxFPGA设计与实践教程》
(3)先修课程:
数字电子技术、模拟电子技术、通信原理
主要任务:
(1)掌握2CPSK、2DPSK的调制与解调原理;
(2)掌握仿真软件QuartusII的使用方法;
(3)完成对2CPSK、2DPSK的调制与解调仿真电路设计,并对仿真结果进行分析。
时间安排:
(1)2014年6月11日--2014年6月18日理论设计、仿真设计
地点:
鉴主13楼通信工程综合实验室、鉴主15楼通信工程实验室。
(2)2014年6月18日进行理论答辩。
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
摘要
FSK是数字调制的一种方法,其原理是利用数字信号的离散取值特点通过开关对载波的频率进行键控,所产生的信号称为FSK信号。
该信号使得数字信号可以在带通信道中进行传输。
本次课程设计就是在EDA实验板上用VHDL语言来实现FSK的调制解调系统。
采用键控法对载波进行调制,用过零检测法对调制信号进行解调。
用4级移位寄存器产生伪随机序列作为调制信号。
仿真成功后下载到实验板上,通过示波器分别观察调制信号和已调波;调制信号和解调信号,与波形仿真结果相同,但由于噪声的影响,使得示波器的波形有毛刺。
[关键词]FSK调制解调,VHDL,键控法,过零检测法
ABSTRACT
FSKisamethodofdigitalmodulation,theprincipleistheuseofdigitalsignalcharacteristicsofdiscretevaluesbyswitchingonthecarrierfrequencyshiftkeying,theresultingsignalasFSKsignals.Thissignalallowsthedigitalsignalcanbetransmittedwithacommunicationchannel.ThecoursedesignisusedintheEDAVHDLlanguagetestboardtoachieveFSKmodulationanddemodulationsystem.Bykeyingofthecarriermodulation,zero-detectionmethodusedtodemodulatethemodulatedsignals.Shiftregisterwithfourpseudo-randomsequencegeneratedasthemodulationsignal.Simulationsuccessfullydownloadedtotheexperimentalboard,wereobservedbytheoscilloscopesignalandthemodulatedwavemodulation;modulationsignalanddemodulatedsignal,andwaveformsimulationresultsarethesame,butbecauseofnoise,makingtheoscilloscopewaveformhasglitches.
[Keywords]FSKmodulationanddemodulation;VHDL;ShiftKeying;zero-crossingdetectionmet
1绪论
1.1题目的意义
数字调制技术是现代通信的一个重要内容,在数字通信系统中,由于数字信号具有丰富的低频成份,不宜进行无线传输或长距离电缆传输,因而需要将基带信号进行数字调制(DigitalModulation)。
数字调制同时也是数字信号频分复用的基本技术。
数字调制与模拟调制都属于正弦波调制,但是,数字调制是调制信号为数字型的正弦波调制,因而数字调制具有自身的特点,一般说来数字调制技术分为两种类型:
一是把数字基带信号当作模拟信号的特殊情况来处理;二是利用数字信号的离散取值去键控载波,从而实现数字调制。
后一种方法通常称为键控法。
例如可以对载波的振幅、频率及相位进行键控,便可获得振幅键控(ASK)、移频键控(FSK)、相移键控(PSK)等调制方式。
移频键控(FSK)是数字信息传输中使用较早的一种调制形式,它由于其抗干扰及衰落性较好且技术容易实现,因而在集散式工业控制系统中被广泛采用。
以往的键控移频调制解调器采用“定功能集成电路+连线”式设计;集成块多,连线复杂,容易出错,且体积较大,本设计采用Lattice公司的FPGA芯片,有效地缩小了系统的体积,降低了成本,增加了可靠性,同时系统采用VHDL语言进行设计,具有良好的可移植性及产品升级的系统性。
1.2设计要求
1.了解了FSK信号的基本概念后,利用QuartusII软件中的VHDL语言对2FSK频移键控系统就行调制、解调的程序设计。
2.程序设计运行成功后,在利用VHDL语言对FSK频移键控系统进行调制、解调的波形仿真。
3.最后通过VHDL语言制作出FSK频移键控系统调制、解调的电路图。
2FSK设计的基本原理
2.1FSK的调制
频移键控即FSK(Frequency-ShiftKeying)数字信号对载波频率调制,主要通过数字基带信号控制载波信号的频率来来传递数字信息。
在二进制情况下,“1”对应于载波频率,“0”对应载波频率,但是它们的振幅和初始相位不变化。
FSK信号产生的两种方法:
(1)直接调频法
直接调频法是用数字基带信号直接控制载频振荡器的振荡频率,使其输出两个不同频率的码元。
直接调频法实现电路有许多,一般采用的控制方法是:
当基带信号为正时(相当于“1”码),改变振荡器谐振回路的参数(电容或者电感数值),使振荡器的振荡频率提高(设为f1);当基带信号为负时(相当于“0”码),改变振荡器谐振回路的参数(电容或者电感数值),使振荡器的振荡频率降低(设为f2);从而实现了调频。
这种方法产生的优点是由调频器所产生的FSK信号在相邻码元之间的相位是连续的,而且实现方法简单,但频率稳定度不高,同时频率转换速度不能做得太快。
(2)频率键控法
频率键控法也称频率选择法。
它有两个独立的振荡器,数字基带信号控制转换开关,选择不同频率的高频振荡信号实现FSK调制。
原理框图如图2-1:
图2-1频率健控法原理框图
键控法产生的FSK信号频率稳定度可以做得很高并且没有过渡频率,它的转换速度快,波形好。
频率键控法在转换开关发生转换的瞬间,两个高频振荡的输出电压通常不可能相等,于是uFSK(t)信号在基带信息变换时电压会发生跳变,这种现象也称为相位不连续,这是频率键控特有的情况。
图2-2是两个独立分频器以频率键控法来实现FSK调制的原理电路图。
在图2-2中,与非门3和4起到了转换开关的作用。
当数字基带信号为“1”时,与非门4打开,输出,当数字基带信号为“0”时,与非门3打开,输出,从而实现了FSK调制。
图2-2FSK调制的原理电路图
2.2FSK的解调
数字频率键控(FSK)信号常用的解调方法有很多种如:
同步(相干)解调法,过零检测法,差分检波法
(1)同步(相干)解调法
在同步解调器中,有上、下两个支路,输入的FSK信号经过
和
两个带通滤波器后变成了上、下两路ASK信号,之后其解调原理与ASK类似,但判决需对上、下两支路比较来进行。
假设上支路低通滤波器输出为
,下支路低通滤波器输出为
,则判决准则是:
图2-3相干解调法原理框图
接收信号经过并联的两路带通滤波器进行滤波与本地相干载波相乘和包络检波后,进行抽样判决,判决的准则是比较两路信号包络的大小。
假设上支路低通滤波器输出为
,下支路低通滤波器输出为
,则判决准则是:
如果上支的信号包络较大,则判决为“1”;反之,判决为收到为“0”。
(2)FSK包络解调法
FSK信号包络解调相当于两路ASK信号包络解调。
用两个窄带的分路带通滤波器分别滤出频率为f1及f2的高频脉冲,经包络检波后分别取出它们的包络。
把两路输出同时送到抽样判决器进行比较,从而判决输出基带数字信号。
设频率f1代表数字信号1;f2代表0,则抽样判决器的判决准则:
式中x1和x2分别为抽样时刻两个包络检波器的输出值。
这里的抽样判决器,要比较x1、x2大小,或者说把差值x1-x2与零电平比较。
因此,有时称这种比较判决器的判决门限为零电平。
其原理框图如图2-4
图2-4非相干解调法原理框图
(3)过零检测法
过零检测法方框图在下页,它是利用信号波形在单位时间内与零电平轴交叉的次数来测定信号频率。
输入的uFSK信号经限幅放大后成为矩形脉冲波,再经微分电路得到双向尖脉冲,然后整流得单向尖脉冲,每个尖脉冲表示信号的一个过零点,尖脉冲的重复频率就是信号频率的二倍。
将尖脉冲去触发一单稳电路,产生一定宽度的矩形脉冲序列,该序列的平均分量与脉冲重复频率成正比,即与输入信号频率成正比。
所以经过低通滤波器输出的平均分量的变化反映了输入信号频率的变化,这样就把码元“1”与“0”在幅度上区分开来,恢复出数字基带信号。
图2-5过零检测法方框图及波形图
3设计方案
3.1FSK基于VHDL语言调制方案
FSK调制方框图
图3-1FSK调制方框图
图3-2FSK调制VHDL程序的电路符号
3.2FSK基于VHDL语言解调方案
FSK解调方框图
图3-3FSK解调方框图
图3-4FSK解调VHDL程序的电路符号
4仿真
4.1FSK调制仿真
工程编译通过后,必须对其功能和时序性能进行仿真测试,以验证设计结果是否满足设计要求。
整个时序仿真测试流程一般有建立波形文件、输入信号节点、设置波形参数、编辑输入信号、波形文件存盘、运行仿真器和分析方针波形等步骤。
假设需要调制的二进制序列为[1101001011001],且码元宽度为480ns。
(1)FSK调制波形仿真
①建立仿真测试波形文件。
选择QuartusII主窗口的File菜单的New选项,在弹出的文件类型编辑对话框中,选择OtherFiles中的VectorWeaveformFile项,单击OK按钮,即出现如图4-1所示的波形文件编辑窗口。
图4-1波形文件编辑窗口
②设置仿真时间区域。
对于时序仿真测试来说,将仿真时间设置在一个合理的时间区域内是十分必要的,通常设置的时间区域将视具体的设计项目而定。
设计中整个仿真时间区域设为6us、时间轴周期为10ns,其设置步骤是在Edit菜单中选择EndTime,在弹出的窗口中Time处填入6,单位选择us,同理在GrideSize中Timeperiod输入10ns,单击OK按钮,设置结束。
③输入工程信号节点
选择View菜单中的UtilityWindows项的NodeFinder,即可弹出对话框,在此对话框Filter项中选择Pins:
all&Registers:
Post-fitting,然后单击List按钮,于是在下方的NodesFound窗口中出现设计中的PL_FSK工程的所有端口的引脚名。
用鼠标将时钟信号节点clk、start、x、q1、f1、q2、f2和y分别拖到波形编辑窗口,如图4-2所示,此后关闭NodesFound窗口即可。
图4-2FSK调制波形编辑器输入信号窗口
④设计信号波形。
单击图4-2左侧的全屏显示按钮,使之全屏显示,并单击放大缩小按钮,再用鼠标在波形编辑窗口单击(右击为放大,左击为缩小),使仿真坐标处于适当位置。
单击图4-2窗口的时钟信号clk使之变成蓝色条,再单击右键,选择Value设置中的CountValue项,设置clk为连续变化的二进制值,初始值为“0”。
单击start使之变成蓝色,再单击右键,选择Value设置中的ForcingHigh项,使start变成高电平信号。
单击x使之变成蓝色,再单击右左侧WaveformEditing按钮,把x变成高低电平连续变化信号。
⑤文件存盘
选择File中的Saveas项,将波形文件以默认名PL_FSK.vwf存盘即可。
⑥所有设置完成后,即可启动仿真器Processing︱StartSimulation直到出现Simulationwassuccessful,仿真结束。
仿真波形输出文件PL_FSKSimulationReport将自动弹出如图4-3所示。
注意,QuartusII的仿真波形文件中,波形编辑文件(*.vwf)与波形仿真报告输出文件(SimulationReport)是分开的,而MaxplusII的激励波形编辑文件与波形仿真报告输出文件是合二为一的。
图4-3FSK调制VHDL程序仿真全图
图4-4FSK调制VHDL程序仿真局部放大图
(2)FSK调制电路
FSK调制电路如图4-5所示:
图4-5FSK调制电路图
QuartusII可实现硬件描述语言或网表文件(VHDL、Verilog、BDF、TDF、EDIF、VQM)对应的RTL电路图的生成。
其方法为:
选择Tools︱RTLViewer,可以打开PL_FSK工程个层次的RTL电路图,双击图形中有关模块,或选择左侧各项,可了解个层次的电路结构。
4.2FSK解调仿真
工程编译通过后,必须对其功能和时序性能进行仿真测试,以验证设计结果是否满足设计要求。
整个时序仿真测试流程一般有建立波形文件、输入信号节点、设置波形参数、编辑输入信号、波形文件存盘、运行仿真器和分析方针波形等步骤。
以FSK调制的输出作为FSK解调的输入。
(1)FSK解调波形仿真
①建立仿真测试波形文件。
选择QuartusII主窗口的File菜单的New选项,在弹出的文件类型编辑对话框中,选择OtherFiles中的VectorWeaveformFile项,单击OK按钮,即出现波形文件编辑窗口。
②设置仿真时间区域。
对于时序仿真测试来说,将仿真时间设置在一个合理的时间区域内是十分必要的,通常设置的时间区域将视具体的设计项目而定。
设计中整个仿真时间区域设为6us、时间轴周期为10ns,其设置步骤是在Edit菜单中选择EndTime,在弹出的窗口中Time处填入6,单位选择us,同理在GrideSize中Timeperiod输入10ns,单击OK按钮,设置结束。
③输入工程信号节点
选择View菜单中的UtilityWindows项的NodeFinder,即可弹出对话框,在此对话框Filter项中选择Pins:
all&Registers:
Post-fitting,然后单击List按钮,于是在下方的NodesFound窗口中出现设计中的PL_FSK2工程的所有端口的引脚名。
用鼠标将时钟信号节点clk、start、x、y、q、m和xx分别拖到波形编辑窗口,如图4-6所示,此后关闭NodesFound窗口即可。
图4-6FSK解调波形编辑器输入信号窗口
④设计信号波形。
单击图4-6左侧的全屏显示按钮,使之全屏显示,并单击放大缩小按钮,再用鼠标在波形编辑窗口单击(右击为放大,左击为缩小),使仿真坐标处于适当位置。
单击图4-6窗口的时钟信号clk使之变成蓝色条,再单击右键,选择Value设置中的CountValue项,设置clk为连续变化的二进制值,初始值为“0”。
单击start使之变成蓝色,再单击右键,选择Value设置中的ForcingHigh项,使start变成高电平信号。
单击x使之变成蓝色,再单击右左侧WaveformEditing按钮,把x变成高低电平连续变化信号。
⑤文件存盘
选择File中的Saveas项,将波形文件以默认名PL_FSK2.vwf存盘即可。
⑥所有设置完成后,即可启动仿真器Processing︱StartSimulation直到出现Simulationwassuccessful,仿真结束。
仿真波形输出文件PL_FSK2SimulationReport将自动弹出如图4-7所示。
注意,QuartusII的仿真波形文件中,波形编辑文件(*.vwf)与波形仿真报告输出文件(SimulationReport)是分开的,而MaxplusII的激励波形编辑文件与波形仿真报告输出文件是合二为一的。
图4-7FSK解调VHDL程序仿真全图
图4-8FSK解调VHDL程序仿真局部放大图
(2)FSK解调电路
FSK解调电路如图4-9所示:
图4-9FSK解调电路图
QuartusII可实现硬件描述语言或网表文件(VHDL、Verilog、BDF、TDF、EDIF、VQM)对应的RTL电路图的生成。
其方法为:
选择Tools︱RTLViewer,可以打开PL_FSK2工程个层次的RTL电路图,双击图形中有关模块,或选择左侧各项,可了解个层次的电路结构,如图4-9所示
5结论
传统的FSK调制解调方式都是采用硬件电路实现,电路复杂、调试不便。
文中采用硬件描述语占设计的基于FPGA调制解调器,设计灵活、修改方便,有效地缩小了系统的体积,增加了可靠性,同时系统采用VHDL语言进行设计,具有良好的可移植性及产品升级的系统性;由于使用FPGA芯片,可随时在线更改逻辑设计及有关参数,充分体现现场可编程器件的优越性。
本次设计,由于数字调制技术与FPGA的结合,使得通信系统的性能得到了迅速的提高。
通过FSK系统调制与解调建模,以QuartusII9.0软件为平台,基于VHDL语言,达到了预期的仿真结果。
通过本次设计,了解了频移键控数字通信系统的用途及工作原理,熟悉了FSK基于VHDL语言的设计步骤,提高了绘图能力,锻炼了设计实践和语言组织能力,培养了自己独立设计能力。
但由于个人的能力有限,设计还存在不足。
本次设计是对专业基础知识一次实际检验和巩固,同时也是走向工作岗位前的一次热身。
6参考文献
[1]樊昌信等.通信原理(第五版).北京:
国防工业出版社,2001
[2]刘昌华.数字逻辑EDA设计与实践.北京:
国防工业出版社,2006
[3]苏青,张红.基于CPLD/FPGA技术的数字频率设计.北京:
清华大学出版社,2007
[4]黄智伟.FPGA系统设计与实践.北京:
电子工业出版社,2005
[5]张凤言.大规模逻辑器件与数字系统设计.北京:
北京航空航天大学出版社,1998
[6]潘松,黄继业.EDA技术实用教程.北京:
科学出版社.2005
附录一:
FSK调制VHDL程序
文件名:
PL_FSK
--功能:
基于VHDL硬件描述语言,对基带信号进行FSK调制
libraryieee;
useieee.std_logic_arith.all;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityPL_FSKis
port(clk:
instd_logic;--系统时钟
start:
instd_logic;--开始调制信号
x:
instd_logic;--基带信号
y:
outstd_logic);--调制信号
endPL_FSK;
architecturebehavofPL_FSKis
signalq1:
integerrange0to11;--载波信号f1的分频计数器
signalq2:
integerrange0to3;--载波信号f2的分频计数器
signalf1,f2:
std_logic;--载波信号f1,f2
begin
process(clk)--此进程通过对系统时钟clk的分频,得到载波f1
begin
ifclk'eventandclk='1'then
ifstart='0'thenq1<=0;
elsifq1<=5thenf1<='1';q1<=q1+1;--改变q1后面的数字可以改变,载波f1的占空比
elsifq1=11thenf1<='0';q1<=0;--改变q1后面的数字可以改变,载波f1的频率
elsef1<='0';q1<=q1+1;
endif;
endif;
endprocess;
process(clk)--此进程通过对系统时钟clk的分频,得到载波f2
begin
ifclk'eventandclk='1'then
ifstart='0'thenq2<=0;
elsifq2<=0thenf2<='1';q2<=q2+1;--改变q2后面的数字可以改变,载波f2的占空比
elsifq2=1thenf2<='0';q2<=0;--改变q2后面的数字可以改变,载波f2的频率
elsef2<='0';q2<=q2+1;
endif;
endif;
endprocess;
process(clk,x)--此进程完成对基带信号的FSK调制
begin
ifclk'eventandclk='1'then
ifx='0'theny<=f1;--当输入的基带信号x=‘0’时,输出的调制信号y为f1
elsey<=f2;--当输入的基带信号x=‘1’时,输出的调制信号y为f2
endif;
endif;
endprocess;
endbehav;
附录二:
FSK解调VHDL程序
文件名:
PL_FSK2
--功能:
基于VHDL硬件描述语言,对基带信号进行FSK解调
libraryieee;
useieee.std_logic_arith.all;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityPL_FSK2is
port(clk:
instd_logic;--系统时钟
start:
instd_logic;--同步信号
x:
instd_logic;--调制信号
y:
outstd_logic);--基带信号
endPL_FSK2;
architecturebehavofPL_FSK2is
signalq:
integerrange0to11;--分频计数器
signalxx:
std_logic;--寄存器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FPGA 课程设计 报告书 FSK 调制解调器 设计