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 晚

 

原文地址:https://www.cnblogs.com/151009-on-the-way/p/5866159.html