• FFT仿真教程(一)__Altera FFT


    FFT仿真教程(一)__Altera FFT

    去年自己做过一个FFT的项目,自己写了一个FFT,因最近朋友询问关于FFT的一些东西,为了能给相关开发的工程师带来一些参考,写下此教程,因涉密原因,此教程直接使用官方的IP进行仿真测试 。

    1 FFT的原理

    因原理部分公式误码,因此删除了该部分,关于傅里叶变换的原理在网络上能搜到

    一大堆,也就不再详细解释。

    2 FFT ip配置

    新建工程及ip这个就不说了,想必大家都清楚,我们直接对ip核参数进行配置

    2.1 参数设置如下

     

    2.2 生成仿真模型

     

    2.3 生成文件

     

    3 FFT ip仿真

    3.1 Matlab实现

    Matlab文件包括fft_tb.m,fft_model.m两个文件,fft_model.m为函数实现文件,

    fft_tb.m调用fft_model.m函数。

    仿真步骤是:

    1) 双击fft_tb.m,在代码编辑窗口Editor可以查看文件源码,

    2) 点击RUN,运行fft_tb.m,在文件目录下生成了3个文件,分别为

    fft_real_output_c_model.txt                               

    fft_imag_output_c_model.txt                                 

    fft_exponent_out_c_model.txt

     

    对应matlab源码中的

    fidro = fopen('fft_real_output_c_model.txt','w');                                

    fidio = fopen('fft_imag_output_c_model.txt','w');                                 

    fideo = fopen('fft_exponent_out_c_model.txt','w');                                

    fprintf(fidro,'%d ',real(y));                                                

    fprintf(fidio,'%d ',imag(y));                                               

    fprintf(fideo,'%d ',exp_out);                                               

     

    3.2 modelsim仿真

     新建一个Project,因设置的是256点的,直接命名为fft256好了,当然名称可以随便取,你开心就好,但是Project Location需要放在FFT的生成目录,不然很多文件会找不到的,造成的一堆麻烦我可不负责哦,O(∩_∩)O~

    添加下图的文件,

     

     

     

    添加好以后进行Compile  Out_of_Date,编译完成后仿真,会出现啥,一堆的错误,骚年,心急吃不了热豆腐,把该添加的库添加进去啊,

     

    注意,我的modelsim已经编译过altera的仿真库,所以可以直接添加,没有编译过的自行百度如何编译altera库,以及注意编译后的库位置,再次进行仿真,提示

     

     

    没关系,有错就找出问题嘛,大意就是1ps的仿真精度是小于一个选择的SystemC 或者 VHDL设计单元的精度的,怎么办,使用vsim  –t 来修改啊,不会用???使用vsim  -help来看看啊,

     

    现在知道了吧,那就设置为 vsim –t 1ns好了,

     

    提示没有指定仿真设计文件,那就将该添加的库文件添加后重新仿真下,添加好对应的波形后,就让我们愉快的restart  –f然后run 一下吧,等待波形的出现^_^

     

     

    为了按照有符号的形式显示,信号名右击选择Radix  -- Decimal即可,当然你也可以这样看

     

    是不是觉得modelsim很强大啊

     

    我们将仿真结果与matlab输出的数据文件比较一下看看,会是什么结果呢,Bingo,回答正确,当然是结果一致了,神马,你的不一样,那你就查查你的哪一步出错了啊!!!

     

     

    .

     

     

     

    花费了两晚上的时间,总算写好了,希望能对从事这方面的同行有所帮助,如有不当的地方还请大家多包涵,不吝赐教,谢谢(^o^)/~

    参考资料推荐:

    1、《傅立叶详细推导_看了绝对懂》

    2、圈圈的《FFT结果的物理意义》,写的非常不错

                                                                                                                                                       By  卖红薯的小孩

                                                                                                                                                            2016/9/9 晚

     

  • 相关阅读:
    日记
    没有起得晚的周末,希望今天能做一些什么
    怎么就这么喜欢测软件呢?—— Google Calendar农历问题
    Sharepoint带自定义属性的FieldType
    自己使用Outlook 2003 的一些小技巧
    Xml名称空间
    c# jingtailei 静态成员
    select count
    varchar nvarchar(转)
    linq 笔记(1)
  • 原文地址:https://www.cnblogs.com/151009-on-the-way/p/5866159.html
Copyright © 2020-2023  润新知