FSK调制解调系统的建模与仿真Word文档格式.docx
《FSK调制解调系统的建模与仿真Word文档格式.docx》由会员分享,可在线阅读,更多相关《FSK调制解调系统的建模与仿真Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
计算机应用的日益普及,人们对计算机之间的数据传输要求越来越高,不仅向着高速、宽带、延迟小的方向发展,而且对数据传输方式的灵活性要求也越来越高。
无线数据传输在人们的日常生活中正日益扮演越来越重要的角色;
同时,无线数据通信的份额占整个数据通信领域的比重也正日益加重特别是在一些特殊的场合,如:
博物馆、移动办公室、交通工具中等设施内,架设电缆往往不符合设施规范。
无线数据传输设备变得必不可少了。
调制器是通信系统中必不可少的关键设备,其性能的好坏直接关系到整个系统的性能。
我们设计的FSK调制系统具有抗干扰、抗噪声、抗衰减性能较强、技术复杂程度低、成本低等诸多优点,因而广泛应用与实际电路中。
在中低速数据传输通信系统中得到了较为广泛的应用。
此外,许多集成芯片里也用到了FSK调制技术。
数字频率调制是数据通中常见的一种调制方式。
频移键控(FSK—FrequencyShiftKeying)方法简单,用不同频率的载波来传送数字信号,并用数字基带信号控制载波信号的频率,易于实现,并且解调不须恢复本地载波,可以异步传输,抗噪声和抗衰落性能也较强,传输距离远、误码率低等优点。
因此,FSK调制技术在通信行业,特别是在衰落信道中传输数据时得到了广泛地应用,并且主要适用于用于低、中速数据传输。
一个系统的通信质量,很大程度上依赖于所采用的调制方式。
但传统用硬件实现FSK的方法,特别是相干解调需要提取载波。
设备相对比较复杂、成本较高。
文中基于FPGA芯片。
采用VHDL语言提出了一种FSK调制解调器的实现方法因此,对调制方式的研究,将直接决定着通信系统质量的好坏。
现场可编程门阵列(CPLD)既具有很高的处理速度.又具有一定的灵活性。
本课题就采用CPLD实现数字调制解调技术加以论述。
二、FSK频移键控(FrequencyShiftKeying)
2.1FSK频移键控及信号产生原理
所谓FSK就是用数字信号去调制载波频率,是数字信号传输中用的最早的一种调制方式。
此方式实现起来比较容易,抗噪声和抗衰减性能好,稳定可靠,是中低速数据传输最佳选择。
频移就是把振幅、相位作为常量,而把频率作为变量,通过频率的变化来实现信号的识别,原理如图2-1所示。
在FSK中传送的信号只有0和1两个。
输出后的2FSK波形如图2-2所示。
图2-1FSK信号调制原理图
图2-2调制后波形图
FSK信号的产生原理
用二进制数字信号m(t)进行调频,是使载波υC=Vccos(ω+φ)中的ω,当符号为1时具有协l频率的信息,而当符号为0时具有ω2的信息,此调制称移频调制。
产生波形如图2-3所示。
图2-3FSK调制原理波形图
2.2FSK信号的调制与解调
FSK是利用载波的频率变化来传递数字信息的一种非线性调制方法。
在2FSK(二进制频移键控)系统中,使用两个不同频率的载波分别代表数字信号“0”和“1”,2FSK信号的解调和2FSK的调制是一个相反的过程。
2FSK信号的躲调是从已调的载波信号中,恢复为调制前的基带信号“0”和“1”。
2.2.1FSK信号的调制技术
(1)直接调频法
直接调频法是用数字基带信号直接控制载频振荡器的振荡频率。
直接调频法实现电路有许多。
一般采用的控制方法是:
当基带信号为正时(相当于‘1’码),改变振荡器谐振回路的参数·
(电容或电感数值),使振荡器的振荡频率提高(设为f1);
当基带信号为负时(相当于‘0’码),改变振荡器谐振回路的参数,使振荡器的频率降低(设为f2)。
从而实现了调频,这种方法产生的调频信号是相位连续的。
虽然实现方法简单。
但频率稳定度不高,同时频率转换速度不能太快。
(2)频率键控法
频率键控法也称频率选择法.图2-4是它实现的原理框图。
图2-4频带键控法的原理框图
频率键控法产生的FSK信号频率稳定度可以做得很高并且没有过渡频率,它的转换速度快,波形好。
频率键控法在转换开关发生转换的瞬间.两个高频振荡的输出电压通常不可能相等于是U。
Ufsk(t)信号在基带信号变换时电压会发生跳变,这种现象也称为相位不连续,这是频率键控特有的情况。
2.2.2FSK信号的解凋技术
图2-5VHDL描述FSK信号解调原理方框图
(1)同步解调法
同步解调中,FSK信号解调原理方框如图2-6所示。
图2-6FSK信号同步解调原理方框图
从图2-6可见,FSK信号的同步解调分成上、下两个支路,输入的FsK信号经过f1和f2两个带通滤波器后变成了上、下两路ASK信号.之后其解调原理与ASK类似,但判决需对上、下两支路比较来进行。
当输入的FSK信号振荡频率为fl时.上支路经带通后由正弦信号Acos2πflt存在。
与ASK系统接收到“l”码时的情况相似,经过低通滤波器,xl=A。
而下支路带通滤波器输出为0.与ASK系统接收到“0”码时相似,故x2=0,显然xl—x2=A一0>
0.
按判决准则判输入为fl;
反之,当输人为f2时.xl=0,x2=A,Xl-X2=0-A<
0,按判决准则应判输入为f2。
因此可以判决出FSK信号。
(2)包络解调法
图2-7FSK信号包络解调方框图
FSK信号包络解调方框图如图2-7所示。
从图2-7可见,FSK信号包络解凋相当于两路ASK信号包络解调。
用两个窄带的分路滤波器分别滤出频率为fl及f2的高频脉冲,经包络检波后分别取出它们的包络。
把两路输出同时送到抽样判决器进行比较.从而判决输m基带数字信号。
有时称这种比较判别器的判决门限为零点平。
当FSK信号为fl时.上支路相当于ASK系统接收“1”码的情况,其输出xl为正弦波加窄带高斯噪声的包络,它服从莱斯分布。
而下支路相当于ASK系统接收“0”码的情况,其输出x2为窄带高斯噪声的包络,它服从瑞利分布。
如果FSK信号为f2。
上、下支路的情况正好相反,此时上支路输出的瞬时值服从瑞利分布.下支路输出的瞬时值服从莱斯分布。
由以上分析可知.无论输出的FSK信号是f1或f2,两路输出总是一路为莱斯分布,另一路为瑞利分布。
(3)过零检测法
过零检测法是利用信号波形在单位时间内与零电平轴交叉的次数来测定信号频率。
输入u隙信号经限幅放大后成为矩形脉冲波,再经微分电路得到双向宽脉冲,然后整流的单向宽脉冲,每个宽脉冲表示信号的一个过零点。
宽脉冲的重复频率就是信号频率的二倍。
将宽脉冲去触发一单稳态电路.产生一定宽度的矩形脉冲序列,该序列的平均分量与脉冲频率成正比,即与输入信号频率成正比。
所以经过低通滤波器输出的平均分量的变化反映了输入信号频率的变化,这样就把码元“1”与“0”在幅度上区分开来,恢复出数字基带信号,其结构图如图2-8所示。
图2-8过零检测法方框图
三、系统的总体方案设计
3.1MAXPLUS2系统简介
Altera公司的姒XPLUS2开发系统是一个完全集成化、易学易用的可编程逻辑设计系统。
它可以在多种平台上运行。
它拥有开放的界面,可与其他工业标准的设计输入、综合与校验工具相连接。
其设计输入、处理和校验功能集成在统一的开发环境下n1。
MAXPLUS2采用自顶向下的设计方法,设计流程为设计输入一项目编译一项目校验一器件编程。
1.设计输入
MAXPLUS2软件的设计输入方法很多,主要有以下三种:
原理图输入、文本输入和波形输入。
文本设计输入方法主要用来实现以AHDL语言形式或VHDL语言形式书写的文件。
MAXPLUS2波形编辑器用于建立和编辑波形文件。
Compiler先进的波形综合算法根据用户定义的输入及输出波形自动生成逻辑关系。
Compiler自动为状态机分配状态位和状态变量。
2.项目编译
MAXPLUS2编译器可以检查项目中的错误并进行逻辑综合,将项目最终设计结果加载到Altera器件中去,并为模拟和编程产生输出文件。
3.项目校验
设计校验过程包括设计仿真和定时分析,作用是测试逻辑操作和设计的内部定时,MAXPLUS2仿真器可以对编译期间生成的二进制仿真网表进行功能、定时的仿真。
4.器件编程
器件的编程是指MAXPLUS2Programmer使用Compiler生成的编程文件对Altera器件编程。
编程过程可通过配套的编程适配器连接微机到应用板的JAG接口上来实现。
3.2系统实现
由过零点检测原理可以知道,FSK信号的过零点次数反映了原始信号的规律,所以只要某种方法能够分析出FSK信号的过零点次数,然后根据调制时原始信号和调制频率的关系,就可以解调出原始信号。
信号的解调框图如图3-1所示。
因为FPGA只能产生数字信号,所以假设图3-1中的调制信号FSK已经是经过数模转换的数字FSK信号。
图3-1调制器系统
1.时钟计数器C
由于要计算调制信号一个周期内的过零点次数,所以用时钟计数器来计算调制信号的周期,如果时钟频率与FSK调制信号频率fclk:
f=1:
11,那么表示每11个CLK时钟周期发送一个FSK调制信号,即当q从0递增到10时,一个调制信号传输结束。
2计数器Q
根据过零检测法原理,通过检测一个信号传输周期内的过零点次数来判断基带信号。
由于上升沿的个数就相当于FSK信号过零点的个数,那么计数器的主要功能就是在调制信号的一个周期内,对信号X的上升沿进行计数
3.判决器D
判决器的作用圭要是在调制信号的一个周期内,对计数器m的值进行判决。
判决门限值可以根据调制信号和基带信号的频率的比值决定。
如f1:
fclk=5:
1,f2:
fclk=2:
1则判决门限值工可以选择.x=5也可以选择x=2。
这样通过判决器就可以恢复出原始的基带信号。
判决器的门限也可以选3或者4,选3或者4的好处是使得解调器有一定的容错能力,能更好的解调出基带信号。
4.源程序代码(主体部分)
architecturefunofpl_fsk2is
signalq:
integerrange0to10;
一分频计数器
signalxx.std—logic;
一寄存器
signalm:
integerrange0tO5;
一计数器
begin
process(clk)一对系统时钟进行q分频
ifclk’eventandclk=’1’thenlxx<
=fsk;
一在clk信上升沿时,fsk信号对中间信号赋值
ifstart=’0’thenq<
=O;
--if语句完成Q的循环计数
elseifq=lOthenq<
elseq<
=q+l;
endif;
endprocess;
process(xx,q)一此进程完成FSK解调
begin
ifq=lOthenm<
=0:
--m计数器清零
elseifq=9then
ifm<
=3theny<
=’0’;
一if语句通过对m大小,来判决y输出的电平
elsey<
=’l’;
elseifxx’eventandxx=’l’
thenm<
m+1;
一计xx信号的脉冲个数
endfun;
四、系统电路模块的设计及仿真实现
4.1基于VHDL硬件描述语言的FSK程序设计
4.1.1FSK调制模块及仿真
libraryieee;
useieee.std_logic_arith.all;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityPL_FSKis
port(clk:
instd_logic;
--系统时钟
start:
--开始调制信号
x:
--基带信号
y:
outstd_logic);
--调制信号
endPL_FSK;
architecturebehavofPL_FSKis
signalq1:
integerrange0to11;
--载波信号f1的分频计数器
signalq2:
integerrange0to3;
--载波信号f2的分频计数器
signalf1,f2:
std_logic;
--载波信号f1,f2
process(clk)--此进程通过对系统时钟clk的分频,得到载波f1
ifclk'
eventandclk='
1'
then
ifstart='
0'
thenq1<
=0;
elsifq1<
=5thenf1<
='
;
q1<
=q1+1;
--改变q1后面的数字可以改变,载波f1的占空比
elsifq1=11thenf1<
--改变q1后面的数字可以改变,载波f1的频率
elsef1<
endif;
endif;
endprocess;
process(clk)--此进程通过对系统时钟clk的分频,得到载波f2
then
thenq2<
elsifq2<
=0thenf2<
q2<
=q2+1;
--改变q2后面的数字可以改变,载波f2的占空比
elsifq2=1thenf2<
--改变q2后面的数字可以改变,载波f2的频率
elsef2<
process(clk,x)--此进程完成对基带信号的FSK调制
ifx='
theny<
=f1;
--当输入的基带信号x=‘0’时,输出的调制信号y为f1
elsey<
=f2;
--当输入的基带信号x=‘1’时,输出的调制信号y为f2
endbehav;
其波形仿真图如图4-1所示。
其中载波f1、也分别是通过对时钟clk信号6分频和2分频得到的;
基带码长为载波f1的2个周期,为载波f2的6个周期;
输出的调制信号y在时间上滞后于载波信号一个elk周期.滞后于系统时钟2个elk周期。
(a)FSK调制VHDL程序仿真全图
(b)FSK调制VHDL程序仿真局部放大图
图4-1FSK调制VHDL程序仿真图
注:
a.载波f1、f2分别是通过对clk的12分频和2分频得到的。
b.基带码长为载波f1的2个周期,为载波f2的6个周期。
c.输出的调制信号y在时间上滞后于载波信号一个clk,滞后于系统时钟2个clk。
4.1.2FSK解调模块及仿真
entityPL_FSK2is
--同步信号
endPL_FSK2;
architecturebehavofPL_FSK2is
signalq:
--分频计数器
signalxx:
--寄存器
signalm:
integerrange0to5;
--计数器
process(clk)--对系统时钟进行q分频
thenxx<
=x;
--在clk信上升沿时,x信号对中间信号xx赋值
thenq<
elsifq=11thenq<
elseq<
=q+1;
process(xx,q)--此进程完成FSK解调
ifq=11thenm<
elsifq=10then
ifm<
=3theny<
--if语句通过对m大小,来判决y输出的电平
elsifxx'
eventandxx='
=m+1;
--计xx信号的脉冲个数
其波形仿真图如图4-2所示。
其中输出信号Y滞后输入信号lO个时钟周期;
在q=ll时,m清零;
q=10时,根据m的大小,进行对输出基带信号Y的电平的判决;
在q为其它值时,计数器m计下xx(寄存x信号)的脉冲数。
(a)FSK解调VHDL程序仿真全图
(b)FSK解调VHDL程序仿真局部放大图
图4-2FSK解调VHDL程序仿真图及注释
VHDL建模符号
结 论
文中通过对FSK调制信号原理的研究,根据过零检测法设计了一种FSK数字解调器,实现了对FSK数字调制信号的解调,达到了设计的目的。
Altera公司的MAXPLUS2应用软件具有较强大的开放性和综合性,它可以利用其他各种EDA资源以及先进的设计方法,使其功能更加完善和强大。
它韵可编程特性带来了电路设计的灵活性,缩短了产品的上市时间。
在忙忙碌碌中和不断改善中,时间一晃而过。
刚开始,我们头绪不是很清楚,不知道从哪里入手,但是通过对资料的查阅和同学间的讨论,有了思绪。
跑图书馆查资料、确定了基本设计方案、对所有专业知识进行查找、调试、上机仿真等。
经历了一次次的困惑,却积累了一定的知识。
在整个课程设计中的过程中遇到的问题主要有以下三点:
第一,基础知识的不牢固,主要表现在一些常用的HDL语言不够熟悉,不能正确的一次性编写成功,对书本上的内容理解不够透彻;
第二,对一些常用的应用软件缺少应用,体现在华电路图和系统仿真的时候,对这些软件操作的不熟练,浪费了很多时间。
第三,相关知识掌握不够全面,缺少系统设计和仿真的经验。
总之,可以这样说毕业设计是对大学所学知识的一次综合运用和检阅,同时对自学能力提出很高的要求,所以平时的学习离开思考,就是严重的错误,我们学习不应该有偏科现象,各方面的知识都应该要接触,这样做才能为毕业设计打下基础。
同时,学会了高效率的查阅资料、运用工具书、利用网络查找资料。
我发现,在我们所使用的书籍上有一些知识在实际应用中其实并不是十分理想,各种参数都需要自己去调整。
偶而还会遇到错误的资料现象,这就要求我们应更加注重实践环节。
参考文献
[l]樊昌信,张甫翊,徐炳祥.通信原理[M].第5版.北京:
国防工业出版杜.2001.
[2]冯玉岷,通信系统原理[M].北京:
清华大学出版社.2003:
34~43
[3]侯伯亨,VHDL硬件描述语言与数字电路设计[M].西安:
西安电子科大出版社.2003:
42~64
[4]基于CPLD的FSK信号发生器的设计[J].源河技术学院学报,2004:
56~70
[5]刘美兰.张开生.李莉.基于低压端电力网的远程秒表监控系统[J].
西北轻工业学院学报.1999(3):
9l~95.
[6]柳永智,刘晓川.电力系统运动[M].北京:
中国电力出版社.2002:
62~78
[7]田日才,刘文贵.低速FSK制式的Modem[J].黑龙江通信技术.1995
(2):
4~16.
[8]盛寿麟.电力系统远程监控原理[M].北京:
中国电力出版社.1998:
48~54
[9]豆耀华.鉴频和锁频电路的研制[J].西北地震学报,
1997
(1):
85~86.
[10]吴仲光.FSK调制解调器的单片机实现[J].四川大学学报.
1995(6):
642~643.
[11]王志平.通信原理[M].国防工业出版社.2000:
65~73
[12]张传生.数字通信原理[M].西安交通大学出版社.2000:
124~151
[13]李东生.Maxplus2系统设计及仿真[J].电子工业出版社.2001:
95~129
[14]宋成文.通信原理教程[M].电子工业出版社.2000:
52~59
[15]龚世辉.Maxplus2的编程与仿真[M].成都出版社.2002:
96~105