您当前的位置:五五电子网电子知识单元电路滤波-陷波电路基于FPGA的FIR滤波器设计与仿真 正文
基于FPGA的FIR滤波器设计与仿真

基于FPGA的FIR滤波器设计与仿真

点击数:7103 次   录入时间:03-04 11:38:45   整理:http://www.55dianzi.com   滤波-陷波电路
    (2)输入数据移位模块的主要功能是使A/D转换后的数据通过不同的触发器,从而产生不同的延迟,以便取出输入数据不同位置上的数值,来构成ROM的地址。
    (3)地址发生器模块的主要功能是将通过输入数据移位模块的不同延迟分别转换为查找表的串行地址,提供给存储器模块。根据结构化的程序设计思想,本模块可由12个单通道并、串转换模块组成。
    (4)存储器模块是这种查找表结构FIR的核心。FPGA中ROM模块的设计可以通过Quartsus II软件中的Mega Wizard向导来生成。
    (5)运算模块主要功能是将ROM的输出数据在此进行移位相加。这里实现的主要是加法和减法运算,运算速度很快。
    最后的项层模块采用图形化输入,这样可以使设计思路更加清晰,也符合自上而下的FPGA主流设计方法。


www.55dianzi.com5 仿真验证
    为了验证设计的正确性,必须对设计进行全面充分的功能仿真和时序仿真,功能仿真一般用Mentor公司的Modelsim来进行,时序仿真使用QUARTusII软件。ALTEra公司提供的QuartusII软件除了具有强大的编译综合功能之外,还提供了一定的波形(时序)仿真功能。因其输入和输出都是以波形的形式给出的,虽然看起来如同逻辑分析仪的输出形式,比较直观,但是难以对随机信号进行输入;随机信号的输出也难以分析,这就给我们的验证工作带来了很大的障碍。下面我们利用MATLAB与QuartusII实现联合仿真。
5.1 产生向量仿真文件
    在MATLB中生成OuartusII仿真所需的输入文件*.vec。QuartusII仿真文件有两种格式,即*.vwf格式和*.vec格式。前者是在Quart-usII中通过波形编辑器生成的。当方针输入数据复杂时,用波形输入的方法难以胜任,特别是在数字信号处理领域,大多数仿真输入数据要叠加噪声,采用波形输入方式是不现实的。后者是按一定格式要求的文本文件输入方式,可以利用任何文本编辑器产生,只要符合对仿真文件的格式要求即可。
    这里的仿真输入数据是在两个不同频率上的正弦波,频率分别为23Hz、58Hz。把这两个信号叠加在一起作为输入信号,用MATLAB软件生成仿真所需的vec文件。FIR滤波器的截止频率为40Hz。
    在对仿真参数进行设置时,将仿真向量文件指向由MATLAB生成的文件,即可将MATLAB中生成的仿真信号导入之中进行仿真了。
5.2 验证输出结果
    用QuartusII软件中的选项将仿真向量文件指向由MTLAB生成的*.vec文件,进行仿真。
    将仿真结束后生成的波形文件,另存为*.tbl格式文件,以数据文件输入的方式将此*.tbl文件中的仿真输出信号的数值导入至MATLAB中,并进行频谱分析验证FIR数字滤波器设计的正确与否,并分析其性能优劣。

e.JPG


    图1是输入信号的时域和频域图形,以及经过理想的低通滤波后得到的结果。低通滤波用MATLAB实现。可以看出经过滤波后,23Hz的频率成分被保留下来,而58Hz的频率成分被滤掉。图2是同一输入信号的时域和频域图形,以及经过FPGA实现的FIR数字滤波器低通滤波后的结果。

6 结束语
    从这两幅图中,我们可以看到用FPGA实现的FIR滤波器,得到了和理论上滤波相似的结果,证明了设计的可行性及正确性。如果需要不同的滤波器,我们只要改变输入到ROM中的初始化文件数据即可。



上一页  [1] [2] 


本文关键字:滤波器  滤波-陷波电路单元电路 - 滤波-陷波电路