基于fpga的正弦信号发生器_第1页
基于fpga的正弦信号发生器_第2页
基于fpga的正弦信号发生器_第3页
基于fpga的正弦信号发生器_第4页
基于fpga的正弦信号发生器_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

摘要系统设计以ALTERA公司CYCLONEIIIFPGA开发板为硬件平台,以DDS技术为设计核心,运用SOPC和NIOS软核技术而总体设计实现。系统DDS模块实现1KHZ10MHZ正弦信号输出,频率步进包含10HZ1MHZ的10为数量级的所有步进,可以实现任一频率调节,1KHZ频率误差优于104;完成了调幅、调频、二进制ASK和二进制PSK调制的输出功能,并很好地满足了相应模块的指标,拥有很高的精确度和稳定度;实现了键盘、数码管、LED和串口的控制和显示,人机界面友好且易于操作,具有很好的使用价值。关键词DDS信号调制DACFPGANIOS目录摘要1目录21实验任务及要求311实验任务312实验要求3121基本要求3122发挥部分32设计方案选择421方案比较422系统设计方案43分模块设计与实现531硬件部分实现532DDS的设计实现633AM的设计实现734FM的设计实现7352ASK的设计实现8362PSK的设计实现937QUARTUS硬件设计1038NIOS软核控制1139人机界面设计114调试效果图125问题及解决方案146组员分工147总结与感想14参考文献15附录161实验任务及要求11实验任务设计一个可输出正弦波,频率可调的简易信号发生器。12实验要求121基本要求1、正弦波输出频率范围1KHZ10MHZ;2、具有频率设置功能,频率步进为100HZ;3、输出信号稳定度优于104;4、输出电压幅度在负载电阻50上的电压峰峰值VOPP1V;5、失真度用示波器观察时无明显失真;6、独立焊接、调试DAC904电路122发挥部分在完成基本要求任务的基础上,增加如下功能1、增加输出电压幅度在频率范围内负载电阻上正弦信号输出电压的峰峰值VOPP6V1V;2、产生模拟幅度调制(AM)信号在1MHZ10MHZ范围内调制度MA可在10100之间程控调节,步进量10,正弦调制信号频率为1KHZ,调制信号自行产生;3、产生模拟频率调制(FM)信号在100KHZ10MHZ频率范围内产生10KHZ最大频偏,且最大频偏可分为5KHZ/10KHZ二级程控调节,正弦调制信号频率为1KHZ,调制信号自行产生;4、产生二进制PSK、ASK信号在100KHZ固定频率载波进行二进制键控,二进制基带序列码速率固定为10KBPS,二进制基带序列信号自行产生;5、良好人机界面具有键盘控制频率(步进可调)和波形输出、LCD/串口/数码管显示频率和输出波形类型功能。2设计方案选择21方案比较系统分为软件设计和硬件设计两部分,软件部分主要是基于MATLAB、FPGAH和NIOS的程序设计,硬件部分包括D/A转换和增益放大电路。对于本次系统的设计,有以下三种设计方案方案一微处理器压控振荡器(VCO)LC正弦谐振电路;方案二专用的DDS芯片如AD9851主控电路;方案三FPGADAC904高速DA;方案一采用数控电压控制的压控振荡器VCO,运用电感和变容二极管构成LC正弦谐振电路,通过微处理器改变变容二极管的控制电压,达到电容值改变,从而实现正弦信号输出频率的数字控制。方案一电路复杂,受变容二极管的变容比限制,数控VCO的频率变化范围不宽,很难达到1KHZ10MHZ范围要求。方案二采用专用的DDS芯片。芯片外围电路简单,功耗低,性价比高。而且相位也可以通过写入控制字进行控制,可以方便地实现PSK功能,但是专用DDS芯片价格昂贵,而且系统电路较为复杂,集成度不高。方案三是在FPGA内部实现高速的多位数相位累加器,输出地址信号,控制读出波形存储器中存放的正弦波幅度数字信号,通过改变相位累加器的相位增量M,即地址间隔的改变,控制读出波形存储器一个周期正弦波幅值的数目,达到输出频率的控制。该方案对D/A速率要求高,电路集成度高。22系统设计方案本系统是以方案三为主导思想,以DDS原理为设计核心,首先采用MATLAB中DSP库的相应组件设计不同的模块,然后导出模块VHDL代码,在QUARTUS编程环境下生成并添加相应模块,最后通过NIOS软核编程控制。基本设计框架如图21。图213分模块设计与实现31硬件部分实现硬件主要包括FPGA开发板、D/A转换、增益放大。位于波形输出ROM后的D/A单元,是将数字量形式的波形幅值转换成所要求的合成频率的模拟量形式信号。由于储存波形的ROM具有14BIT的输出,所以采用工作时钟为100M的14位高速DAC芯片DAC904将FPGA输出的数字信号转换成模拟信号。DAC904是TI德州仪器推出的一款高速D/A数模转换芯片,拥有特性1、14位并行电流型DA;2、最高刷新率最高数据刷新率165MSPS3、供电模拟5V,数字33V;4、低功耗5V下功耗为170MW;DAC904连接如图31所示。图3132DDS的设计实现1971年,美国学者提出了以全数字技术,从相位概念出发直接合成所需波形的一种新的频率合成原理,称之为直接数字频率合成器DDS。直接数字频率合成的理论依据是采样定理,即先对一个完整周期的正弦波进行N点采样,然后把采样点存储在ROM中构成一个查找表,频率合成时,相位累加器在参考时钟的作用下控制ROM中数据的输出。ROM的输出经过D/A转换,将一个阶梯化的信号即采样信号通过一个理想的低通滤波器,就得到符合要求的模拟信号。只要对正弦信号相位的量化值进行简单的累加运算,就可以得到正弦信号的当前相位值,而用于累加的相位增量量化值决定了信号的输出频率FOUT,并呈现简单的线性关系。直接数字合成器DDS就是根据上述原理而设计的数字控制频率合成器。图32所示是一个基本的DDS结构,主要由相位累加器、相位调制器、正弦ROM查找表和D/A构成。图中的相位累加器、相位调制器、正弦ROM查找表是DDS结构中的数字部分,由于具有数控频率合成的功能,又合称为NCONUMERICALLYCONTROLLEDOSCILLATORS。图32相位累加器由N位加法器与N位累加寄存器级联构成。每来一个时钟脉冲FS,加法器将频率控制字K与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字K相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。DDS在MATLAB的设计电路如图33。BAFBAASKKNK11SIN1OUT2SINSIN图3333AM的设计实现振幅调制就是用低频调制信号去控制高频载波信号的振幅,使载波的振幅随调制信号成正比地变化。普通调幅信号可以表示为MA称为调幅系数或调幅度,表示载波振幅受调制信号控制的程度,MA1幅波产生失真,这种情况称为过调幅。根据AM原理,在已完成的DDS模块的基础上,将生成的1KHZ调制信号,先乘以一个多路选择器控制大小的系数MA,然后对正弦波添加直流分量,最后与DDS信号相乘,输出即为AM信号,MATLAB仿真效果如图34。图3434FM的设计实现FM同样也是利用低频调制信号去控制高频载波信号,不同的是FM调制是使载波的频TCOSTMUTUCACAM1MACUK率随调制信号的变化而变化,而振幅保持不变。在FM调制中,调制信号的幅度决定载波的偏移量,而调制信号的频率则决定载波的偏移变化率。FM输出波表达式如下MF为调频波的最大相移,又称调频指数,频率偏移为MF乘以调制信号频率。根据FM原理,在MATLAB里,在已完成的DDS的基础上,将生成的1KHZ调制信号乘以MF,加到DDS的相位上,也即正弦索引表之前,此时输出即为FM信号,调节MF可调节频偏大小,MATLAB仿真效果如图35所示。图35352ASK的设计实现振幅键控是正弦载波的幅度随数字基带信号而变化的数字调制。当数字基带信号为二进制时,则为二进制振幅键控。二进制振幅键控信号可以表示成具有一定波形形状的二进制序列(二进制数字基带信号)与正弦型载波的乘积,通常二进制振幅键控信号的产生方法有两种,一般的模拟幅度调制方法与数字键控方法实现,2ASK信号的波形随着的通断变化,所以又称为通断键控信号(缩写为OOK)。二进制振幅键控信号调制器如图36所示。图36COSSINFMMCFUUTTFMFKUM序列(即DEBRUIJN序列)又叫做伪随机序列、伪噪声PN码或伪随机码。可以预先确定并且可以重复实现的序列称为确定序列;既不能预先确定又不能重复实现的序列称随机序列;不能预先确定但可以重复产生的序列称伪随机序列。对于一个N级反馈移位寄存器来说,最多可以有2N个状态,对于一个线性反馈移位寄存器来说,全“0”状态不会转入其他状态,所以线性移位寄存器的序列的最长周期为2N1。当N级线性移位寄存器产生的序列AI的周期为T2N1时,称AI为N级M序列。ASK的伪随机信号我们采用MATLAB产生10KBPS的M序列模块,设计原理如图37所示。图37362PSK的设计实现在二进制数字调制中,当正弦载波的相位随二进制数字基带信号离散变化时,则产生二进制移相键控2PSK信号。通常用已调信号载波的0和180分别表示二进制数字基带信号的1和0。二进制移相键控信号的产生方法主要有两种。如图451所示。第一种方法是相乘法,只要数字基带信号为双极性码,并不含直流分量,即能用该方法来产生,如图451A;第二种方法是开关选通法,这种方法是产生一个载波的二重相位(对多相的移相键控应是单一载波的多重相位),以基带信号所代表的数值去选择这些相位,如图451B。当然,也可以是利用被控制的延迟提供所需的载波相移量,然后由基带信号通过开关阵列来控制相移量的大小。图38本系统设计的2PSK调制是在MATLAB中,用产生的M序列控制一个选择器,分别选择STE2PSKTCOSCTACOSCT0E2PSKT180STB0和1,这样,每次M序列发生变化之时,选择器的输出相应发生变化,用选择器的输出去控制DDS的相位,使相位发生180度反转,这就相当于M序列在跳变时,DDS相位就发生反转,MATLAB仿真效果如图38所示。图3837QUARTUS硬件设计在MATLAB里设计好每个模块之后,通过导出VHDL代码,得到相应QUANTUS文件,然后在QUARTUS工程里添加模块,通过SOPC_BUILDER,给CPU软核添加控制管脚,最后通过IDE开发环境编程控制这些模块,实现不同的功能。QUARTUS硬件设计如图39所示,第一个模块为集成的信号发生和调制模块,第二个模块为比较器,在键控调制模式下,比较器使正弦波变为相应方波,第三个模块为分频器,将100KH的方波分频为10KHZ,最后一个模块为M序列产生模块,工作时钟为上一级生成的10KHZ,这样生成的M序列即为10KBPS。在这四个模块中,第一个模块集成了DDS、AM、FM、2ASK和2PSK功能模块,输出信号给到DAC部分。图3938NIOS软核控制对在QUARTUS环境下设计好的硬件连接,需要编程进行相关控制,在NIOSIDE开发环境建立与QUARTUS硬件相关的工程C文件,编写C代码进行对软核CPU的控制。根据FPGA硬件,程序采用按键和串口中断进行不同模式切换以及不同模式下功能的选择,具体代码见附录。39人机界面设计系统人机界面使用了FPGA开发板提供的LED、数码管、按键和串口,主要实现以下功能1、按键或串口模式选择(DDS/AM/FM/2ASK/2PSK);2、按键或串口频率步进(10/100/1K/10K/100K/1M);3、按键或串口幅值增加(针对DDS输出);4、其他模块功能(MA步进、FM频偏选择、2ASK查看正弦波及M序列、2PSK查看正弦波及M序列);5、每种模式下频率和幅值设置;人机界面功能框图如图310所示图310系统总共分为五种模式,分别为DDS、AM、FM、2ASK、2PSK,每种模式下都有自己的按键功能,每种模式都设置了返回按键,方便进入和退出任一模式。系统串口可以实现和按键同样的功能,并且可以交互选择使用。数码管用来显示DDS频率,当频率小于10KHZ时,单位为HZ,当频率大于10KHZ时,单位为KHZ,最大可显示10MHZ。LED分为左边四个和右边四个来使用,左边四个显示当前模式对应的数字,右边四个显示当前模式下当前操作的按键数值或串口输入的数值。4调试效果图1AM调制2FM调制3FM调制频谱42ASK调制52PSK调制5问题及解决方案DDS数据输出为有符号数据与ADC芯片要求输入数据类型不一致;有符号的数据也即是含有负数的数据,我们使用的ADC是不能处理负数的,解决这个问题,需要将原来的DDS输出进行直流漂移,可以采用更改码表或者将输出加一个足够大的常量,最后将数据输出类型设置为无符号类型。DDS频率上限仅为1M左右,并且失真比较严重;ADC的工作时钟以及DDS模块的工作时钟影响最终输出的频率,更改ADC模块工作时钟为100M(原来为20M),即解决问题,频率上限达到20M,并且波形很好。2ASK和2PSK出现毛刺,并且波形变化位置变动;2ASK和2PSK都需要用到M序列,这个M序列还是比较关键的,指标要求M序列必须为10K,这就要求M序列需要单独的工作时钟,而由于

温馨提示

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

评论

0/150

提交评论