基于FPGA的FSK调制解调.docx
《基于FPGA的FSK调制解调.docx》由会员分享,可在线阅读,更多相关《基于FPGA的FSK调制解调.docx(19页珍藏版)》请在冰点文库上搜索。
基于FPGA的FSK调制解调
FPGA/CPLD课程设计报告
[FSK调制解调器设计]
学生姓名:
XX
学生学号:
200XXXXXX
院(系):
电气信息工程学院
年级专业:
20XX级电子信息工程
指导老师:
XXXXX
联系电话:
XXXXXXXX
二〇XX年六月
摘要
调制解调器是通信系统中的关键设备,其性能的好坏直接关系到整个系统的性能。
经过近两个星期的的实验,我们四个组员齐心协力,利用QuartusII软件中的VHDL语言对FSK频移键控系统就行调制、解调的程序设计。
终于制作出了FSK调制解调器。
本次设计的FSK调制解调器的各项参数分别为:
载频f1=12.5MHz,f2=2MHz,调制信号f=1MHz。
本次设计的FSK电路可广泛用于远程自控系统及移频通信中。
采用FSK调制方式的主要优点是:
①无需载波恢复,大大降低了系统复杂度。
②对幅度的非线性抗干扰能力强。
因为FSK信号为恒包络信号,其信息完全包含在信号的过零点上,所以比起调幅信号,其对幅度非线性抗干扰能力要强。
③调制解调易用软硬件实现,简单易懂。
关键字VHDL语言,FSK调制,FSK解调
ABSTRACT
Themodemcommunicationsystemisthekeyequipment,itsperformancehasadirectrelationshiptotheentiresystemperformance.Afternearlytwoweeksofexperiments,wefourmemberstogether,useQuartusIIinthesoftwareofVHDLlanguagetoFSKFSKsystemwilldomodulationanddemodulationoftheprogramdesign.FinallymadeFSKmodem.ThedesignofFSKmodemsare:
todeterminetheparametersoff1=12.5MHz,f2=2MHz,modulationsignalf=1MHz.ThedesignofFSKcircuitcanbewidelyusedinremotecontrolsystemandfrequencyshiftincommunications.UtilizeFSKmodulatorwayofmainadvantageis:
(1)nocarrierrecovery,andgreatlyreducethesystemcomplexity.
(2)theamplitudeofthenonlinearofanti-jammingability.BecauseFSKsignalisaconstantenvelopesignal,theinformationisfullycontainedinthesignalzero,so,theamplitudemodulatedsignalthanbynonlinearanti-interferenceabilityisambitious.(3)demodulationiseasytousesoftwareandhardwarerealization,simpleandunderstandable.
KeywordVHDLLanguage,FSKmake,FSKsolutionadjust
摘要…………………………………………………………………………………Ⅰ
ABSTRACT…………………………………………………………………………Ⅱ
1绪论………………………………………………………………………………1
1.1题目的意义………………………………………………………………………1
1.2设计要求…………………………………………………………………………1
2FSK设计的基本原理………………………………………………………………2
2.1FSK的调制………………………………………………………………………2
2.2FSK的解调………………………………………………………………………3
3设计方案……………………………………………………………………………5
3.1FSK基于VHDL语言调制程序……………………………………………………5
3.2FSK基于VHDL语言解调程序……………………………………………………6
4测试………………………………………………………………………………8
4.1FSK调制仿真……………………………………………………………………8
4.2FSK解调仿真……………………………………………………………………11
5结论………………………………………………………………………………14
6参考文献…………………………………………………………………………15
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”码),改变振荡器谐振回路的参数(电容或者电感数值),使振荡器的振荡频率提高(设为f1);当基带信号为负时(相当于“0”码),改变振荡器谐振回路的参数(电容或者电感数值),使振荡器的振荡频率降低(设为f2);从而实现了调频。
这种方法产生的调频信号是相位连续的,虽然实现方法简单,但频率稳定度不高,同时频率转换速度不能做得太快,但是其优点是由调频器所产生的FSK信号在相邻码元之间的相位是连续的。
二、频率键控法
频率键控法也称频率选择法。
它有两个独立的振荡器,数字基带信号控制转换开关,选择不同频率的高频振荡信号实现FSK调制。
图1频率健控法原理框图
键控法产生的FSK信号频率稳定度可以做得很高并且没有过渡频率,它的转换速度快,波形好。
频率键控法在转换开关发生转换的瞬间,两个高频振荡的输出电压通常不可能相等,于是uFSK(t)信号在基带信息变换时电压会发生跳变,这种现象也称为相位不连续,这是频率键控特有的情况。
三、FSK的调制方框图及电路符号
图2FSK调制方框图
图3FSK调制电路符号
2.2FSK的解调
数字频率键控(FSK)信号常用的解调方法有很多种如:
一、同步(相干)解调法
在同步解调器中,有上、下两个支路,输入的FSK信号经过
和
两个带通滤波器后变成了上、下两路ASK信号,之后其解调原理与ASK类似,但判决需对上、下两支路比较来进行。
假设上支路低通滤波器输出为
,下支路低通滤波器输出为
,则判决准则是:
图4相干解调法原理框图
接收信号经过并联的两路带通滤波器进行滤波与本地相干载波相乘和包络检波后,进行抽样判决,判决的准则是比较两路信号包络的大小。
假设上支路低通滤波器输出为
,下支路低通滤波器输出为
,则判决准则是:
如果上支的信号包络较大,则判决为“1”;反之,判决为收到为“0”。
二、FSK滤波非相干解调法
输入的FSK中频信号分别经过中心频为、的带通滤波器,然后分别经过包络检波,包络检波的输出在t=kTb时抽样(其中k为整数),并且将这些值进行比较。
根据包络检波器输出的大小,比较器判决数据比特是1还是0。
图5非相干解调法原理框图
三、FSK的解调方框图及电路符号
图6FSK解调方框图
图7FSK解调电路符号
3设计方案
3.1FSK基于VHDL语言调制程序
文件名:
FSKTZ
--功能:
基于VHDL硬件描述语言,对基带信号进行FSK调制
LIBRARYIEEE;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYFSKTZIS
PORT(CLK:
INSTD_LOGIC;--系统时钟
START:
INSTD_LOGIC;--开始调制信号
X:
INSTD_LOGIC;--基带信号
Y:
OUTSTD_LOGIC);--调制信号
ENDFSKTZ;
ARCHITECTUREBEHAVOFFSKTZIS
SIGNALQ1:
INTEGERRANGE0TO11;--载波信号F1的分频计数器
SIGNALQ2:
INTEGERRANGE0TO3;--载波信号F2的分频计数器
SIGNALF1,F2:
STD_LOGIC;--载波信号F1,F2
BEGIN
PROCESS(CLK)--产生载波F1
BEGIN
IF(CLK'EVENTANDCLK='1')THEN
IFSTART='0'THENQ1<=0;
ELSIFQ1<=5THENF1<='1';Q1<=Q1+1;--改变Q1可以改变载波F1
--的占空比
ELSIFQ1=11THENF1<='0';Q1<=0;
ELSEF1<='0';Q1<=Q1+1;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CLK)--产生载波F2
BEGIN
IF(CLK'EVENTANDCLK='1')THEN
IFSTART='0'THENQ2<=0;
ELSIFQ2=1THENF2<='0';Q2<=0;
ELSIFQ2<=0THENF2<='1';Q2<=Q2+1;
ELSEF2<='0';Q2<=Q2+1;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CLK,X)--此进程完成对基带信号的FSK调制
BEGIN
IF(CLK'EVENTANDCLK='1')THEN
IFX='0'THENY<=F1;--X=’0’时,输出F1
ELSEY<=F2;--X=’1’时,输出F2
ENDIF;
ENDIF;
ENDPROCESS;
ENDBEHAV;
3.2FSK基于VHDL语言解调程序
文件名:
FSKJT
--功能:
基于VHDL硬件描述语言,对基带信号进行FSK解调
LIBRARYIEEE;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYFSKJTIS
PORT(CLK:
INSTD_LOGIC;--系统时钟
START:
INSTD_LOGIC;--同步信号
X:
INSTD_LOGIC;--调制信号
Y:
OUTSTD_LOGIC);--基带信号
ENDFSKJT;
ARCHITECTUREBEHAVOFFSKJTIS
SIGNALQ:
INTEGERRANGE0TO11;--分频计数器
SIGNALXX:
STD_LOGIC;--寄存器
SIGNALM:
INTEGERRANGE0TO5;--计数器
BEGIN
PROCESS(CLK)
BEGIN
IF(CLK'EVENTANDCLK='1')THENXX<=X;--在CLK信号上升沿时
--X信号对中间信号XX赋值
IFSTART='0'THENQ<=0;--IF语句完成对Q的循环计数
ELSIFQ=11THENQ<=0;
ELSEQ<=Q+1;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(XX,Q)--此进程完成对FSK解调
BEGIN
IFQ=11THENM<=0;--M计数器清零
ELSIFQ=10THEN
IFM<=3THENY<='0';--IF语句通过对M大小,来判决Y输出的电平
ELSEY<='1';
ENDIF;
ELSIFXX'EVENTANDXX='1'THENM<=M+1;--计XX信号的脉冲个数
ENDIF;
ENDPROCESS;
ENDBEHAV;
4测试
4.1FSK调制仿真
工程编译通过后,必须对其功能和时序性能进行仿真测试,以验证设计结果是否满足设计要求。
整个时序仿真测试流程一般有建立波形文件、输入信号节点、设置波形参数、编辑输入信号、波形文件存盘、运行仿真器和分析方针波形等步骤。
假设需要调制的二进制序列为[1101001011001],且码元宽度为480ns。
一、FSK调制波形仿真
①建立仿真测试波形文件。
选择QuartusII主窗口的File菜单的New选项,在弹出的文件类型编辑对话框中,选择OtherFiles中的VectorWeaveformFile项,单击OK按钮,即出现如图8所示的波形文件编辑窗口。
图8波形文件编辑窗口
②设置仿真时间区域。
对于时序仿真测试来说,将仿真时间设置在一个合理的时间区域内是十分必要的,通常设置的时间区域将视具体的设计项目而定。
设计中整个仿真时间区域设为6us、时间轴周期为40ns,其设置步骤是在Edit菜单中选择EndTime,在弹出的窗口中Time处填入6,单位选择us,同理在GrideSize中Timeperiod输入40ns,单击OK按钮,设置结束。
③输入工程信号节点
选择View菜单中的UtilityWindows项的NodeFinder,即可弹出如图4.1.2所示的对话框,在此对话框Filter项中选择Pins:
all&Registers:
Post-fitting,然后单击List按钮,于是在下方的NodesFound窗口中出现设计中的PL_FSK工程的所有端口的引脚名。
用鼠标将时钟信号节点clk、start、x、q1、f1、q2、f2和y分别拖到波形编辑窗口,如图9所示,此后关闭NodesFound窗口即可。
图9FSK调制波形编辑器输入信号窗口
④设计信号波形。
单击图9左侧的全屏显示按钮,使之全屏显示,并单击放大缩小按钮,再用鼠标在波形编辑窗口单击(右击为放大,左击为缩小),使仿真坐标处于适当位置。
单击图9窗口的时钟信号clk使之变成蓝色条,再单击右键,选择Value设置中的CountValue项,设置clk为连续变化的二进制值,初始值为“0”。
单击start使之变成蓝色,再单击右键,选择Value设置中的ForcingHigh项,使start变成高电平信号。
单击x使之变成蓝色,再单击右左侧WaveformEditing按钮,把x变成高低电平连续变化信号。
⑤文件存盘
选择File中的Saveas项,将波形文件以默认名FSKTZ.vwf存盘即可。
⑥所有设置完成后,即可启动仿真器Processing︱StartSimulation直到出现Simulationwassuccessful,仿真结束。
仿真波形输出文件FSKTZSimulationReport将自动弹出如图10所示。
注意,QuartusII的仿真波形文件中,波形编辑文件(*.vwf)与波形仿真报告输出文件(SimulationReport)是分开的,而MaxplusII的激励波形编辑文件与波形仿真报告输出文件是合二为一的。
图10FSK调制VHDL程序仿真全图
图11FSK调制VHDL程序仿真局部放大图
二、FSK调制电路
FSK调制电路如图12所示:
图12FSK调制电路图
QuartusII可实现硬件描述语言或网表文件(VHDL、Verilog、BDF、TDF、EDIF、VQM)对应的RTL电路图的生成。
其方法为:
选择Tools︱RTLViewer,可以打开FSKTZ工程个层次的RTL电路图,双击图形中有关模块,或选择左侧各项,可了解个层次的电路结构。
4.2FSK解调仿真
工程编译通过后,必须对其功能和时序性能进行仿真测试,以验证设计结果是否满足设计要求。
整个时序仿真测试流程一般有建立波形文件、输入信号节点、设置波形参数、编辑输入信号、波形文件存盘、运行仿真器和分析方针波形等步骤。
以FSK调制的输出作为FSK解调的输入。
一、FSK解调波形仿真
①建立仿真测试波形文件。
选择QuartusII主窗口的File菜单的New选项,在弹出的文件类型编辑对话框中,选择OtherFiles中的VectorWeaveformFile项,单击OK按钮,即出现波形文件编辑窗口。
②设置仿真时间区域。
对于时序仿真测试来说,将仿真时间设置在一个合理的时间区域内是十分必要的,通常设置的时间区域将视具体的设计项目而定。
设计中整个仿真时间区域设为6us、时间轴周期为40ns,其设置步骤是在Edit菜单中选择EndTime,在弹出的窗口中Time处填入6,单位选择us,同理在GrideSize中Timeperiod输入40ns,单击OK按钮,设置结束。
③输入工程信号节点
选择View菜单中的UtilityWindows项的NodeFinder,即可弹出如图4.2.1所示的对话框,在此对话框Filter项中选择Pins:
all&Registers:
Post-fitting,然后单击List按钮,于是在下方的NodesFound窗口中出现设计中的PL_FSK2工程的所有端口的引脚名。
用鼠标将时钟信号节点clk、start、x、y、q、m和xx分别拖到波形编辑窗口,如图13所示,此后关闭NodesFound窗口即可。
图13FSK解调波形编辑器输入信号窗口
④设计信号波形。
单击图13左侧的全屏显示按钮,使之全屏显示,并单击放大缩小按钮,再用鼠标在波形编辑窗口单击(右击为放大,左击为缩小),使仿真坐标处于适当位置。
单击图13窗口的时钟信号clk使之变成蓝色条,再单击右键,选择Value设置中的CountValue项,设置clk为连续变化的二进制值,初始值为“0”。
单击start使之变成蓝色,再单击右键,选择Value设置中的ForcingHigh项,使start变成高电平信号。
单击x使之变成蓝色,再单击右左侧WaveformEditing按钮,把x变成高低电平连续变化信号。
⑤文件存盘
选择File中的Saveas项,将波形文件以默认名FSKJT.vwf存盘即可。
⑥所有设置完成后,即可启动仿真器Processing︱StartSimulation直到出现Simulationwassuccessful,仿真结束。
仿真波形输出文件FSKJTSimulationReport将自动弹出如图14所示。
注意,QuartusII的仿真波形文件中,波形编辑文件(*.vwf)与波形仿真报告输出文件(SimulationReport)是分开的,而MaxplusII的激励波形编辑文件与波形仿真报告输出文件是合二为一的。
图14FSK解调VHDL程序仿真全图
图15FSK解调VHDL程序仿真局部放大图
二、FSK调制电路
FSK调制电路如图16所示:
图16FSK解调电路图
QuartusII可实现硬件描述语言或网表文件(VHDL、Verilog、BDF、TDF、EDIF、VQM)对应的RTL电路图的生成。
其方法为:
选择Tools︱RTLViewer,可以打开PL_FSK2工程个层次的RTL电路图,双击图形中有关模块,或选择左侧各项,可了解个层次的电路结构,如图16所示。
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]张凤言.大规模逻辑器件与数字系统设计.北京:
北京航空航天大学出版社