实验一双音多频信号发生器(2013)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验一、双音多频信号发生器本实验需要产生两个不同频率的正弦信号,其中一个我们把它设定为750HZ,另外一个设定为1500HZ,然后将两个信号叠加在一起。我们知道双音多频信号是在两个不同频率正弦波叠加的基础上在100ms时间内产生至少45ms的信号,然后剩下的时间保持静音。在这里我们用一个计数器来控制时间。首先进入Matlab,在菜单栏选择FileNewModel新建一个模型文件。并给这个模型文件取名保存,本示例中,将文件保存为dtmf.mdl。在dtmf文件窗口的工具栏点击LibraryBrowser按钮,打开SimulinkLibraryBrowser窗口。在SimulinkLibraryBrowser窗口中,点击展开AlteraDSPBuilder目录,可以看到DSPBuilder工具支持的各种模型和组件。这些组件可以被Simulink方便的调用来建立模型,在设计完成并验证通过之后,DspBuilder工具能将其直接转化成硬件描述语言,从而在硬件上实际运行并验证设计。在SimulinkLibrary中选择AlteraDSPBuilderBlocksetRateChangeClock,将输入频率设置为24khz,改名为clk。在SimulinkLibrary中选择SimulinkSourcesPulseGenerator,命名为Pulse,参数设置成如下所示再添加一个计数器模块用来计数控制后面的信号输出,在SimulinkLibrary中选择AlteraDSPBuilderBlocksetArithmeticIncrementDecrement,命名为Inc,输出位宽设置成11位,因为采样频率为24K,在100ms应该有2400个点,50ms能记1200个点。让计数器的值与设定的常数1024做比较,当计数超过1024时,输出一个低电平,让随后产生的双音多频信号保持静音。参数设定为:计数器的复位端接地,模块在IO&BUSGND中,参数不做任何改动添加常数,值设定为1024,AlteraDSPBuilderBlocksetIO&BUSConstant,命名为Con,参数设定:添加一个比较器AlteraDSPBuilderBlocksetArithmeticComparator,命名为Compare,设定成,ab。然后添加正弦波发生模块:先加一个计数器模块,改名为Inc1,参数设定:输出位宽定为5,在SimulinkLibrary中选择AlteraDSPBuilderBlocksetStorageLUT,命名为f750。向模型中添加一个查找表,双击LUT弹出参数配置窗口,将数据类型设置为有符号整形,输出数据宽度设置为8位,查找表地址线设置为5,MATLABArray参数设置为127*sin([0:2*pi/(2^5):2*pi])。也就是在查找表中放一个周期的数据,共32点。根据采样频率及计数器的位宽就可以计算出产生的信号为750HZ。参数如下:接着产生一个高频信号,同理添加计数器和查找表,分别命名为Inc2和f1500。参数如下:可以计算这个高频信号频率为1500HZ。在SimulinkLibrary中选择AlteraDSPBuilderBlocksetArithmeticPipelinedAdder,改名为Add。向模型中添加一个加法器,双击PipelinedAdder,弹出参数配置窗口。将数据类型设置为有符号整形,数据宽度设置为8位,Direction设置为ADD。再接一个输出端口,在io&bus中的output,改名为dtmfout。最后接一个示波器,用来观察双音多频信号。双击滤波器,点击,滤波器设置为:3路信号,分别接两路正弦信号,跟一路双音多频信号。如下图:在dtmf窗口的菜单,选择SimulationConfigurationParamters…,在利用Simulink进行仿真之前,先对仿真做参数设置。为了在逻辑分析仪中能够观察到完整的信号波形,我们需要用一个较低频率的采样信号来设置观察,因此需要在原来的模型基础上引出这个信号clk_out,参见下图,将其添加到你的mdl文件中clk_base的设置如下图clk_add设置如下图clk_Dlay设置如下图clk_BW设置如下图clk_out设置如下图仿真结果如图所示:整个连线如图所示:总结:我们可以产生任意频率的正弦波信号,关键在于查找表中所放的数据。如果像本试验中的一样,只在查找表中放一个周期的波形数据,那么所占的系统内存是比较少的,但是却不能产生任意频率的信号,比如在这里,定下采样频率24K后,我们把计数器位宽定为5的话,那么所产生的正弦波频率也就跟着确定了为24K/2^5=750HZ,位宽少一位频率也就扩大一倍。我们还可以利用在查找表中放多个周期的数据来实现任意频率的信号,假如我们要产生1000HZ的信号,那么在查找表中就可以放127*sin([2*pi*1000(0:500)/24k])。500可以改变,根据你所要存放数据周期数来确定。但是相比而言就占了更多的资源。注意:有几处需要修改的地方,在信号叠加部分,加法器选用ParallelAdderSubtractor,还有输出的位宽需要改成9。因为正弦波的输出值在-127到+127之间,占的位宽为8位,叠加之后在-254到+254之间,所以双音多频信号的输出位宽至少应为9位。为了在逻辑分析仪中能够观察到完整的信号波形,我们需要用一个较低频率的采样信号来设置观察,因此需要在原来的模型基础上引出这个信号clk_out,参见下图,将其添加到你的mdl文件中,修改后如下图所示SignalCompiler转成硬件用QuartusⅡ打开后缀为.qpf的文件,就打开了这个硬件工程,AssignmentDevice中指定开发板,要视你手上的开发板而定,点击中的UnusedPins将没有用到的管脚置为三态,如下图然后全编译一遍驱动的安装:将DE2接上,如果没有装驱动的话,驱动的安装目录如下,请大家自行安装:接下来点击菜单工具栏“Programmer”按钮进入下载页面,下载工程生成的烧写文件到FPGA芯片,首先要配置下载工具,点击“HardwareSetup”,进入下载工具设置页面出现如下界面,如果没有sof文件的话,就点击AddFile按钮将sof文件添加进来,如下:AssignmentPins分配管脚:Clock——PIN_N2clk_out——PIN_AC18(SW5)clc——PIN_A14Signaltap配置:选择“File”菜单,点击“New”,在弹出的New对话框中,选择Verification/DebuggingFiles下的SignalTapIILogicAnalyzerFile,如图所示:SignalTap的相关配置:在JTAGChainConfiguration窗口,点击Hardware栏的Setup…按钮,弹出HardwareSetup对话框:双击“Availablehardwareitems”栏中的“USB-Blaster”选项,单击“Close”关闭对话框,此时在“JTAGChainConfiguration”窗口的“Hardware”栏将显示“USB-Blaster”字样,同时Device栏将显示“@1:EP2C70(0x020B60DD)”字样,此为自动识别到的FPGA芯片。SOFManager栏,点击Browse按钮,在弹出的SelectProgrammingFile对话框选中dtmf.sof文件,点击。在Setup窗口,双击空白处弹出NodeFilter对话框,点击List列出列出信号列表,双击dout信号,此时在SelectedNodes栏列出了已选信号dout,(可以根据需要,任意添加希望观察的信号)点击OK关闭对话框。SignalConfiguration栏,点击Clock栏后的browse按钮,选择逻辑分析仪的工作时钟,在弹出的NodeFilter对话框,点击List列出信号列表,双击所需观察的信号,点击OK关闭对话框。其他设置如图示:此时SignalTap的设置已经全部完成,保存设置,名字任取,此处保存为stp1.stp,如弹出确认对话框,选择Yes。工具栏按钮,分别表示:Run、Analysis、AutoAnalysis、StopAnalysis、ReadData。然后再进行综合编译,完成以后,就可以下载“.sof”工程文件到FPGA芯片了,点击ProgramDevice按钮进行芯片烧写。烧写完成后,点击“AutoAnalysis”按钮运行逻辑分析仪。此时在芯片内部运行的信号数据,已经通过JTAG链读取到计算机,并在Data窗口显示。设定完后重新全部编译一遍,就可以下载观察逻辑分析仪捕捉的信号,从结果看出观察到的信号与Simulink中是完全吻合的。为了便于观察,在dout栏点击右键,在弹出的对话框中选择BusDisplayFormat栏的UnsignedLineChart选项,如下图所示:添加D/A转换模块在alteradspbuilderblockset-boards-cycloneIIep2c70中选择和如下图修改后SignalCompiler转成硬件D/A信号可在板子的DACCHANE通过示波器观察注意自己添加的是通道A还是通道B(也可以不去掉DA处的output输出直接接D2A)D2A里是无符号14位数,由于之前产生信号为有符号数,要把两个正弦信号的幅值增加127使其大于0,类型改为无符号数输出。为了防止溢出应把output的位宽增加1位。上图显示为频率为697与1477与本实验报告上不同.还可以更改为其他频率只需在lut中更改参数,同时要考虑地址大小是否能完成一个周期的输出。然后点击Start,下载硬件程序到平台中。

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功