概述
前段时间用matlab仿真了一波基于FFT卷积的频域FIR滤波器,比如采样率12MHz,需要做一个如下图所示的500KHz低通滤波器(带外抑制仅60dBc),滤波器的阶数为326阶,以XC7K325T的DSP资源数约840作为参考,在12MHz的时钟下只能实现5个这样的滤波器,在采用高频时钟后可以减低DSP资源使用率,但是当归一化频率不变,采样率上升到120MHz,同样的系数滤波器的低通截止频率为5MHz,虽然系数不变,但此时将很难再大幅提高时钟频率复用资源来降低占用率了,一方面不同规格的FPGA芯片都有其自身的频率限制,另一方面逻辑设计本身也会存在时许限制。
带外抑制60dbc的阶数=326
带外抑制80dBc的阶数=399
归一化频率不变,采样率提升到120MHz时(注意:滤波器系数是相同的)
C/C++软件化实现
以下为FFT卷积算法在Qt的C\\C++环境下的实现FIR滤波的效果
原始信号的FFT结果即为常见的信号频谱,该信号存在较强的高次谐波
而滤波器系数FFT后得到的是滤波器的幅频特性曲线,这一点比较有意思,滤波器系数实际是该滤波器的时域冲击响应波形的离散采样
以上为滤波后的频域结果,图中500Khz以外的频谱部分全部被抑制了大约60dBc;
-
低通滤波器
+关注
关注
14文章
485浏览量
47616 -
FFT
+关注
关注
15文章
438浏览量
59746 -
C++语言
+关注
关注
0文章
147浏览量
7067 -
fir滤波器
+关注
关注
1文章
95浏览量
19136 -
FPGA芯片
+关注
关注
3文章
246浏览量
39924
发布评论请先 登录
相关推荐
c++程序设计教程

《C/ C++/ Java 程序设计经典教程》
密码编码学(加密方法的C与C++实现) pdf第二版
C++课件
C++内部类的实现及应用

如何提高c和c++的安全编程能力?《C和C++安全编码》带你详细学习
C++程序设计教程之C++的初步知识的详细资料说明

C++之父新作带你勾勒现代C++地图

C++中实现类似instanceof的方法

评论