• FIR仿真教程__Altera FIR


    FIR仿真教程__Altera FIR

    乘着前面写了一个FFT的操作教程,那么趁热把自己做的FIR也顺便写个教程回顾一下,方便以后使用,因为上家公司使用的是Altera的器件,同样这次仿真也就使用Altera 的IP直接进行演示,后期有时间再弄弄Xilinx的。O(∩_∩)O~

    1 FIR的原理

     FIR滤波器广泛应用于数字信号处理中,主要功能就是选择性的留下有用信号,剔除不必要的信号滤除。FIR滤波器是全零点结构,系统永远稳定;并且具有线性相位的特征,在有效频率范围内所有信号相位上不失真。在无线通信收发机中的DDC/DUC模块,抽取和内插都需要加入滤波器以防止信号在频谱上混叠,最典型的是采用FIR滤波器实现半带滤波器。

    FIR滤波处理如下式所示,其中x(n)为输入信号,h(n)为FIR滤波系数,y(n)为经过滤波后的信号;N表示FIR滤波器的抽头数,滤波器阶数为N-1。

     

    由上式可得到FIR滤波器在FPGA中的实现结构,如图1所示,主要由延迟单元Z-1、乘法器和累加器组成。此结构为直接型FIR滤波器结构,也称横向结构(transverse)。

     

     

    比较细致的FIR 滤波器原理当然大家可以自己搜索学习,以及怎么用在自己的实际项目中。

    2 FIR ip配置

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

    2.1 参数设置如下

    因不涉及实际的项目使用,只是单纯的进行操作演示,所以所有参数均采用默认配置,实际使用中根据自己的项目进行相应的配置就好。

     

    2.2 生成仿真模型

     

    2.3 生成文件

     

    当出现红色区域标志的信息是表示IP 配置完成,接下来可以进行仿真了。

    3 FIR ip仿真

    3.1 Matlab实现

    Matlab文件包括fir_mlab.m,fir_model.m两个文件,fir_mlab.m为函数实现文件,

    fft_model.m调用fir_mlab.m函数。

    对于不熟悉matlab的可以通过下面的图区分,一般函数文件它上面都带个fx

     

    仿真步骤是:

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

    2) 点击RUN,运行fft_model.m,在文件目录一个txt文件,这就是通过matlab生成的FIR结果文件

    fir_model_output.txt

    对应matlab源码中的

      % Write data out to file

        file_name = ['fir_model_output'];

        outfile1 = fopen([file_name, '.txt'],'w');

        fprintf(outfile1, '%d ', reshaped_output);                                        

       另外为了直观的查看滤波效果,我们在fft_model.m文件中添加如下代码,

     

     

     

    效果图如图所示,我们最后可以与modelsim仿真的效果图进行对比查看一下

     

    3.2 modelsim仿真

     新建一个Project,直接命名为fir好了,但是Project Location需要放在fir的生成目录,不然很多文件会找不到的,造成的一堆麻烦我可不负责哦,O(∩_∩)O~

    添加下图的文件,

     

     

     

    添加好以后进行Compile Out_of_Date,编译完成后仿真,记得把该添加的库添加进去啊,

     

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

     

     

    大意就是1ps的仿真精度是小于一个选择的SystemC 或者 VHDL设计单元的精度的, 在仿真的时候将default值修改为合适的值就可以

     

    . 将对应的波形添加进行观察,仿真结果如下

     

     

     

    我们将仿真结果与matlab输出的数据文件比较一下看看,可以通过波形数据和matlab输出的数据比较,当然也可以直接查看输出的数据文件

    fir_model_output(matlab输出的数据文件)

    fir_output(modelsim输出的数据文件)

    测试数据结果一致,关于fir滤波器的仿真就简单的操作了一下,希望能对从事这方面的同行有所帮助,如有不当的地方还请大家多包涵,不吝赐教,谢谢(^o^)/~

    明天就中秋了,祝大家中秋节快乐!!!O(∩_∩)O哈哈~

                                                                                                                                                 

     

                                                                                                                                                         By  卖红薯的小孩

                                                                                                                                           2016/9/14 晚于杭州

     

     

     

     

  • 相关阅读:
    项目支持
    PHP wamp 环境配置
    事务 锁 高并发下的解决方法
    Hybrid开发
    Phonegap IOS 篇 -如何用虚拟机发布APP
    Visual Studio 切换到设计模式卡死解决方法
    批处理基本命令
    Phonegap Android篇
    jQuery插件——Validation Plugin
    PHP PDO学习(二) exec执行SQL
  • 原文地址:https://www.cnblogs.com/151009-on-the-way/p/5883087.html
Copyright © 2020-2023  润新知