FIR 滤波器(基础知识)

转载:http://05240430.blog.163.com/blog/static/13335939420112101051357/

FIR 滤波器(基础知识) 

2011-03-12 10:15:28|  分类: fpga |  标签:fir  滤波器的fpga实现  |举报 |字号 订阅

最近老师布置了一个任务,要用到数字滤波器,所以就开始查资料了。看了将近一周,终于懂了一点点,记录一下吧!

首先FIR滤波器是数字滤波器的一种,另外一种是IIR滤波器。稳定和线性相位的特性是FIR滤波器的显著特点。对线性相位不是很明白,所以查了一下,下边是别人的解释:

         ( 在数字信号处理中,经常要求系统具有线性相位。比如说,在滤波器设计中,FIR滤波器的线性相位的特点使其备受青睐。

   从数学概念上讲,线性相位就是要求系统的相频特性是一条直线。而且从数学公式出发,可以很容易证明系统冲激响应如果满足对称性的条件,无论是奇对称还是偶对称,则系统必具有线性相位。如何理解呢?

    线性相位所表示的物理意义是系统对所有频率信号所产生的延迟都是一样的。对于因果可实现系统来说,最好的情况是输出仅与当前输入有关,此时延迟为零。一般的因果可实现系统都会产生延迟。

       由傅里叶分析理论可知,在满足一定的条件下,任意信号都可以分解为正弦信号的叠加。如果一个系统不具有线性相位,系统可能会对输入信号造成失真或变形。比如一个方波信号通过一个系统,如果系统具有线性相位,则通过系统后仍然是一个方波,仅仅是时间上有所延迟。这是因为所有的频率都延迟相同的时间。如果系统不具有线性相位的话,输出就不再是标准的方波了,上升沿不再那么陡峭,而是会有一个比较明显的过渡带。而且方波的顶部也会有一些波纹。这从一个侧面也可了解线性相位的重要性。

       同样由傅里叶分析理论,我们知道,频域上的一个点表示了时域的一个正弦信号。比如在频域,在f=0.1fs处有一个值,我们知道,在时域上必有一个频率为0.1fs的正弦信号,为方便描述,用复信号表示:exp(j*2*pi*0.1*n)。由互易性原理可知,时域的一个点表示了频域的一个正弦信号。比如在时域,n=n0处有一个值,在频域必对应一个正弦信号:exp(-j*w*n0),此处w表示数字频率。这点通过DFT的时延性质也很好理解。这也即是说,如果系统冲激响应h(n)时域n=n0有值的话,会造成输入信号n0*Ts时间的延迟。同理,如果h(n)在n=n2也有一个值,并且值的大小与h(n0)相同的话,其造成的延时为n2,如果n0与n2关于n1对称的话,则延迟时间要取n0与n2的平均,也即是这两个点造成的系统延时是n1。同理,如果h(n)序列中的其它点都关于n1对称的话,则每个关于n1对称的点合力作用的结果都是使输入信号延迟n1*Ts秒。那么系统总的延时也就是n1*Ts秒了,从互易性原理出发,我们可以很方便地理解对称性与线性相位的关系,也可以很方便地计算出系统的延迟时间。)

FIR滤波器具有线性相位的条件:单位脉冲响应h(n)(系数),必须是实数,而且应该是奇对称或者偶对称的。

1、FIR滤波器原理

上图中Z的-1次方实际上说的就是一个延迟,旁边标h(i)实际上就是乘以一个h(i)。上面的图完全是和上面的式子是对应的。fir滤波器的fpga实现实际上就是实现上面所写出的那个式子。
什么是有限脉冲响应呢?在fir中体现在什么地方呢?
所谓的有限脉冲响应也就是说它的脉冲响应h(n)是有限个,而不是无限个。我们从fir滤波器的系统函数:
可以看出h(n)只有在n为0到N-1的时不为0,在其他情况下均为0。所以我们说fir是有限脉冲响应的滤波器。
那么iir滤波器为什么是无限脉冲响应呢?
首先iir滤波器的系统函数为:
从上式可以看出iir滤波器的输出不仅和输入有关,而且还和以前的输出有关,也就是说它是一个含有 反馈支路的滤波器。 其单位脉冲响应h(n)是无限的。y(n)=h(n)*x(n)(其中*表示卷积,也就是对应位相乘再相加)从上面系统函数中解出的h(n)是关于n的一个函数,所以就是无限的。
2、实现方法
       运用fpga来实现FIR滤波器的结构多种多样,但是主要有以下几类:串行结构、并行结构、转置型结构、基于FFT算法结构、分布式结构。
写的有点混乱啊,先这样吧,下篇再具体写每种实现方法吧!

 

你可能感兴趣的:(杂类)