微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > 基于FPGA实现变采样率FIR滤波器的研究

基于FPGA实现变采样率FIR滤波器的研究

时间:04-13 来源:互联网 点击:
1 引言

随着数字信号处理理论及应用技术的迅速发展,在一个数字系统中只用一个采样频率已 经很难满足要求。在实际的应用中,经常会遇到采样率的转换问题,即要求一个数字系统能 工作在“多采样率”状态。近年来,建立在采样率转换基础上的“多采样率数字信号处理” 已成为数字信号处理学科中的主要研究内容之一。直观地考虑,首先将以采样率 F1 采集的数字信号进行数模转换,这样就变成模拟信号,再按采样率 F2 进行模数转换,从而实现了从F1 到F2 的采样率转换,这就是变换采样率的最简单方法。但是这样较麻烦,且易使信号受到损伤,所以在实际应用的变采样系统中,改变采样频率并不经过模拟信号,而是完全 在数字域中实现的。在数字信号处理中,滤波占有极其重要的作用,适用于变采样率系统 中的数字滤波器就是本文要谈论的主要内容。
  
2 FIR 数字滤波器的设计过程及结构
  
数字滤波器根据其冲击响应函数的时域特性,可分为两种:无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。FIR 滤波器被广泛应用于各类数字信号处理系统, 它的系统总是稳定的,可以满足滤波器对幅度和相位特性的严格要求,避免模拟滤波器温漂 和噪声等问题,易实现线性相位且易用硬件实现,这些都是FIR 系统的突出优点,也是IIR 系统不易实现的。尽管IIR 滤波器系统比FIR 滤波器系统易取得较好的通带和阻带衰减特性,FIR 系统若要取得较好的衰减特性,一般要求系统函数H(z)阶次要高,也即滤波器长度M 要大。综合以上考虑,本文选用FIR 滤波器来完成设计。
  
2.1FIR 数字滤波器的基本原理及设计基础

FIR滤波器的系统函数为:
,由系统函数可直接写出描述输入x(n)和输出y(n)之间关系的差分方程。设x(n)是一个M点序列,则得:
。就硬件实现而言,FIR数字滤波器的基本结构是一个分节的延时线,每一节的输出加权累加,得到滤波器的输出。


图1 FIR滤波嚣基本结构
  
图1 中x(n)是输入信号,x(n-i)是延时了i 个采样周期的输入信号,h(i)(i = 0,1,…,n-1)是第i 个延时节的加权值(即滤波器系数),y(n)是时刻t = nT 时滤波器的输出信号。
  
FIR 数字滤波器的设计一般要经过三步:确定目标、逼近和计算机实现。通常在设计 滤波器之前,应该先根据具体的应用确定一些技术指标。指标的形式一般在频域中给出幅度 和相位响应。幅度指标主要有2 种方式,分别是绝对指标和相对指标。在确定了技术指标之 后,就可以根据数学知识和滤波器的基本原理确定滤波器的模型来逼近给定的指标。上两步 的结果通常是得到以差分或系数函数或冲击响应描述的滤波器,根据这个描述用硬件或软件 实现并分析其频率特性和相位特性。至此完成了一个滤波器设计的全过程。
  
2.2 利用Matlab 实现FIR 数字滤波器
  
Matlab 是一个交互式的以矩阵为基础的软件,它被广泛应用与教学、科研和工程设计 等各个领域。随着Matlab 软件的发展,尤其是Matlab 的信号处理工具箱的不断完善,不仅 数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。
  
在数字信号处理领域里,采样频率转换就是将信号采样频率从一个给定的频率F1=1/T1 转换到另一频率F2=1/T2 的过程,它是一个非线性过程。当新的采样频率高于原始频率,即 F2 > F1 时,称为升采样率或插值;反之,当新的采样频率低于原始频率,称为降采样率或 抽取。
  
设对某限带时间波形x(t),以采样率fs(在满足采样定理的条件下)进行采样,得到时间列x(k).对x(k)进行采样率变换,如升采样率,即提高采样率L(正整数)倍,升采样后的序列用Y(m)表示,那么,升采样前后序列的关系为:
。该式表明对输入信号采样数据每相邻两点之间插入L-1个零.即可实现升采样率变换。因为抽取是内插的对偶系统,相应地,降采样前后序列的关系为:
。该式表明只要对输入信号每隔M样点抽取一个样点,即可实现降采样率变换。

变采样率FIR数字滤波器的设计分为内插FIR滤波器设计和抽取FIR滤波器设计。对内插和抽取滤波器的设计以半带滤波器为基础。下面便是设计实例:

半带滤波器是一种特殊的FIR滤波器,其特征如下:

(1)半带滤波器的冲激响应除了零点不为零外,在其余偶数点均为零;

(2)半带滤波器所要求的滤波器模板必须关于f/4对称.即H(ejπ/2)=0.5,而且滤波器的参数个数必须为奇数;

(3)滤波器的频率响应以似中心对称,即


基于半带滤波器的优点,在半带滤波器的基础上设计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)知道,首先根据设计指标确定remezord 函数的调用参数,估算出滤波器的最低阶数N ,其返回函数再作为remez 函数的调用参数,再直接编写程序调用remez 函数得到滤波器单位脉冲响应h(n),得到如图2 所示的幅频响应:


图2变采样率FTIR滤波器的幅频响应
  
通过分析该半带滤波器的幅频响应,可以发现该滤波器的通带和阻带波纹俱在 0.0015dB 以内,阻带衰减达到了70dB。
程序运行结果显示,滤波器阶数N=43,基本符合设计要求。
  

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top