网站大量收购独家精品文档,联系QQ:2885784924

实验一双音多频信号发生器1.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一双音多频信号发生器1

实验一、双音多频信号发生器 本实验需要产生两个不同频率的正弦信号,其中一个我们把它设定为750HZ,另外一个设定为1500HZ,然后将两个信号叠加在一起。我们知道双音多频信号是在两个不同频率正弦波叠加的基础上在100ms时间内产生至少45ms的信号,然后剩下的时间保持静音。在这里我们用一个计数器来控制时间。 首先进入Matlab,在菜单栏选择 FileNewModel新建一个模型文件。并给这个模型文件取名保存,本示例中,将文件保存为dtmf.mdl。 在dtmf文件窗口的工具栏点击Library Browser按钮,打开Simulink Library Browser窗口。 在Simulink Library Browser窗口中,点击展开Altera DSP Builder目录,可以看到DSP Builder工具支持的各种模型和组件。这些组件可以被Simulink方便的调用来建立模型,在设计完成并验证通过之后,DspBuilder工具能将其直接转化成硬件描述语言,从而在硬件上实际运行并验证设计。 在Simulink Library中选择Altera DSP BuilderRate Changeclockaltr,将输入频率设置为24khz,改名为clk。 在Simulink Library中选择SimulinkSourcesPulse Generator,命名为Pulse,参数设置成如下所示 再添加一个计数器模块用来计数控制后面的信号输出,在Simulink Library中选择Altera DSP BuilderArithmeticIncrement Decrement,命名为Inc,输出位宽设置成11位,因为采样频率为24K,在100ms应该有2400个点,50ms能记1200个点。让计数器的值与设定的常数1024做比较,当计数超过1024时,输出一个低电平,让随后产生的双音多频信号保持静音。参数设定为: 计数器的复位端接地,模块在IOBUS中,如下: 添加常数,值设定为1024,Altera DSP BuilderIOBUSConstant,命名为Con,参数设定: 添加一个比较器Altera DSP BuilderArithmeticComparator,命名为Compare,设定成,ab。 然后添加正弦波发生模块: 先加一个计数器模块,改名为Inc1,参数设定:输出位宽定为5, 在Simulink Library中选择Altera DSP BuilderStorageLUT,命名为f750。向模型中添加一个查找表,双击LUT弹出参数配置窗口,将数据类型设置为有符号整形,输出数据宽度设置为8位,查找表地址线设置为5,MATLAB Array参数设置为127*sin( [0:2*pi/(2^5):2*pi] )。也就是在查找表中放一个周期的数据,共32点。根据采样频率及计数器的位宽就可以计算出产生的信号为750HZ。参数如下: 接着产生一个高频信号,同理添加计数器和查找表,分别命名为Inc2和f1500。参数如下: 可以计算这个高频信号频率为1500HZ。 在Simulink Library中选择Altera DSP BuilderArithmeticPipelined Adder,改名为Add。向模型中添加一个加法器,双击Pipelined Adder,弹出参数配置窗口。 将数据类型设置为有符号整形,数据宽度设置为8位,Direction设置为ADD。 再接一个输出端口,在iobus中的output,改名为dtmfout。 最后接一个示波器,用来观察双音多频信号。滤波器设置为:3路信号,分别接两路正弦信号,跟一路双音多频信号。 在dtmf窗口的菜单,选择SimulationConfiguration Paramters…,在利用Simulink进行仿真之前,先对仿真做参数设置。 仿真结果如图所示: 整个连线如图所示: 总结: 我们可以产生任意频率的正弦波信号,关键在于查找表中所放的数据。如果像本试验中的一样,只在查找表中放一个周期的波形数据,那么所占的系统内存是比较少的,但是却不能产生任意频率的信号,比如在这里,定下采样频率24K后,我们把计数器位宽定为5的话,那么所产生的正弦波频率也就跟着确定了为24K/2^5=750HZ,位宽少一位频率也就扩大一倍。我们还可以利用在查找表中放多个周期的数据来实现任意频率的信号,假如我们要产生1000HZ的信号,那么在查找表中就可以放127*sin( [2*pi*1000(0:500)/24k] )。500可以改变,根据你所要存放数据周期数来确定。但是相比而言就占了更多的资源。 注意: 有几处需要修改的地方,在信号叠加部分,加法器选用 Parallel Adder Subtract

您可能关注的文档

文档评论(0)

almm118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档