基于VHDL语言的2FSK调制解调.doc
《基于VHDL语言的2FSK调制解调.doc》由会员分享,可在线阅读,更多相关《基于VHDL语言的2FSK调制解调.doc(10页珍藏版)》请在沃文网上搜索。
1、摘要:在数字通信系统中,数字调制与解调技术占有非常重要的地位。本人通过对FSK调制解调的基本原理了解,用VHDL语言实现了2FSK调制解调器的设计,仿真结果表明此设计方案是可行的,系统具有较高的实用性和可靠性。加深了对VHDL语言的了解和掌握,特别是对于通信工程的学生进一步理解通信原理,对提高个人对通信工程的兴趣和动手、思考能力有很大的帮助。一, 实验目的:1, 通过实验加深对VHDL语言基本语句的理解和掌握; 2,培养自主思考独立完成VHDL程序设计的能力; 3,加深学生(尤其通信工程)对所学专业知识的掌握;4,培养学生的专业兴趣和独立思考能力。二, 设计原理:1,FSK频移键控:FSK又称
2、频移键控,它是利用载频频率的变化来传递数字信息。数字调频信号可以分为相位离散和相位连续两种。若两个载频由不同的独立振荡器提供,它们之间的相位互不相关,就称为相位离散的数字调频信号;若两个频率由同一振荡器提供,只是对其中一个载频进行分频,这样产生的两个载频就是相位连续的数字调频信号。本实验中,二进制的基带信号是用两电平来表示的。1对应于载波频率F1,0对应于F2。2,2FSK的调制FSK就是利用载波信号的频率变化来传递数字信息。在2FSK中,载波的频率随二进制基带信号在f1和f2两个频率点之间变化。故其表达式为:所以2FSK的调制波形如下:实现数字频率调制的一般方法有两种, 直接调频法和键控法。
3、直接调频法:即连续调制中的调频(FM) 信号的产生方法,是将输入的基带脉冲去控制一个振荡器的参数而改变振荡频率,这种方法实现容易,输出的波形相位是连续的,但电路的振荡频率稳定性较差。键控法:是用数字信号去控制两个独立振荡器,两个门电路按数字信号的变化规律通断。 3,2FSK的解调2FSK频移键控信号的解调方法有多种,有模拟鉴频法德数字检测法,有非相干解调方法和相干解调方法。然而在数字系统中倡议使用数字检测法较为方便和有效,具体的原理和方法我们将会在第三部分详细介绍。三,研究内容:这一部分我们会详细研究和讨论怎样用数字方式和VHDL语言来实现2FSK的调制和解调。12FSK调制器设计1.1 分频
4、法实现2FSK调制器 在数字系统中我们可以借用调制方法中开闭开关的键控法莱实现2FSK的调制。利用分频器的知识来求取不同频率的两列方波f1,f2来作为信号的载波,通过对信号的检测,判断信号是否为0或1来决定信号f1或f2通过,实现2FSK的调制。实现2FSK调制的原理方框图如图1所示。图1 2FSK调制实现原理框图其中FSK调制的核心部分包括分频器、二选一选通开关等,图中的两个分频器分别产生两路数字载波信号;二选一选通开关的作用是以基带信号作为控制信号,当基带信号为0时,选通载波f1;当基带信号为1时,选通载波f2。从选通开关输出的信号就是数字FSK信号。这里的调制信号为数字信号。22FSK解
5、调器的设计2.1 分频法实现2FSK解调器通过调制过程我们里了解到2FAK利用载波频率的不同来实现信号01的区分和传输,所以我们也同样可以利用传出信号频率的大小来识别原始信号的值,一般情况下我们利用高频来代表信号1时准确度较高,详细的证明在这里不做解释了。 利用信号波形在单位时间内(例如clk信号的n个周期,一般去f1,f2信号周期的最小公倍数)上升沿的次数来测定信号频率。显而易见,只要是在单位时间内上升沿次数高的频率一定就大,次数可能会呈现倍数关系,然后判断决定让次数大的那个单位时间里输出1,反之输出0。实现2FSK解调器的原理方框图如图2所示。图2 2FSK解调实现原理框图。3,2FSK调
6、制解调器整体设计对于2FSK调制解调的整体设计,通过前两个过程的分析就变得十分简单,只要保证两个过程时钟信号一致,且调制的输出信号作为解调的输入信号即可。在整体设计过程中,整体电路如图3所示,其中x为基带信号,y为经过调制解调后的解调信号。图3 2FSK调制解调整体电路。四,源程序代码:1.FSK调制VHDL程序Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_arith.all;Use ieee.std_logic_unsigned.all;Entity fsk is Port(clk:in std_logic; Star
7、t:in std_logic; x:in std_logic; y:out std_logic);end fsk;architecture behave of fsk is signal q1:integer range 0 to 11; signal q2:integer range 0 to 3; signal f1,f2:std_logic;begin process(clk,start) begin if(clkevent and clk=1)then if(start=0)then q1=0; elsif(q1=5)then f1=1;q1=q1+1; elsif(q1=11)the
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VHDL 语言 FSK 调制 解调