实现DDS信号发生器信息处理课程设计.doc
《实现DDS信号发生器信息处理课程设计.doc》由会员分享,可在线阅读,更多相关《实现DDS信号发生器信息处理课程设计.doc(25页珍藏版)》请在沃文网上搜索。
1、任务书任务一:实现DDS信号发生器 (一)输出波形的频率范围100Hz20kHz; (二)具有频率设置和频率步进功能,频率步进50Hz; (三)在100Hz20kHz频率范围内,增加矩形波输出信号,频率可任意预置, 频率步进20Hz,频率精度0.05%; 任务二:简易数字信号传输性能分析仪设计 (一) 设计并制作一个数字信号发生器; (二)设计三个低通滤波器,用来模拟传输性道的幅频特性。 (三)设计一个伪随机信号发生器用来模拟信道噪声。 (四) 利用数字信号发生器产生的时钟信号进行同步,显示数字信号的信号眼图,并测试眼幅度。 任务三:电子琴设计 (一) 掌握常用的音阶产生原理,运用仿真研究其性
2、能;(二) 根据VHDL的语法规则,对系统的逻辑行为进行描述,然后通过综合工具进行电路结构的综合、编译、优化。扩展为多个音阶的电子琴,并利用FPGA内部的ROM装上多首歌曲,可用手动或自动选择歌曲。(三)设计控制输入电路、FPGA、显示电路和扬声器电路,实现声音滤波系统的整体实现。 目录任务一:实现DDS信号发生器1(一)设计目的1(二)设计原理1(三)设计结果3(四)心得体会5任务二:简易数字信号传输性能分析仪设计6(一)设计目的6(二)设计原理6(三)设计结果7(四)心得体会10任务三:电子琴设计11(一)设计目的11(二)设计原理11(三)电子琴各模块的设计实现12(四)设计结果17(五
3、)心得体会20四 结束语21五附录22六参考文献23 任务一:实现DDS信号发生器(一)设计目的 1、掌握DDS基本结构 2、掌握DSPBuilder层次化设计3、 掌握DSPBuilder中SignalTapII的使用 4、掌握频率设置和频率步进功能的算法设计(二)设计原理1、DDS电路的设计算法 直接数字频率合成(Direct Digital Synthesizer DDS)技术是从相位概念出发直接合成所需波形的一种新的频率合成技术,这种方法不仅可以产生不同频率的正弦波,而且可以控制波形的初始相位。还可以用DDS方法产生任意波形(AWG).DDS电路的工作原理如图1所示:图1其工作过程为:
4、 (1)将存于数表中的数字波形,经数模转换器D/A,形成模拟量波形。 (2)两种方法可以改变输出信号的频率:改变查表寻址的时钟CLOCK的频率,可以改变输出波形的频率。 改变寻址的步长来改变输出信号的频率,DDS即为对数字波形查表的相位增量由累加器对相位增量进行累加,累加器的值作为查表地址。 (3)D/A输出的阶梯形波形,经低通(或带通)滤波,成为质量符合需要的模拟波形。 2、DDS实现正弦波的算法设计 (1)该DDS系统的核心是相位累加器,它由一个加法器和一个位相位寄存器组成,每来一个时钟,相位寄存器以步长M增加,相位寄存器的输出与相位控制字相加,然后输入到正弦查询表地址上。正弦查询表包含一
5、个周期正弦波的数字幅度信息,每个地址对应正弦波中0度到360度范围的一个相位点。查询表把输入的地址相位信息映射成正弦波幅度的数字量信号,驱动DAC,输出模拟量。相位寄存器每经过2N/M个fc时钟后回到初始状态,相应的正弦波频率位为: (1)频率控制字与输出信号频率和参考时钟频率之间的关系为: (2)其中N是相位累加器的字长。因为取值范围为由以上公式解得:范围是100Hz到20kHz之间,所以N的取值范围为11到19.频率控制字与输出信号频率成正比,可见控制M就能得到任意频率的信号。 (2)通常用频率增量来表示频率合成器的分辨率,DDS的最小分辨率为: (3)这个增量也就是最低的合成频率。由取样
6、定理,所产生的信号频率不能超过时钟频率的一半,因此最高的合成频率为: (4)在实际运用中,为了保证信号的输出质量,输出频率不要高于时钟频率的1/4,即以避免混叠或谐波落入有用输出频带内。 (3)正弦ROM查询表完成输出信号相位到幅度的转换,它的输入是相位寄存器和相位控制字之和,其实也就是ROM的地址值(宽度为P位);ROM查找输出的数据(也为P位)送往D/A转换成模拟信号。在实际应用中,P不能太大,如果P太大,会导致ROM容量的成倍上升,而输出受D/A精度的限制未有很大改善。图2为相位累加器工作示意图,从图中可以看出,虽然相位累加器的位数为N为,但是只取高P位进行ROM查表。(三)设计结果 1
7、.在MATLAB里搭建的DDS信号发生器: 图2DDS信号发生器设计Phaseword(AltBus)模块起到相位调整的输入作用,一共32位。Freqword(AltBus)模块起到频率调整的输入作用,一共32位。AMP(AltBus)模块起到幅值调整的输入作用,一共8位。Delay(Storage)模块起到延时作用,图中是单位延时。ParallelAdderSubtractor1(Arithmetic)模块起到两个输入相加的作用,图中起到相位累加的功能。BusConversion(IO&Bus)模块起到调整总线位宽的作用,图中是从输入的32位调整为输出的10位。LUT(Storage)模块起
8、到保存正弦波值的作用,运用算法公式127*sin(0:2*pi/(210):2*pi)+128来输出正弦波。Product(Arithmetic)模块起到乘法作用,图中起到正弦波值与新输入的幅值进行相乘,来得到想要的波形的功能。DDSOut(AltBus)模块起到输出调整后的正弦波的作用。 2.MATLAB搭建的DDS仿真波形: 可以尝试改变DataIn的值观察不同频率下的波形。 图3仿真波形 3.在QuartusII中的顶层图形设计: 在新工程中搭建整个电路,调用dds子模块,搭建管口,配置管脚后自动生成下面的整个电路图。 、 图4dds电路模块 图5顶层图形设计 (四)心得体会经过这次设计
9、,我了解了DDS工作的特点和方式,掌握了在Quartus II环境下对FPGA设计,构建DDS的技术,其所产生的信号具有频率分辨率高、频率切换速度快、频率切换时相位连续,输出相位噪声低和可以产生任意波形等诸多优点。这是我接触FPGA语言的第一个设计,在这次设计中,我知道了我们要用到哪些软件,比如MATLAB,Dspbuilder,Quartus II.做DDS过程中,首先要先在MATLAB中搭建电路图,电路中的器件是要在Dspbuilder里找,在搭建的过程中,也相应了解了这些器件的功能,最后搭建完运行了一下,看波形是不是自己想要得到的。得到想要的,就要开始VHDL导出。在这个工程中。我遇到了
10、一些问题,无法导出文件,后来才知道这个软件要设环境变量,设完以后终于能成功导出文件。接下来就是建立Quartus II工程,在建的时候要仔细工程名,要跟导出的文件名一样,这样后面的编译才能通过。在建立图形设计文件也出现了一点问题,PDF文件里没有写明要新建一个文件,然后我就一直找都找不到,后来经老师操作才明白。新建完后打开电路图模块,开始搭建完整的电路,搭建完后进行管脚配置,我在这里学到了两种管脚配置的方法,一种是手动的把管脚一个个配上,一种是直接找到工程文件里的qsf文件,把管脚信息直接粘贴到这个文件中。这个地方我花的时间比较多,但也学到了不少。下面就要用到SignalTapII工具,先建立
11、stp文件,把一些需要的参数填进去,保存后进行再次编译,与DE2板子相连接后下载到里面,回到SignalTapII中,点击“AutoAnalysis”,自动分析便开始,在“data”栏里看到DDSOut信号不停地变换,说明此时已经可以观察到FPGA内DDSOut的信号变换。 设计流程遇到的问题都解决后,发现自己对不管是软件还是FPGA语言都有了一定的认知,有了解决问题的一些能力,为下次的设计打下了基础,能节省不少的时间,不用绕弯子。任务二:简易数字信号传输性能分析仪设计(一)设计目的 1、掌握DSP Builder的高级用法2、掌握M序列的vhdl语言编写 3、 运用M序列的算法设计实现数字信
12、号发生器 4、掌握低通滤波器的设计方法 (二)设计原理 1、伪随机序列设计 在数字通讯领域,为了提高数字信号的传输质量,必须对传输的数字信号在发送端做编码操作,在接收端做译码操作。但是在数字传输系统中,由于载有的信息在时间上往往是不均匀的(如数字语音信号),对应的数字序列编码的特性,不利于数字信号的传输。因此,可以通过数字基带信号预先进行“随机化”处理,使得信号的频谱在通带内平均化,改善数字信号的传输;然后在接收端进行译码操作,恢复到原来的信号。伪随机序列常用于这类加扰和解扰操作。下面以一类伪随机序列,即m序列为例,使用DSP Builder建立一个伪随机序列发生器。 M序列是指最长线性反馈移
13、位寄存器序列,是一种比较常见的伪随机序列发生器,可由线性反馈移位寄存器(Linear FeedBack Shift Register,LFSR)来产生。 图1 线性反馈移位寄存器的构成其多项式的表达式为: 在图1中所示的加法和乘法都是指模二运算中的乘法和加法,即逻辑与和逻辑异或。要产生最长的线性反馈移位寄存器序列,其特征多项式必须是n次本原多项式,如n=8。可以产生m序列的8级LFSR的特征多项式。如下: 上面公式可以生成的m序列的周期为。 2、曼彻斯特码设计 曼彻斯特编码,又称数字双向码。 在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示“1”
14、,从低到高跳变表示“0”, 利用硬件方法实现曼彻斯特编码的解调,电路复杂,实现较为困难由于曼彻斯特码每一位中间都有跳变信号,那么多次检测2个输入编码上升沿的时间间隔,可取间隔的最小值即为曼彻斯特码的数据率。已知曼彻斯特码时钟频率之后,就可以通过数字锁相的方式实现曼彻斯特码的码元和时钟同步。 图2 曼彻斯特码的码型结构图本次设计是将m序列输出与时钟相异或可得曼彻斯特码输出。3、滤波器设计:用有关软件制作三个低通滤波器,分别实现f=100KHz低通滤波器, f=200KHz低通滤波器, f=500KHz低通滤波器。(三)设计结果 1.用MATLAB搭建的m序列电路: 这个电路图主要实现了,图中有8
15、个延时器,代表次数,有一个异或器,起到相加的作用,有两个取反器,主要是由于一开始数值为0,取反后变1,才能开始后面的工作,最后输出波形图。 图3 m序列电路 2.m序列仿真波形: 图4 m序列波形 3.计数器-十分频 代码见附录 4.Quartus II中的整体电路: 包括十分频计数器,m序列生成,曼彻斯特码输出。曼彻斯特码是由时钟信号与m序列相异或而得。 图5 整体电路 5.曼彻斯特码波形(第四行波形): 图6 曼彻斯特码波形 6.三个滤波器设计电路: 用multisim软件搭建滤波器电路图,分别实现了f=100KHz低通滤波器, f=200KHz低通滤波器, f=500KHz低通滤波器。
16、图7 三个滤波器电路(四)心得体会这次设计主要了解了m序列和曼彻斯特码的产生过程,以及制作低通滤波器的流程。在做曼彻斯特码时也相继的遇到了许多困难,在解决的过程中,感受良多。首先制作m序列,按照任务书要求,在MATLAB里画出m序列的电路图,观察波形是否正确,在看波形时也了解了m序列产生规律,可以手动推出数据,再看波形,检查是否正确。然后就导出VHD文件,成为一个产生m序列的子模块,后面建工程时会用到,因为曼彻斯特码是由m序列和时钟信号相异或才得到的,为了在后面的波形图像上三个图形能对齐,正确显示波形,就要再写一个十分频计数器,我觉得写十分频计数器不难,难的是在新建工程并且搭建工程电路的时候,
17、总会出现各种各样的编译错误,解决过程是很考验人的耐心的。比如哪里的接口与模块的名字不一致,这个细小错误我碰到了好几次,编译成功后就可以新建波形文件,把接口全部导入进去并运行,就出来了波形,做到这我就有一种苦尽甘来的感觉。在做低通滤波器的工程中,由于指标要求给的比较详细,很快就把滤波器给搭建出来了。通过这次设计让我懂得了如何将m序列体现以及曼彻斯特码输出,增加了这方面的知识,为以后有关这方面的设计打下基础。任务三:电子琴设计(一)设计目的 1、了解电子琴各个模块的功能。2、用FPGA语言写出每个模块,把模块组合一起形成完整的电子琴程序。3、了解并运用DE2电路板。4、学会如何把电子琴程序加载到D
18、E2板上,在板上实现音乐播放。 (二) 设计原理电子琴的设计原理主要考虑实现以下功能:1.每个音符都有自己的固有频率,由频率的不同就决定了发出不同的音调。2.一首乐曲的组成不仅仅是音调,还包括每个音调持续时间的长短,也就是我们通常说的音长。3.需要建立一个ROM,存放不同歌曲,在板上能实现切换不同歌曲。采用FPGA来设计电子琴,原理图如图1: FPGA显示电路控制输入电路扬声电路 图1 采用FPGA设计的电子琴原理方框图控制输入电路主要是为用户设计的,起到一个输入控制的作用.FPGA是现场可编程逻辑器件,也是本设计方案的核心内容,它是实现电子琴运作的主要控制模块.由设计者把编好的VHDL程序烧
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实现 DDS 信号发生器 信息处理 课程设计