新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 基于代数方法分析FIR滤波器

基于代数方法分析FIR滤波器

作者:时间:2012-12-04来源:网络收藏

为什么要使用 呢?我们已经在 PSoC Creator 的工具中引入了优秀的无限脉冲响应(IIR),而且花了很长时间向人们解释为什么IIR 滤波器是一个很好的选择。这种滤波器完成同等滤波工作所需的处理循环次数明显更少。其实, 和 IIR 各有优缺点, 滤波器的脉冲响应有限,这正是我们在最近的项目中选择FIR的原因所在。

本文引用地址:http://www.eepw.com.cn/article/185545.htm

  现在重申滤波器类型缩写可能有点老套,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 滤波器实例--系数、频率和脉冲响应。

  图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 下一页

关键词: FIR 方法 分析 滤波器

评论


相关推荐

技术专区

关闭