基于FPGA实现变采样率FIR滤波器的研究
扫描二维码
随时随地手机看文章
摘要:数字信号凭借其在传输、存储和计算上的便捷性,正在得到越来越广泛的应用。在现代数字系统中往往会存在多种采样频率,这就需要改变采样频率,进行频率转换。本文主要介绍利用现场可编程逻辑器件(FPGA)实现变采样率FIR数字滤波器的方案。首先简单分析了FIR数字滤波器的基本结构,在此基础上,以一个适用于变采样率的半带滤波器的设计为例,结合利用MATLAB为辅助设计工具,完成对给定指标的FIR滤波器的设计,最后提出了利用FPGA硬件实现滤波的TOP-DOWN结构图。此方案使性能和资源占有率得到较好的突破,最大限度的减少资源消耗。
1. 引言
随着数字信号处理理论及应用技术的迅速发展,在一个数字系统中只用一个采样频率已 经很难满足要求。在实际的应用中,经常会遇到采样率的转换问题,即要求一个数字系统能 工作在“多采样率”状态。近年来,建立在采样率转换基础上的“多采样率数字信号处理” 已成为数字信号处理学科中的主要研究内容之一。直观地考虑,首先将以采样率 F1 采集的 数字信号进行数模转换,这样就变成模拟信号,再按采样率 F2 进行模数转换,从而实现了 从F1 到F2 的采样率转换,这就是变换采样率的最简单方法。但是这样较麻烦,且易使信 号受到损伤,所以在实际应用的变采样系统中,改变采样频率并不经过模拟信号,而是完全 在数字域中实现的。在数字信号处理中,滤波占有极其重要的作用,适用于变采样率系统 中的数字滤波器就是本文要谈论的主要内容。
2.FIR 数字滤波器的设计过程及结构
数字滤波器根据其冲击响应函数的时域特性,可分为两种:无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。FIR 滤波器被广泛应用于各类数字信号处理系统, 它的系统总是稳定的,可以满足滤波器对幅度和相位特性的严格要求,避免模拟滤波器温漂 和噪声等问题,易实现线性相位且易用硬件实现,这些都是FIR 系统的突出优点,也是IIR 系统不易实现的。尽管IIR 滤波器系统比FIR 滤波器系统易取得较好的通带和阻带衰减特性, FIR 系统若要取得较好的衰减特性,一般要求系统函数H(z)阶次要高,也即滤波器长度M 要大。综合以上考虑,本文选用FIR 滤波器来完成设计。
2.1FIR 数字滤波器的基本原理及设计基础
图1 中x(n)是输入信号,x(n-i)是延时了i 个采样周期的输入信号,h(i)(i = 0,1,…,n-1)是第i 个延时节的加权值(即滤波器系数),y(n)是时刻t = nT 时滤波器的输出信号。
FIR 数字滤波器的设计一般要经过三步[2]:确定目标、逼近和计算机实现。通常在设计 滤波器之前,应该先根据具体的应用确定一些技术指标。指标的形式一般在频域中给出幅度 和相位响应。幅度指标主要有2 种方式,分别是绝对指标和相对指标。在确定了技术指标之 后,就可以根据数学知识和滤波器的基本原理确定滤波器的模型来逼近给定的指标。上两步 的结果通常是得到以差分或系数函数或冲击响应描述的滤波器,根据这个描述用硬件或软件 实现并分析其频率特性和相位特性。至此完成了一个滤波器设计的全过程。
2.2 利用Matlab 实现FIR 数字滤波器
Matlab 是一个交互式的以矩阵为基础的软件,它被广泛应用与教学、科研和工程设计 等各个领域。随着Matlab 软件的发展,尤其是Matlab 的信号处理工具箱的不断完善,不仅 数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。
在数字信号处理领域里,采样频率转换就是将信号采样频率从一个给定的频率F1=1/T1 转换到另一频率F2=1/T2 的过程,它是一个非线性过程。当新的采样频率高于原始频率,即 F2 > F1 时,称为升采样率或插值;反之,当新的采样频率低于原始频率,称为降采样率或 抽取。
设对某限带时间波形x(t),以采样率fs(在满足采样定理的条件下)进行采样,得到时
基于半带滤波器的优点,在半带滤波器的基础上设计FIR 滤波器一般采用等波纹逼近 法,该方法对同样的技术指标,能使误差均匀分布在整个频带,而且这种逼近法需要的滤波 器阶数低,且最大误差最小。
给定半带滤波器的设计指标:
通带截止频率为20KHz,采样频率为88.2KHz,通带波纹为0.001,阻带衰减70dB。
根据上述指标,结合其优点,利用Matlab 的信号处理工具中的remez 函数进行FIR 滤 波器的设计。remez 函数利用Parks-McClellan 算法,该算法利用remez 交换算法和切比雪 夫逼近理论来设计滤波器,使实际滤波器的幅频响应最优地拟合理想滤波器的幅频响应,使 它们之间最大误差最小化。
调用remezord 和remez 函数设计此滤波器, 由调用格式 [N,fo,ao,w]=remezord(f,m,,rip,Fs)[3]知道,首先根据设计指标确定remezord 函数的调用参数, 估算出滤波器的最低阶数N ,其返回函数再作为remez 函数的调用参数,再直接编写程序 调用remez 函数得到滤波器单位脉冲响应h(n),得到如图2 所示的幅频响应:
通过分析该半带滤波器的幅频响应,可以发现该滤波器的通带和阻带波纹俱在 0.0015dB 以内,阻带衰减达到了70dB。 程序运行结果显示,滤波器阶数N=43,基本符合设计要求。
3.FIR 数字滤波器的FPGA 硬件实现
由前面的Matlab 设计已经求得了要求的FIR 滤波器的滤波系数及阶数,下面利用FPGA来完成滤波器的硬件实现。FIR 滤波器主要是由乘加单元组成,如果按照直观结构直接构造 FIR 滤波器会占用大量资源,这显然是不经济的。现提出一种利用FPGA 硬件实现滤波的 TOP-DOWN 结构图,如图3 所示。它采用串行结构实现硬件[4]即将输入数据直接与其对应的滤 波系数相乘,但不需像并行结构中那样,必须所有的数都相乘完才能相加,而是将前一级乘 积锁存,直接与后一级乘积累加,这样就可以极大地节约硬件资源,提高执行速度。FIR 数 字滤波器系统主要分为数据存储和数据运算两大模块。数据存储模块主要功能是以时钟去控 制片选信号和地址译码,在ROM 查找表中读出与ROM 地址相对应的数据,即为滤波系数,并 将它与对应的输入信号同步输出至数据运算模块。数据运算模块主要功能就是完成输入信号 与对应滤波系数的相乘和累加。
4 结论
由于FPGA 具有速率高,面积小,性能可靠等特点,成为数字滤波器工作在很高频率上 的首先硬件实现方案。本文利用Matlab 设计了一个给定指标的适用于变采样率FIR 滤波器, 并对它进行了FPGA 硬件实现。
本文的创新点:提出一种基于FPGA 实现变采样率FIR 数字滤波器的硬件实现方案,节 约了硬件资源,降低设计成本,具有实用价值。
参考文献:
[1].F1 datasheethttp://www.dzsc.com/datasheet/F1+_2060738.html.
[2].ROM datasheethttp://www.dzsc.com/datasheet/ROM+_1188413.html.
来源:xinxin0次