一种谱分析Matlab与VHDL代码转换方法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种谱分析Matlab与VHDL代码转换方法

一种谱分析Matlab与VHDL代码转换方法   【摘 要】本文讨论由Matlab生成VHDL代码的原理,并介绍了利用System Generator及DSP Builder将Simulink模型转换为VHDL代码的方法。这样设计者可以利用Simulink高层次的设计仿真工具进行系统级设计,有助于在设计早期发现错误和应对系统复杂性不断增加的挑战,使用集成转换工具能够方便地进行VHDL代码的生成并进行硬件测试,极大地提高了设计效率。   【关键词】MATLAB;傅里叶变换;频域分析;VHDL   频谱分析在生产实践和科学研究中有着广泛的应用。其中,快速傅里叶变换(Fast Fourier Transform,FFT)是数字信号处理的最基本技术之一。近年来,随着现场可编程门阵列FPGA(Field Programmable Gate Array)技术的迅猛发展,利用高并行度、高速度的FPGA芯片来实现FFT已成为必然趋势。   本文将以MATLAB为工具,对信号与系统在联系时间系统的频域进行分析。   一、Matlab编程实现FFT实践频谱分析   步骤如下:   1.用Matlab产生正弦波,矩形波,以及白噪声信号,并显示各自时域波形图。   2.进行FFT变换,显示各自频谱图,其中采样率,频率、数据长度自选。   3.做出上述三种信号的均方根图谱,功率图谱,以及对数均方根图谱。   4.用IFFT傅立叶反变换恢复信号,并显示恢复的正弦信号时域波形图。   正弦波、矩形波以及白噪声三种信号的FFT变换(傅里叶变换)及IFFT变换(傅里叶反变换恢复信号)。   图1-1 正弦波   图1-2 矩形波   图1-3 白噪声信号   二、FFT算法在基于VHDL的FPGA下实现   1.基于VHDL的FPGA设计流程   本小节以Xilinx公司的FPGA系统开发为实例,FPGA的设计流程一般包括系统功能设计定义、设计输入、功能仿真、逻辑综合、前仿真、设计实现(包括翻译、映射、布局布线)、时序仿真与验证、下载配置与器件编程、测试验证等几个步骤。   本设计运用ISE和ModelSim与Matlab联合仿真的设计方法。   ISE的简称为集成综合的环境,是Xilinx公司的配套设计软件,这种工具可完成上述FPGA/CPLD的整个开发过程   2.FPGA的基本原理和结构   FPGA即现场可编程门阵列,相对其他可编程器件具有更高的集成度、更强的逻辑实现能力和更好的设计灵活性。   FPGA的基本结构如图2-1所示。CLB阵列实现用户指定的逻辑功能,它们以阵列的形式分布在FPGA中;IOB为内部逻辑与器件封装引脚之间提供了可编程接口,它通常排列在芯片四周;可编程互连资源分布在CLB的空隙,互连资源可以编程配置在模块之间传递的信号网络,用于实现各个CLB之间、CLB与IOB之间以及全局信号与CLB和IOB之间的连接。FPGA利用可编程查找表实现逻辑块;程序控制多路复用器实现其功能选择。   图2-1 FPGA的基本结构   3.FFT 处理器的设计   本设计用于基于IEEE 802.11a协议的OFDM系统的OFDM调制,根据IEEE802.11a协议规定,OFDM调制采用64点FFT变换,采样速率20M/s,即采样周期为50ns,即64点FFT数据输入的时间为64*50ns=3200ns。   本系统采用的时域抽取算法中要对输入的所有数据进行倒序以后才开始蝶形运算,FFT可以分为数据输入、蝶形运算两个阶段,蝶形运算结束后,将最终结果存储到另一个单独的结果存储器另行读取,而为了能对输入数据实现连续的FFT变换,就需要蝶形运算的总时间小于3200ns,这样就可以用两个FFT模块去轮换做FFT,实现连续的FFT处理。如图2-2所示。   64点的基2的时域抽取FFT算法总共有6级蝶形运算,每级32次蝶形运算,总共需要32*6=192个蝶形运算,如果采用单蝶形设计,需要192次蝶形运算,蝶形运算的极限时钟周期为3200ns/192=16.67ns,在本设计的蝶形运算时钟周期采用16ns。   开发环境:Quartus II 6.0   选择FPGA芯片:Altera公司Stratix系列中的EP1S10484C5   语言:VHDL   图2-2 两个FFT模块   三、MATLAB到VHDL转换工具Simulink   Simulink程序包是MathWorks公司提供的一个非常有吸引力的高水平设计、仿真工具。   1.高效地从Simulink到VHDL的转换工具   目前为止,设计者经常遇到的最大问题是怎样完成从算法设计到物理实现的转换。在这个问题的研究发展过程中,设计

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档