页面加载中,请稍候
来源:电子设计工程发布时间:2011-09-17
询问 AI摘要:目前FIR滤波器的一般设计方法比较繁琐,开发周期长,如果采用设计好的FIR滤波器的IP核,则开发效率大为提高。本方案基于Altera公司的CycloneⅡ系列芯片EP2C8Q208C8N,首先利用MATLAB中的滤波器函数fir2得出需产生的FIR滤波器的系数,再导入FIR IP Core,成功完成了FIR数字滤波器的设计。另外分析了阶数与不均匀采样数据对FPGA资源的影响和时生成FIR滤波器的输出性能的影响,并将实际输出的幅频特性图与我们需要的幅频特性图相比较,验证生成的FIR数字滤波器的性能。
关键词:FIR IP Core;FIR数字滤波器;滤波器系数;幅频特性图;EP2C8Q208C8N
在信号处理领域中,常常需要对信号进行加工处理,处理的本质就是信息的变换和提取,是将信息从各种噪声、干扰的环境中提取出来,变换成我们需要的形式。数字滤波器是由乘法器、加法器和延时单元组成的一种装置,是一个离散时间系统按预定的算法,将输入离散时间信号转换为所要求的输出离散时间信号的特定功能装置。在一般情况下,图像处理及数据传输都要求信道具有线性相位特性。有限冲击响应(FIR)数字滤波器就可以做成具有严格的线性相位,同时又可以具有任意的幅度特性。此外,FIR滤波器的单位抽样响应是有限长的,因而滤波器一定是稳定的。故FIR滤波器广泛应用于数字系统处理领域。但目前FIR滤波器的设计方法比较繁琐,开发周期长,本文则介绍了一种简洁有效的设计方法,并且注重它的资源及性能分析。
随着IC(Integrated Circuit)技术的发展和EDA(Electronic Design Automatic)工具的完善,各大FPGA器件厂商及第三方都陆续推广专门的信号处理IP(Intellectual Property)Core,使得基于FPGA的数字信号处理DSP(Digital Signal Processing)系统的开发更加便捷,利用IP Core设计FIR滤波器,设计周期短,占用逻辑资源少,其运算速度相比DSP处理器有很大的提高,故IP核也逐渐成为数字信号处理实现高
速实时的一种方式。
在设计一个FIR滤波器之前,首先要确定滤波器的技术指标。本文是通过MATLAB算出滤波器的系数,导入IP核,就可通过FPGA实现任意的我们需要产生的滤波器。
1 FIR数字滤波器的设计
1.1 FIR数字带通滤波器的系数设计原理
本文以设计带通滤波器为例介绍如何设计基于IP核的FIR数字滤波器。现有一双T带阻滤波电路如图1所示,测量一系列不同频率对应的幅值,根据测量的幅频特性关系,我们可通过MATLAB算出需要设计的带通滤波器的系数。其带阻网络的中心频率计算公式:
FIR数字带通滤波器的系数设计原理是:设带阻网络的幅频特性为H1(jw),FIR带通网络的幅频特性为H2(jw),要实现数字幅频均衡,则要满足:
[!--empirenews.page--]
1.2 基于MATLAB的FIR数字滤波器的系数设计
最基本的FIR滤波器可用下式表示:
单击Parameterize按钮,打开FIR滤波器核的参数设置窗口,进行FIR滤波器参数的配置。注意在Parameter Settings中,如果选择的是从文件中导入系数,则需要注意导入文件的格式,FIR Compiler支持的格式是一行只有一个数据,且文件最后不能有回车。所以在MATLAB生成滤波器系数时,对其进行列处理,再将滤波器系数复制到一个(.txt)文件,将(txt)文件导入。
再按照图4完成Step2、Step3,生成FIR模块如图5所示。此时只需要在顶层文件调用,编写其输入输出引脚。再编写外围模块AD、DA的程序,上电下载程序即可验证产生的FIR带通滤波器。[!--empirenews.page--]
2 基于FPGA的FIR数字带通滤波器的系统测试
2.1 阶数对FIR数字滤波器的性能影响
采用EP2C8Q208C8N这款FPGA,逻辑资源数为8 256,能做到的FIR带通滤波器的最高阶数为310阶,AD转换芯片是采用8位模拟数字转换芯片、采样速率高达40 MSPS的TLC5540,基准电压选5 V,DA转换芯片是采用10位转换速率为165 MSPS的DAC9000。对FIR带通滤波器的实际输
出进行采样,再将采样的幅值和频率值导入MATLAB,得到的幅频特性曲线如图6所示。
阶数越高,其通频带越小,衰减特性也越尖锐,越接近我们需要设计的FIR带通滤波器,但不足之处就是耗费资源,其资源利用情况如表1所示。
2.2 不均匀采样数据对FIR数字滤波器的性能影响
不均匀采样,就是在幅度衰减剧烈的频率附近多选取数据采样点,而在其它幅度变化不剧烈的频段少选取采样点。在保持FIR滤波器阶数不变的前提下,改变每组采样数据的采样点个数,每组采样数据均采用不均匀采样,可以得到不同的频率向量f与幅度向量a,利用函数fir2()就可以得到不同的FIR滤波器特性系数。再将系数导入IP核,对产生的FIR带通滤波器的实际输出进行采样,再将采样的幅值和频率值导入MATLAB,得出的幅频特性曲线如图7所示。
知道采样数据的多少对FPGA的资源利用率无多大影响,但是会影响FIR带通输出波形的抖动,采样数据越密集,越能得出我们需要的幅频特性图。
3 结论
以上实验表明,在FPGA上用FIR IP Core实现FIR数字滤波器是一种很简洁有效的方法。如果FPGA资源比较大时,我们尽量选取高阶的FIR滤波器,这样能实现较好的滤波器性能;如果FPGA资源有限时,我们只能尽可能的选稍微高阶的滤波器,但是可以通过细化采样数据来达到较好的性能。
新闻来源:电子设计工程,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
暂无评论哦,快来评论一下吧!

2026-07-20

2026-06-20