您的位置:网站首页 > 电器维修资料网 > 正文 >
基于代数方法分析FIR滤波器
来源: 日期:2013-11-21 20:02:01 人气:标签:
现在重申滤波器类型缩写可能有点老套,fir 就是finite impulse response (有限脉冲响应)的缩写。不过,有些情况下我们确实需要脉冲响应的这种“有限”性。
如果滤波器的脉冲响应时长受到严格限制,那么其“存储器”容量就有限。输入信号发生变化的时间比“现在”要早,即“现在”减去脉冲响应持续时间,因此不会对 近的输出采样产生影响。如果输入稳定为一个常量,那么输出经过脉冲响应同等的持续时间后也会变成常量。换句话说,稳定时间是有限的,而且是确切已知的。
与此形成对比的是,iir 滤波器的输出至少在理论上受到过去很早阶段输入信号的影响。而且输出会在输入稳定后无限长的时间内持续变化。对于标准的量化数字信号来说,很难确切说明输出到底什么时候才会停止变化。事实上,有时输出永远不会完全稳定下来,而是在所谓的“极限环”(limit cycle)模式中变动。这是我们今后要探讨的优缺点权衡问题,现在继续讨论本文的主题。
近期,有同事希望利用滤波器有效抑制 50hz 和 60hz ac 线(加上二次谐波)对微小感应器信号的影响。此外,我们还需要严格限制滤波器的稳定时间。显然,这一要求使得 iir/fir 之间的选择结果必然落在 fir 阵营。就我目前使用的 psoc3 和 psoc5 器件的数字滤波器模块硬件而言,这两种滤波器都适用。
为了充分满足同时进入硬件的滤波器通道数量要求,滤波器必须非常“小”,而且不能采用会造成资源浪费的低效设计方法。我需要根据响应时间要求来设定每个滤波器的系数数量!我将在第二部分介绍具体的实施方法,不过为了便于理解,我们首先要考虑一下 fir 滤波器的含义及其表示方法。
fir 滤波器如何定义?
fir 滤波器完全由一组有序的值来定义,这些值按时间顺序与输入信号相乘(或加权)。当然,信号的延迟采样很简单,只需将值储存在存储器的某个位置然后再读取即可。它不必是数字存储器。fir 滤波器的一种早期形式被称为横向滤波器,根本不会对信号进行数字化,而是直接将电压存储在小的电容器上,然后再进行读取。今天大量用于图像感应器的电荷耦合器件(此前一度用来创建采样模拟电压存储器)串联起来形成延迟线--就此而言,早期的 fir 滤波器其实就是模拟器件。不过这里有些跑题了,我们要回到主题上来。
将这些加权延迟输入信号加在一起,就能得到所需的输出信号。如果此过程中的输入信号是一个脉冲信号,仅在一个采样时间内是非零值,那么滤波器输出(即脉冲响应)的形式与系数序列相同。图 1 给出了滤波器系数的一组实例(用 psoc creator 工具设计的 15-tap fir)以及增益和脉冲响应情况。
图1:15-tap fir 滤波器实例--系数、频率和脉冲响应。
当然,许多方法都可以用来计算系数,得到所需的滤波特性。现在,滤波器设计工作跟烹饪差不多。其他人已经把原料备好,您只需将饭菜放进微波炉里就算完成任务了。此外,您也可自己做一些努力,用基本的原料和工具做成一些新花样。如果您对美食的加工流程有更多认识,那么就会对美食产生更深刻的理解。对于电子设计,特别是滤波器设计来说道理也是如此。
读者会意识到我其实在反复重复一个命题,即有时候需要卷起袖子来自己动手。这样您就能创造出一些市场上没有的独特产品,或者及时发现信号问题所在。
好消息是,即使您不是滤波器专家或数学达人也能做得很好。我们继续用烹饪来打比方,作为一个大厨,您可以用美拉德反应(maillard reaction)来烹制可口佳肴,但不必了解它的化学原理。同样,您也能运用一些代数知识设计出色的滤波器,尽管您可能并不完全了解其真正的含义。这就是我们下面要做的!
将 fir 滤波器想象成多项式
设想一下,将代表 fir 滤波器系数的值序列看成变量 z 的多项式。多项式是变量乘方的总和,每个变量乘方项都乘以某个系数。这就是之前的 fir 滤波器定义。
在研究采样信号和信号处理系统的过程中,我们大量使用变量 z 和它的倒数 z^-1.该变量没有明确的物理含义,但与时间密切相关。z^-1 则与将信号延迟单次采样周期的这种行为有关(数学上称作运算符)。
在因果系统中,输出只能被已经发生的事件影响,也就是延迟的输入信号。结果就是在滤波器方程式中经常出现 z 的负次幂。我们通过与 z 的高次幂相乘可以使多项式看起来更加熟悉。您不必了解 z 变换的原理和方法,只需利用 z 和 z^-1 多项式完成实际工作即可。
图 1 所示滤波器的多项式表现形式如下。为了简化方程式,我降低了系数有效数字的位数。以下包括负次幂[1]和正次幂[2]两种形式。
公式1
公式2
这看起来并不复杂,只是用另一种方式来表达已知的滤波器而已。这种表示方法使我们能够用一些强大的基础代数工具进行分析, 终通过有用的属性对多项式进行综合。关键在于我们能够对此类多项式进行因式分解,使其包含多个线性或二次方程独立子项,并求得 终结果。这会不会唤起您当年代数课上的回忆呢?
为了将多项式进行因式分解,我们需要找到它的根。有一些变量的值可以使多项式的值为零。大多数数学工具都提供用于计算多项式根的函数。根可以是实数(线性项)也可以是一对复数,相乘后成为二次项。整体多项式等于所有二次项和线性项的积。
下面我们来找出示例滤波器的根和因数。我使用 excel 根取得器(excel root finder) 完成这项工作。
- 1
- 2
- 下一页
【看看这篇文章在百度的收录情况】
相关文章
- 上一篇: 电感器在谐振电路中的作用
- 下一篇: 二极管+IGBT:新架构能的应用