版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、合 肥 学 院综 合 课 程 设 计 报 告题 目:基于fpga的调制信号(ask、fsk、psk)的设计与实现系 别: 电子系 专 业: 电子信息工程 班 级: 06电子(1)班 学 号: 姓 名: 导 师: 成 绩: 2010年 01月07日综合课程设计任务书论文题目基于fpga的调制信号(ask、fsk、psk)产生设计类型应用型导师姓名谭敏主要内容及目标要求:1、给出ask、fsk、psk三种调制信号的实现原理、设计框图; 2、完成以上三种调制信号的vhdl设计描述; 3、仿真以上三种调制信号; 4、实现以上调制信号的生成。具有的设计条件计算机cpld/fpga,常用电子元件单片机计划
2、学生数及任务计划学生数:3人 任务:1、掌握vhdl硬件描述语言设计相关模块的方法; 2、掌握eda技术的层次化设计方法 3、能对以上生成的调制信号进行解调计划设计进程1、第1周 独立查找资料、 分别画出设计框图,制定设计方案2、第2周 画出电路原理图,进行实验3、第3周 电路调试和完善,同时完成设计报告参考文献电子技术基础 数字部分 康华光主编eda技术实用教程 潘松主编 北京. 科学出版社2002年10月单片机应用系统设计技术基于c语言编程 余永权 电子工业 北京.2004.8基于fpga的调制信号(ask、fsk、psk)的设计与实现摘 要本设计使用fpga在eda技术开发平台quart
3、us上实现了正弦信号及三种调制信号(ask、fsk、psk)的生成。本设计基于dds(直接数字合成器 direct digital synthesizer)技术,巧妙的结合三种调制信号的特性,设计出了一种方便产生正弦信号和多种调制信号的系统。系统采用20mhz的时钟,通过512分频和16384分频获得两路时钟。512分频所得一路时钟分别给两个相同正弦信号发生器作为时钟,以获得载波信号。16384分频作为整个系统的基带信号。由于ask和psk调制特性相近,载波都为一路信号。因此在设计时将ask和psk调制放在一个模块里设计,用一个选择键和两个基带信号控制端来控制。而fsk调制需要两路载波信号,设
4、计时在另一个正弦信号发生器模块之前加上一个fsk模块,基带信号为高电平时输出之前输入的频率控制字给正弦信号发生器模块,当基带信号为低电平时就在输入频率控制字的基础上加上一个固定的常数,就使得正弦信号发生器在基带信号作用下输出不同载波频率的fsk信号。关键词:fpga、dds、ask、fsk、psk1 题目分析1.1 功能要求及指标本设计要求使用fpga设计并生成ask、fsk、psk三种调制信号。载波频率小于20khz。给出其设计思路及原理框图。并能在示波器上清晰的显示三种调制波形。1.2 设计思想将系统时钟进行两路分频,一路作为两个相同的正弦信号发生器时钟,另一路作为系统基带信号。其中一个正
5、弦信号发生器生成的信号作为ask和psk的载波,而另一个正弦信号发生器生成的信号则作为fsk的载波。通过ask/psk模块和fsk模块实现三种调制信号的生成。总体设计框图如图1。图1 系统设计框图2 方案选择在幅度键控中载波幅度随着调制信号变化而变化的调制称为ask调制。利用不同载波频率来传递数字信息的调制称为fsk调制。用二进制数字信号控制载波的两个相位的调制称为psk调制。三种信号的典型调制波形如图2所示。pskfskask图2 三种调制信号的简单调制波形2.1 ask/psk方案选择方案一:分别实现ask和psk调制,其调制方框图如图3所示。 图3 ask和psk调制框图方案二:由于as
6、k与psk在调制上只需要一种载波的相同性,可以将ask和psk调制放在一个模块里进行设计。用一个键控制ask和psk调制的选择,另设两个基带信号端。具体设计框图如图4所示。图4 askpsk调制框图方案一对ask和psk调制分别进行设计,较为繁琐。而方案二将两者放在一个模块中设计,只需要简单的vhdl语言描述即可,方便快捷。因此本设计选择方案二。 2.2 fsk方案选择方案一:如图二中fsk波形所示,使用两路载波进行fsk调制。设计框图如图5所示。图5 fsk设计框图1方案二:为了使系统节省资源,只使用一路载波信号进行fsk调制。方法是在正弦信号发生器之前对频率控制字进行处理。具体方框图如图6
7、。图6 fsk设计框图2方案一需要路载波,资源浪费。而方案二只在正弦信号发生器之前对频率控制字进行基带传输,既方便又节省资源。因此,本设计选择方案二。3 系统设计本系统设计包含分频器、正弦信号发生器、ask/psk模块、fsk模块、三选一多路选择器、数模转换、滤波器、电平移位及放大电路9个模块。下面将会对各模块作详细的介绍。3.1 分频器设计根据题目中载波频率小于30khz的要求,生成载波信号的正弦信号发生器选择16位累加器,则其需要的时钟在30khz以上即可。因此,设计中对20mhz的系统时钟进行512分频(39khz)和16384分频(1.22khz)。512分频所得时钟作为正弦信号发生器
8、的时钟,16384分频所得时钟则作为整个系统的基带信号。vndl具体设计见附录一。通过vhdl包装生成的分频器模块及其波形仿真图如下面两图所示。图7 分频器模块图8 分频器模块波形仿真结果3.2 正弦信号发生器设计dds(direct digital synthesizer)具有较高的频率分辨率,可以实现频率的快速切换,并且在频率切换时能保持相位的连续,很容易实现频率、相位、幅度的数字调制。本系统的正弦信号发生器模块就是基于dds技术设计的。dds原理图如下:图9 dds基本结构上图中m为相位累加器的位数。n为信号数据的位数。f为频率控制字。fclk 为系统的时钟。由dds原理知其基频为:fs
9、in = fclk/2m也即是设计的正弦信号发生器的精度为fsin。由以上知,当输入的频率控制字为f时,输出正弦波的频率为:fout = f* fsin = f*fclk/2m基于以上dds原理,系统选择16位的累加器。一个周期正弦波取64个采样点,在excel表格中可以用下拉单元格的方式迅速生成地址,地址范围为063,即波形表中每种波形每周期取64点。之后输入公式“=sin(a1/64)*2*3.1415926)”,再利用下拉单元格的方式,得到各个地址单元所对应得正弦函数值。以上得到的正弦函数表往往不能被d/a转换器直接利用,需要将其置映射到d/a转换器所能接受的数据空间内。设计中所用d/a
10、转换器为8位,其数据空间是0255,可以利用公式“=127.5*(1+b1)”来映射数据,影射后的数据为小数,还须对其取整,输入公式 “=int(c1)”。然后复制所得数据,在quartus ii平台中生成hex文件。由以上可得,系统需要使用6位地址线8位数据线的rom作为数据存储器。时钟为512分频(约为39khz)所得信号。具体电路图如图10所示。图10 正弦信号发生器电路图设计时将频率控制字设置为8192。也即输出的正弦波频率为4.88khz。仿真结果如图11所示。图11 正弦信号发生器模块波形仿真结果3.3 ask/psk模块设计从图二可以看到,ask和psk调制只需要一路载波。这样,
11、将ask和psk调制放在一个模块里设计,用k、a、p三个键控制不同调制信号的生成。k为ask、psk调制选择信号,k=0时进行ask调制,k=1时进行psk调制。a为ask的二进制基带信号,p为psk的二进制基带信号。具体设计模块图12所示。图12 ask/psk模块ask/psk模块的功能见表1。表1 ask/psk模块功能表输入输出功能kpasout0x000000000ask调制0x1sin10xsinpsk调制11xnot sin从表中ask调制中可以看到,在k=0的前提下,当a=0输出原信号,当a=1时输出为“00000000”。在实际设计中返回值并不是“00000000”,这是因为
12、输出的信号幅值至少是大于等于零的值,如果返回值是“00000000”,就导致输出的ask信号在两个波谷间传输基带信号。因此,在实际设计中返回值设置为“01000000”(128)。这样就能保证输出直观的ask信号。 ask/psk模块仿真结果如图13所示。图13 ask/psk模块仿真波形3.4 fsk模块设计从图六中可以看到,fsk调制需要两个不同频率的载波来传递基带信息。为了使设计简单方便,系统并没有直接采用两路载波信号。而是在一路正弦信号发生器之前通过基带信号控制不同频率控制字来实现不同载波的产生。具体模块设计如图九所示。图九中,k为fsk二进制基带信号,fout 为fsk调制电路的输出
13、,作为相位累加器的输人(即频率的控制字),fw0是fsk=0时输出频率的控制字, fw1是相对fsk=0时输出频率的控制字的一个增量,即二进制基带信号fsk=0时,fout=fw0,二进制基带信号fsk=1时,fout=fw0+fw1。具体设计模块如图14所示。图14 fsk模块fsk模块仿真波形如图15所示。图15 fsk模块仿真波形3.5 多路选择器设计通过以上分析知,ask/psk调制通过k键的高低电平控制只输出一路信号,fsk调制输出一路信号。另外,正弦信号发生器输出正弦波一路。因此,本设计中多路选择器设计为三选一多路选择器。通过两个按键控制波形输出。具体模块如图16所示。图16 多路
14、选择器模块多路选择器模块波形仿真结果如图17所示。图17 多路选择器模块仿真结果3.6 数模转换本系统数模转换器采用dac0832,数模转换模块如下图18所示。输出的模拟量与输入的数字量(dn-1*2n-1+d0*20)成正比,这就实现了从数字量到模拟量的转换。输入可有28(=256)个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,只能是256个可能值中的一个。本系统要求输出量是电压,而dac0832输出的是电流量,所以还必须经过一个外接的运算放大器转换成电压,这里选用op07集成运放,此运放具有极低的输入失调电压、极低的失调电压温漂能长期稳定工作等特点。图18
15、 d/a转换模块3.7 滤波器设计巴特沃思低通滤波电路,在通频带内外都有平稳的幅频特性,滤波输出的信号总会在第一个周期略微有些失真,但往后的幅频特性就非常的好。为了减少运放对滤波电路的负载效益,同时便于调整,我们选择两个二阶巴特沃思低通滤波器串联的方法,构成一个四阶巴特沃思低通滤波器,其原理如图19。电路中各参数可通过差表式软件filterlab生成,并稍加修改即可。图19 四阶巴特沃思滤波电路3.8 电平移位及放大模块设计正弦信号发生器通过d/a、滤波后的输出波形的幅值全都大于零,因此要设计一波形移位电路将幅值为零的点全部移到x坐标轴上,波形移位原理如下图20。波形移位部分,其核心部分是一电
16、压跟随器,电压跟随器的输出vo1=(vin-vp),所以输出的vo1就相当于在输入vin的基础上下移了vp伏,而vp又受可变电阻器rw1的控制,通过划动此变阻器理论上可将vin的波形向y轴负方向下移012v。为了让输出的波形可以手动调节幅值,在最后我们又增加了一级电压放大电路,放大模块的核心器件为集成运放op37,由模拟电路知识知,vout=-vin*rw2/r3,rw2/r3的范围是010,因此通过调节rw2可以使输出波形的峰峰值在010vo1间变化,即输出信号的峰峰值最小可到0v,最大可达33v。图20 波形移位和电压放大原理图3.9 系统总电路将以上各模块整机连接,即可得到图21的系统电
17、路。图21 系统电路图4 系统测试4.1 正弦信号测试结果从前面的分析知,正弦信号发生器时钟为39khz,累加器为16为。理论上输出频率范围为039khz,但实际上并不是这样。实际测试正弦信号最大频率超过20khz时就有一定的失真。这也是dds本身限制的。其输出频率最大只有时钟频率的百分之六十左右。因此,本次设计的正弦信号发生器是符合理论的。经多次测试得到本系统设计的正弦波输出频率为020khz。输出4.88khz时的波形如图22所示。图22 正弦波波形4.2 ask调制测试结果在载波为4.88khz,基带信号为1.22 khz时输出的ask调制波形如图23所示。图23 ask调制波形4.3
18、fsk调制测试结果在输入频率控制字为8192,固定增量也为8192,基带信号为1.22 khz时,输出的fsk波形如图24所示。图24 fsk调制波形4.4 psk调制测试结果在载波为4.88khz,基带信号为1.22 khz时输出的psk调制波形如图25所示。图25 psk调制波形5 结论从测试结果来看,该系统简单了达到了任务要求。整个系统基于dds技术,巧妙的结合了三种调制信号的特点,对调制模块进行了详细的介绍、设计及仿真。另外,本设计在对外围电路如da转换、滤波、电平移位及幅值放大电路等也做了相应的介绍,使系统更加完善。本系统在实现要求的同时,还存在以下的不足:1、正弦信号发生器的频率控
19、制字没有使用单片机控制,而是在quartus设计时固定设计了一个控制字。这样就不能是正弦波(也即是载波)任意设置。2、系统设计时还是采用了两个正弦信号发生器,实际只需要一个是可以满足题目要求的。导致了资源的浪费。3、本系统的基带信号是靠分频得到的,但实际的数字调制中绝大多数是用m序列作基带信号。为了让设计简单,设计时就没有考虑m序列发生器的设计。这也可能是懒惰的表现吧!尽管有以上的不足存在,但这些不足正是在经过这样一个课程设计的过程中发现的。我们每一个人都学到了很多很多。参考文献:【1】 潘松 黄继业 eda技术实用教程 科学出版社 2006年9月【2】 南利平 王亚飞等 通信原理简明教程 清
20、华大学出版社 2007年8月【3】 黄智伟 fpga系统设计与实践 电子工业出版社 2005年1月【4】 罗苑棠 cpld/fpga常用模块与综合系统设计实例精讲 电子工业出版社 2007年11月【5】 潘松 黄继业 eda技术与vhdl 清华大学出版社 2007年1月附录1、分频器程序library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity clkdiv is port(clk : in std_logic; -clk_div
21、2 : out std_logic; -clk_div4 : out std_logic; -clk_div8 : out std_logic; -clk_div16 : out std_logic;-clk_div32 : out std_logic;-clk_div256 : out std_logic;clk_div512 : out std_logic; -512分频clk_div16384 : out std_logic -16384分频); end clkdiv; architecture rtl of clkdiv is signal count : std_logic_vect
22、or(13 downto 0); begin process(clk) begin if (clkevent and clk= 1 ) then if(count=11111111111111 ) then count 0 ); else count = count +1; end if ; end if ; end process; -clk_div2 = count(0); -clk_div4 = count(1); -clk_div8 = count(2); -clk_div16 = count(3); -clk_div32 = count(4);-clk_div256 = count(
23、7);clk_div512 = count(8);clk_div16384 = count(13);end rtl;2、加法器程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity adder16 is port( a : in std_logic_vector(15 downto 0); b : in std_logic_vector(15 downto 0); s : out std_logic_vector(15 downto 0) );end adder16;architectu
24、re behav of adder16 is begin s=a+b;end behav;3、寄存器程序library ieee;use ieee.std_logic_1164.all;entity reg32b is port( load : in std_logic; din : in std_logic_vector(15 downto 0); dout : out std_logic_vector(15 downto 0) );end reg32b;architecture behav of reg32b is begin process(load,din) begin if load
25、event and load = 1 then dout = din; end if;end process;end behav;4、rom程序library ieee;use ieee.std_logic_1164.all;library altera_mf;use altera_mf.all;entity datarom isport(address: in std_logic_vector (5 downto 0);inclock: in std_logic ;q: out std_logic_vector (7 downto 0);end datarom;architecture sy
26、n of datarom issignal sub_wire0: std_logic_vector (7 downto 0);component altsyncramgeneric (clock_enable_input_a: string;clock_enable_output_a: string;init_file: string;intended_device_family: string;lpm_hint: string;lpm_type: string;numwords_a: natural;operation_mode: string;outdata_aclr_a: string;
27、outdata_reg_a: string;widthad_a: natural;width_a: natural;width_byteena_a: natural);port (clock0: in std_logic ;address_a: in std_logic_vector (5 downto 0);q_a: out std_logic_vector (7 downto 0);end component;beginq bypass,clock_enable_output_a = bypass,init_file = data.hex,intended_device_family =
28、cyclone ii,lpm_hint = enable_runtime_mod=yes, instance_name=rom1,lpm_type = altsyncram,numwords_a = 64,operation_mode = rom,outdata_aclr_a = none,outdata_reg_a = unregistered,widthad_a = 6,width_a = 8,width_byteena_a = 1)port map (clock0 = inclock,address_a = address,q_a = sub_wire0);end syn;5、ask/p
29、sk模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ap_sk is port( sin : in std_logic_vector(7 downto 0); k,a,p : in std_logic; sout : out std_logic_vector(7 downto 0) );end ap_sk;architecture behav of ap_sk isbeginprocess(a,k,p,sin)begin if k=0 then if a=0 then sou
30、t=10000000; else sout=sin; -ask调制 end if; elsif p=0 then sout = sin; else sout=not sin; -psk调制 end if;end process;end behav;6、fsk模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity f_sk is port( fw0,fw1 : in std_logic_vector(15 downto 0); k : in std_logic; fout : out
31、std_logic_vector(15 downto 0) );end f_sk;architecture behav of f_sk isbegin process(fw0,fw1,k) begin if k=1 then fout=fw0 ; else fout=fw0 + fw1;end if;end process;end behav;7、3:1多路选择器程序library ieee;use ieee.std_logic_1164.all;library lpm;use lpm.lpm_components.all;entity mux31 isport(data0x: in std_
32、logic_vector (7 downto 0);data1x: in std_logic_vector (7 downto 0);data2x: in std_logic_vector (7 downto 0);sel: in std_logic_vector (1 downto 0);result: out std_logic_vector (7 downto 0);end mux31;architecture syn of mux31 is-type std_logic_2d is array (natural range , natural range ) of std_logic;signal sub_wire0: std_logic_vector (7 downto 0);signal sub_wire1: std_logic_vector (7 downto 0);signal sub_wire2: std_logic_2d (2 downto 0,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 村综合农贸市场项目可行性研究报告-计划书
- 2025房地产买卖交易合同范本
- 高锰酸盐项目可行性研究报告建议书
- 盆栽项目可行性研究报告
- 2025年羊毛杉村里项目可行性研究报告
- 年产30万吨微生物复合肥料生产线建设项目可行性研究报告管理资料
- 2025违法合同的效力判定路径之辨识上
- 2025借款合同简单模版
- 2025脱硫系统委托运行、检修及维护合同样本
- 2025补签合同 英文范文
- 《环境保护产品技术要求 工业废气吸附净化装置》HJT 386-2007
- 化工过程安全管理导则学习考试题及答案
- 重庆市2023-2024学年七年级上学期期末考试数学试题(含答案)
- 银行下半年对公业务工作计划(13篇)
- 2024年公开招聘事业单位工作人员报名登记表
- 二级建造师继续教育考试题及答案
- 冀少版八年级下册生物期末复习知识点考点提纲
- 八年级语文上册《作文》专项测试卷及答案
- 《ISO56001-2024创新管理体系 - 要求》之26:“10改进”解读和应用指导材料(雷泽佳编制-2024)
- 《ISO56001-2024创新管理体系 - 要求》之23:“8运行-8.3创新过程”解读和应用指导材料(雷泽佳编制-2024)
- 函数的零点与方程的解 教学设计 高一上学期数学人教A版(2019)必修第一册
评论
0/150
提交评论