概述
前段时间用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;

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
低通滤波器
+关注
关注
15文章
602浏览量
49175 -
FFT
+关注
关注
15文章
458浏览量
63354 -
C++语言
+关注
关注
0文章
147浏览量
7805 -
fir滤波器
+关注
关注
1文章
97浏览量
19751 -
FPGA芯片
+关注
关注
4文章
250浏览量
41161
发布评论请先 登录
相关推荐
热点推荐
c++程序设计教程
C++是一种高效应用的程序设计语言,它即可进行过程化程序设计,也可进行面向对象程序设计,因而成了编程人员最广泛使用的工具。学好C++,很容易触类旁通其他软件,
发表于 04-08 00:36
•125次下载
《C/ C++/ Java 程序设计经典教程》
《C/ C++/ Java 程序设计经典教程》(Deitel 著)
●集作者几十年程序设计经验之精华,从软件工程的原理强调结构化程序设计方法,追求程序的清晰优美,注重程序的性能和结
发表于 04-08 02:10
•398次下载
密码编码学(加密方法的C与C++实现) pdf第二版
密码编码学(加密方法的C与C++实现)分分三个部分。第一部分描述密码学中的常用算法和数论算法,以及这些算法的C和C++程序实;第二部分描述密
发表于 09-25 09:49
•0次下载
C++课件
C++面向对象程序设计
面向对象思想的由来面向对象程序设计面向对象程序设计语言C++与C语言的关系
面向对象技术追求的是软件系统对现实世界的直接模
发表于 04-10 13:41
•0次下载
C++内部类的实现及应用
多重继承一直是C++语言中一个广受争议的语言特征。一般认为,在面向对象设计中应该谨慎使用多重继承。文章分析了C++中多重继承实现的复杂性并对如何高效使用多重继承进行了探讨
发表于 06-28 17:59
•50次下载
如何提高c和c++的安全编程能力?《C和C++安全编码》带你详细学习
C和C++安全编码是C/C++安全编码领域的权威著作,被视为“标准”参考书,由国际资深软件安全专家撰写,美国CERT主管亲自作序推荐。本书结
发表于 08-28 08:00
•0次下载
C++程序设计教程之C++的初步知识的详细资料说明
C++程序设计教程之C++的初步知识的详细资料说明包括了:1. 从C到C++,2 . 最简单的C++程序,3 .
发表于 03-14 14:48
•31次下载
C++之父新作带你勾勒现代C++地图
为了帮助大家解决这些痛点问题,让大家领略现代C++之美,掌握其中的精髓,更好地使用C++,C++之父Bjarne Stroustrup坐不住了,他亲自操刀写就了这本《C++之旅》!
C++中实现类似instanceof的方法
函数,可实际上C++中没有。但是别着急,其实C++中有两种简单的方法可以实现类似Java中的instanceof的功能。 在 C++ 中,确定对象的类型是编程中实际需求,使开发人员
频域滤波的C//C++软件化实现
评论