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

更新时间:2023-10-02 23:05:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一、双音多频信号发生器

本实验需要产生两个不同频率的正弦信号,其中一个我们把它设定为750HZ,另外一个设定为1500HZ,然后将两个信号叠加在一起。我们知道双音多频信号是在两个不同频率正弦波叠加的基础上在100ms时间内产生至少45ms的信号,然后剩下的时间保持静音。在这里我们用一个计数器来控制时间。

首先进入Matlab,在菜单栏选择 File>New>Model新建一个模型文件。并给这个模型文件取名保存,本示例中,将文件保存为dtmf.mdl。

在dtmf文件窗口的工具栏点击Library Browser按钮,打开Simulink Library Browser窗口。 在Simulink Library Browser窗口中,点击展开Altera DSP Builder目录,可以看到DSP Builder工具支持的各种模型和组件。这些组件可以被Simulink方便的调用来建立模型,在设计完成并验证通过之后,DspBuilder工具能将其直接转化成硬件描述语言,从而在硬件上实际运行并验证设计。

在Simulink Library中选择Altera DSP Builder Blockset>Rate Change>Clock,将输入频率设置为24khz,改名为clk。

在Simulink Library中选择Simulink>Sources>Pulse Generator,命名为Pulse,参数设置成如下所示

再添加一个计数器模块用来计数控制后面的信号输出,在Simulink Library中选择Altera DSP Builder Blockset>Arithmetic>Increment Decrement,命名为Inc,输出位宽设置成11位,因为采样频率为24K,在100ms应该有2400个点,50ms能记1200个点。让计数器的值与设定的常数1024做比较,当计数超过1024时,输出一个低电平,让随后产生的双音多频信号保持静音。参数设定为:

计数器的复位端接地,模块在IO&BUS>GND中,参数不做任何改动

添加常数,值设定为1024,Altera DSP Builder Blockset>IO&BUS>Constant,命名为Con,参数设定:

添加一个比较器Altera DSP Builder Blockset>Arithmetic>Comparator,命名为Compare,设定成,a

然后添加正弦波发生模块:

先加一个计数器模块,改名为Inc1,参数设定:输出位宽定为5,

在Simulink Library中选择Altera DSP Builder Blockset>Storage>LUT,命名为f750。向模型中添加一个查找表,双击LUT弹出参数配置窗口,将数据类型设置为有符号整形,输出数据宽度设置为8位,查找表地址线设置为5,MATLAB Array参数设置为127*sin( [0:2*pi/(2^5):2*pi] )。也就是在查找表中放一个周期的数据,共32点。根据采样频率及计数器的位宽就可以计算出产生的信号为750HZ。参数如下:

接着产生一个高频信号,同理添加计数器和查找表,分别命名为Inc2和f1500。参数如下:

仿真结果如图所示:

整个连线如图所示:

总结:

我们可以产生任意频率的正弦波信号,关键在于查找表中所放的数据。如果像本试验中的一样,只在查找表中放一个周期的波形数据,那么所占的系统内存是比较少的,但是却不能产生任意频率的信号,比如在这里,定下采样频率24K后,我们把计数器位宽定为5的话,那么所产生的正弦波频率也就跟着确定了为24K/2^5=750HZ,位宽少一位频率也就扩大一倍。我们还可以利用在查找表中放多个周期的数据来实现任意频率的信号,假如我们要产生1000HZ的信号,那么在查找表中就可以放127*sin( [2*pi*1000(0:500)/24k] )。500可以改变,根据你所要存放数据周期数来确定。但是相比而言就占了更多的资源。

注意:

有几处需要修改的地方,在信号叠加部分,加法器选用 Parallel Adder Subtractor,还有输出的位宽需要改成9。因为正弦波的输出值在-127到+127之间,占的位宽为8位,叠加之后在-254到+254之间,所以双音多频信号的输出位宽至少应为9位。为了在逻辑分析仪中能够观察到完整的信号波形,我们需要用一个较低频率的采样信号来设置观察,因此需要在原来的模型基础上引出这个信号clk_out,参见下图,将其添加到你的mdl文件中,修改后如下图所示

SignalCompiler转成硬件

用Quartus Ⅱ打开后缀为.qpf的文件,就打开了这个硬件工程,Assignment>Device中指定开

发板,要视你手上的开发板而定,点击的管脚置为三态,如下图

中的Unused Pins将没有用到

然后全编译一遍驱动的安装:

将DE2接上,如果没有装驱动的话,驱动的安装目录如下,请大家自行安装:

接下来点击菜单工具栏

“Programmer”按钮进入下载页面,下载工程生成的烧写文件

到FPGA芯片,首先要配置下载工具,点击“Hardware Setup”,进入下载工具设置页面

出现如下界面,如果没有sof文件的话,就点击Add File 按钮将sof文件添加进来,如下:

本文来源:https://www.bwwdw.com/article/rgxd.html

Top