播报
编辑
FIR滤波器工作原理 [1]
在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,把模拟信号转化为数字信号;为了使信号处理能够不发生失真,信号的采样速度必须满足香农采样定理,一般取信号频率上限的4-5倍做为采样频率;一般可用速度较高的逐次逼进式A/D转换器,不论采用乘累加方法还是分布式算法设计FIR滤波器,滤波器输出的数据都是一串序列,要使它能直观地反应出来,还需经过数模转换,因此由FPGA构成的FIR滤波器的输出须外接D/A模块。FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好,利用FPGA乘累加的快速算法,可以设计出高速的FIR数字滤波器
播报
编辑
FIR滤波器的硬件实现有以下几种方式:
一种是使用单片通用数字滤波器集成电路,这种电路使用简单,但是由于字长和阶数的规格较少,不易完全满足实际需要。虽然可采用多片扩展来满足要求,但会增加体积和功耗,因而在实际应用中受到限制。
DSP芯片
另一种是使用DSP芯片。DSP芯片有专用的数字信号处理函数可调用,或者根据芯片指令集的结构自行设计代码实现FIR的功能;由于FIR设计时其系数计算及其量化比较复杂,因此一般都采用MATLAB软件作为辅助设计,计算出FIR的系数;然后进行代码设计实现。实现FIR滤波器相对简单,但是由于程序顺序执行,速度受到限制。而且,就是同一公司的不同系统的DSP芯片,其编程指令也会有所不同,开发周期较长。
还有一种是使用可编程逻辑器件FPGA/CPLD。FPGA有着规则的内部逻辑块阵列和丰富的连线资源,特别适合用于细粒度和高并行度结构的FIR滤波器的实现,相对于串行运算主导的通用DSP芯片来说,并行性可扩展性都更好。
播报
编辑
有限长单位冲激响应(FIR)滤波器有以下特点:
(1) 系统的单位冲激响应h (n)在有限个n值处不为零
(2) 系统函数H(z)在|z|>0处收敛,极点全部在z=0处(因果系统
(3) 结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。
设FIR滤波器的单位冲激响应h (n)为一个N点序列,0 ≤ n ≤N —1,则滤波器的系统函数为
H(z)=∑h(n)*z^-k
就是说,它有(N—1)阶极点在z=0处,有(N—1)个零点位于有限z平面的任何位置。
播报
编辑
FIR滤波器有以下几种基本结构
(7.10)式的系统的差分方程表达式
y(n)=∑h(m)x(n-m) ( 7.11)
很明显,这就是线性时不变系统的卷积和公式,也是x (n)的延时链的横向结构,称为横截型结构或卷积型结构,也可称为直接型结构。将转置定理,可得到转置直接型结构。
将H (z)分解成实系数二阶因子的乘积形式
(7.12)
其中[N/2]表示取N/2的整数部分。若N为偶数,则N—1为奇数,故系数B2K中有一个为零,这是因为,这时有奇数个根,其中复数根成共轭对必为偶数,必然有奇数个实根。画出N为奇数时,FIR滤波器的级联结构,其中每一个二阶因子用横型结构。
这种结构的每一节控制一对零点,因而再需要控制传输零点时,可以采用它。但是这种结构所需要的系数B2k(I=0,1,2,k,=1,2,...,[N/2])比卷积型的系数h (n)要多,因而所需的乘法次数也比卷积型的要多。
在第三章中已说过,把一个有限长序列(长度为N点)的z变换H (z)在单位圆上作N等分抽样,就得到H (k),其主值序列就等于h (n)的离散傅里叶变换H (k)。那里也说到用H (k)表示的H (z)的内插公式为
(7.13)
这个公式就为FIR滤波器提供了另外一种结构,这种结构由两部分级联组成。
(7.14)
其中级联的第一部分为
(7.15)
这是一个FIR子系统,是由N节延时单元构成的梳状滤波器,令
则有
即Hc (z)在单位圆上有N个等间隔角度的零点,它的频率响应
(7.16)
因而幅度响应为
幅角为
其子网络结构及频率响应幅度。
级联的第二部分为
它是由N个一阶网络并联组成,而这每一个一阶网络都是一个谐振器
(7.17)
令H'k(z)的分母为零,即令
可得到此一阶网络在单位圆上有一个极点
也就是说:此一阶网络在频率为
处响应为无穷大,故等效于谐振频率为2πk / N的无损耗谐振器。这个谐振器的极点正好与梳状滤波器的一个零点(I=k)相抵消,从而使这个频率(ω=2πk / N)上的频率响应等于H (k)。这样,N个谐振器的N个极点就和梳状滤波器的N个零点相互抵消,从而在N个频率抽样点上(ω=2πk / N,k=0,1,...,N —1)的频率响应就分别等于N个H (k)值。
N个并联谐振器与梳状滤波器级联后,就得到频率抽样结构。
频率抽样结构的特点是它的系数H (k)就是滤波器在ω=2πk / N处的响应,因此控制滤波器的频率响应很方便。但是结构中所乘的系数H (k)及WN都是复数,增加了乘法次数和存储量,而且所有极点都在单位圆上,由系数WN决定,这样,当系数量化时,这些极点会移动,有些极点就不能被梳状滤波器的零点所抵消(零点由延时单元决定,不受量化的影响)。系统就不稳定了。
为了克服系数量化后可能不稳定的缺点,可以将频率抽样结构做一点修正,即将所有零、极点都移到单位圆内某一靠近单位圆、半径为r (r小于或近似等于1)的圆上(r为正实数)。 [1]
前一章谈到,只要将两个有限长序列补上一定的零值点,就可以用圆周卷积来代替两序列的线性卷积。由于时域的圆周卷积,等效到频域则为离散傅立叶变换的乘积。因而,如果
即将输入x (n)补上L—N1个零值点,将有限长单位冲激响应h (n)补上L—N2个零值点,只要满足L >=N1 + N2—1,则L点的圆周卷积就能代表线性卷积,即
用DFT表示,则有
Y(k)=X(k)H(k)
因而有
其中
Y(k)=DFT[y (n)],L点
X(k)=DFT[x(n)],L点
H(k)=DFT[h (n)],L点
这样,我们就可得到快速卷积结构,当N1,N2足够长时,它比直接计算线性卷积要快得多。这里计算DFT和IDFT都采用快速傅立叶变换计算方法。
播报
编辑
随着个人音频的发展,曾经的IIR滤波器处理音频带来的音质劣化越来越受市场排斥。原有的IIR虽然具有简单,算量小,使用方便的特点,但精度并不足够,所以在专业音频,很多有FIR 4096的音频算法,例如拉脱维亚的Coneq等。
相反的WFIR滤波器
为弥补FIR在低分辨率下低频处理不佳,部分音频算法使用了相反的WFIR滤波器。与FIR相反,WFIR对低频处理较好,而对高频无效。而每个工作点算量使用达到FIR的6倍。
FIR用于音频的优势
FIR的优势在于可以无限增加精度(在足够运算能力的前提下),并且不存在IIR滤波器的相位精度问题,是比较高端的解决方案
劣势
1:因为采用的精度很高,所以对计算资源和内存、功耗的使用更高;
2:FIR在其他领域主要解决高频问题,在音频应用常常遇到1Khz以下的信号,FIR至少需要FIR 512才能对1K以下产生作用
3:过分运算,因为FIR每个处理单元宽度不能调整,因此在解决低频问题时,高频会出现过分运算的情况。
新的解决方案
包括FIR与IIR的混合使用,以及新型研发的音频专用VIR滤波器。