FPGA课程设计基于VHDL的2FSK的信号发生器_第1页
FPGA课程设计基于VHDL的2FSK的信号发生器_第2页
FPGA课程设计基于VHDL的2FSK的信号发生器_第3页
FPGA课程设计基于VHDL的2FSK的信号发生器_第4页
FPGA课程设计基于VHDL的2FSK的信号发生器_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、fpga原理及应用结课论文题目基于vhdl的2fsk的信号发生器 专业名称通信工程班级学号学生姓名提交时间2012年12月13日设计题目:基于vhdl的2fsk的信号发生器一、设计实验条件quartus ii开发环境二、设计目标1. 通过练习,能够较为熟练的运用quartus ii软件,同时对vhdl语言掌握更加熟悉;2. 基于quartus ii开发环境,利用vhdl硬件描述语言,自上而下地逐层完成相应的描述、综合、优化、仿真与验证,直到生成器件2fsk信号发生器;三、设计报告的内容1. 前言(绪论)(设计的目的、意义等)2. 设计主体(原理、步骤、程序或原理图、结果等)3. 对仿真结果进行

2、分析4. 参考资料一前言在通信领域中,为了传送信息,一般都将原始的信号进行某种变换变成适合于通信传输的信号形式。在数字通信系统中,一般将原始信号(图像、声音等)经过量化编码变成二进制码流,称为基带信号。 但数字基带信号一般不适合于直接传输。例如,通过公共电话网络传输数字信号时,由于电话网络的带宽为4 khz以下,因此数字信号不能直接在其上传输。此时可将数字信号进行调制,2fsk即为一种常用的数字调制方式。2fsk,即二进制频移键控方法简单,易于实现,解调不需恢复本地载波,支持异步传输,抗噪声和抗衰落性能也较强。因此2fsk调制技术在通信行业得到了广泛的应用,并且主要适用于低、中速数据传输。由于

3、微电子技术的迅猛发展,使得vhdl的性能指标,例如规模、功能、时间等性能也越来越好。vhdl在数字系统设计中占据了越来越重要的位置。而随着器件的发展,开发环境也进一步得到优化。vhdl程序的设计可用altera公司的quartus ii软件开发系统来实现,它为用户提供了良好的开发环境,包含有丰富的库资源,很容易实现各种电路设计,它支持多种输入方式,并有极强的仿真系统。故利用fpga 这一新的技术手段来研究数字调制技术有重要的现实意义。设计采用fpga现场可编程技术, 运用自顶向下的设计思想设计2fsk信号发生器。避免了硬件电路的焊接与调试, 而且由于fpga 的i/ o 端口丰富, 内部逻辑可

4、随意更改, 使得2fsk信号发生器的实现较为方便。二设计主体1、2fsk信号产生原理数字频率调制又称频移键控(fsk),二进制频移键控记作2fsk。数字频移键控是用载波的频率来传送数字消息,即用所传送的数字消息控制载波的频率。2fsk信号便是符号“1”对应于载频,而符号“0”对应于载频(与不同的另一载频)的已调波形,而且与之间的改变是瞬间完成的。2fsk调制的波形如图1示。从原理上讲,数字调频可用模拟调频法来实现,也可用键控法来实现。模拟调频法是利用一个矩形脉冲序列对一个载波进行调频,是频移键控通信方式早期采用的实现方法。2fsk键控法则是利用受矩形脉冲序列控制的开关电路对两个不同的独立频率源

5、进行选通。键控法的特点是转换速度快、波形好、稳定度高且易于实现,故应用广泛。2fsk信号的产生方法如图1所示。图中为代表信息的二进制矩形脉冲序列,即使2fsk信号。s(t) 模拟调频器 s(t) 0 1 0 0 1 0图1 2fsk产生方法2、设计原理及原理图由于fsk为模拟信号,而fpga只能产生数字信号,因此需对正弦信号采样并经模数变换来得到所需的fsk信号。本例由fpga产生正弦信号的采样值。fsk信号发生器框图如图2所示,整个系统共分为分频器、m序列产生器、跳变检测、2:1数据选择器、正弦波信号产生器和dac数模变换器等6部分,其中前5部分由fpga器件完成。图2 2fsk调制信号发生

6、器框图(1)分频器本实例中数据速率为1.2 khz,要求产生1.2 khz和2.4 khz两个正弦信号。对正弦信号每周期取100个采样点,因此要求能产生3个时钟信号:1.2 khz(数据速率)、120 khz(产生1.2 khz正弦信号的输入时钟)和240 khz(产生2.4 khz正弦信号的输入时钟)。基准时钟由一个12 mhz的晶振提供。设计中要求一个50分频(产生240 khz信号),再2分频(产生120 khz信号)和100分频(产生1.2 khz信号),共有三个分频值。(2)m序列产生器m序列是伪随机序列的一种,它的显著特点是:随机特性,预先可确定性,循环特性。正因为这些特性,使得m

7、序列产生器在通信领域得到了广泛的应用。这里用一种带有两个反馈抽头的3级反馈移位寄存器,得到一串“1110010”循环序列,并采取措施防止进入全“0”状态。通过更换时钟频率可以方便地改变输入码元的速率。m序列产生器的电路结构如图3所示。图3 m序列产生器m序列产生器电路结构(3)跳变检测将跳变检测引入正弦波的产生中,可以使每次基带码元上升沿或下降沿到来时,对应输出波形位于正弦波形的sin0处。引入跳变检测主要是为了便于观察,确保示波器上显示为一个连续的波形。基带信号的跳变检测可以有很多方法,图4为一种便于在可编程逻辑器件中实现的方案。图4 信号跳变检测电路(4)2:1数据选择器2:1数据选择器用

8、于选择正弦波产生器的两个输入时钟。一个时钟的频率为120 khz,此时正弦波产生器产生一个1.2 khz的正弦波,代表数字信号“0”;另一个时钟的频率为240 khz,此时产生一个2.4 khz的正弦波信号,代表数字信号“1”。(5)正弦信号的产生用数字电路和dac变换器可以产生要求的模拟信号。根据抽样定理可知,当用模拟信号最大频率两倍以上的速率对该模拟信号采样时,便可将原模拟信号不失真地恢复出来。本例要求得到的是两个不同频率的正弦信号,实验中对正弦波每个周期采样100个点,即采样速率为原正弦信号频率的100倍,因此完全可以在接收端将原正弦信号不失真地恢复出来,从而可以在接收端对fsk信号正确

9、地解调。经dac转换后,可以在示波器上观察到比较理想的波形。本设计中每个采样点采用8位量化编码,即8位分辨率。采样点的个数与分辨率的大小主要取决于cpld/fpga器件的容量,其中分辨率的高低还与dac的位数有关。实验表明,采用8位分辨率和每周期100个采样点可以达到相当不错的效果。具体的正弦信号产生器可以用状态机来实现。按前面的设计思路,本实现方案共需100个状态,分别为s1s100。同时设计一个异步复位端,保证当每个“1”或“0”到来时其调制信号正好位于坐标原点,即sin0处。状态机共有8位输出(q7q0),经dac变换为模拟信号输出。为得到一个纯正弦波形,应在dac的输出端加上一个低通滤

10、波器,由于本设计仅观察fsk信号,因此省去了低通滤波器。本设计中,数字基带信号与fsk调制信号的对应关系为“0”对应1.2 khz,“1”对应2.4 khz,此二载波的频率可以方便地通过软件修改。3、对仿真结果进行分析2fsk的总体波形如图5所示,其中clock为正弦波发生器时钟mode表示0:2fsk;1:2psk,clk120为用于产生一个1.2khz的正弦波信号,clk240为用于产生一个2.4khz的正弦波信号,value为正弦波的采样点峰值,m_mode为输出m序列。图5 2fsk仿真波形图下图6所示为产生的2fsk波形,可以明显地看到在m_mode跳变前后value的码元宽度相差一

11、倍,实现了2fsk的频率变化来传递数字信息,即120khz表示信号“0”,240khz表示信号“1”。图6 2fsk仿真波形图下图3-6可以看出传递信号“1”的波形密度明显比传递信号“0”的波形密度高。 图7 2fsk仿真波形图2fsk的信号传递频率从下图8中可以看出为240khz,信号“1”和“0”的跳变是通过相位的改变来实现的。图8 2fsk仿真波形图4、具体程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity pskfsk

12、 isport(clock:in std_logic; -正弦波发生器时钟 mode:in std_logic; -0:fsk;1:psk clk240: buffer std_logic; -用于产生一个2.4khz的正弦波信号 clk120: buffer std_logic; -用于产生一个1.2khz的正弦波信号 value: out std_logic_vector (7 downto 0); -正弦波的采样点峰值 m_code:buffer std_logic); -输出m序列end pskfsk;architecture pskfsk_arch of pskfsk is sign

13、al count100:integer range 0 to 99; -记录100个状态 signal count50: integer range 0 to 49; -记录50个状态 signal count: integer range 1 to 10; -记录10个状态,实现12m分频到240khz得到clk240时钟信号 signal sinclk,coderate: std_logic; -正弦波信号的频率以及随机序列的编码速率 signal temp,jump_high,jump_low: std_logic; -0,1跳变标志 signal m: std_logic_vector

14、 (2 downto 0); -m序列beginprocess(clock) -分频为240khz的clk240信号 begin if (clockevent and clock = 1) then if (count = 10) then count=1; -计数满时计数回复初值 clk240=not clk240; -输出时钟翻转一次 elsif (count=5) then count=count+1; clk240 = not clk240;-输出时钟翻转一次 else count=count+1; end if; end if;end process;process(clk240)

15、-分频为120khz的clk120信号 begin if (clk240event and clk240 = 1) then clk120=not clk120; end if;end process;process(clk120) -load_clk1 100分频得到coderate码元速率1.2khzbegin if (clk120event and clk120= 1) then if(count50=49) then count50=0; coderate=not coderate; else count50=count50+1; end if; end if;end process;

16、m_sequence_form: -产生1110010m序列process(coderate)begin if(coderateevent and coderate= 1) then m(0)=m(1); -实现移位功能 m(1)=m(2); end if;end process;process(coderate)begin if(coderateevent and coderate= 1) then m(2)=(m(1) xor m(0) or (not (m(0) or m(1) or m(2); -逻辑表达式跟上面的移位功能产生m的随机序列“1110010” end if;end pro

17、cess;m_code=m(0);process(mode,clk240,clk120,m_code)begin if (mode=0 and m_code=0) then sinclk=clk120; else sinclk=clk240; -选择正弦信号波产生器的时钟频率 end if;end process;jump_high=(not temp) and m_code; -0到1跳变jump_low=(not m_code) and temp; -1到0跳变process(sinclk) -2fsk与2psk对跳变的不同处理begin if(sinclkevent and sinclk

18、= 1) then temp=m_code; if(count100=99) or (jump_high=1) then count100=0; -波形输出 elsif(jump_low=1) and (mode=1) then count100=50; else count100valuevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluevaluev

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论