在信号处理中,滤波是最经常的信号处理方式之一。那么,什么样的滤波器才是一个“好”的滤波器呢?对这个问题最直接的回答自然是“满足设计性能要求的滤波器”就是好的滤波器了。在理论上这自然是无可挑剔的,因为一般在课堂上,在教课书中,总是给定一个滤波器的特性曲线,然后照章设计就行了。可是在实际的工程实践中,谁来告诉所需滤波器的特性曲线呢?或者说,提炼出所需滤波器的特性曲线本身就是很重要,很基础,也很困难的一环。因为这需要深入分析待处理信号的很多特性,而且因为待处理信号的多样性,很难有统一的解决办法。对信号特性的解读,需要的不仅是信号处理方面的知识,更多的是需要与信号源相关的专业知识。比如对地震信号的分析,需要地震学方面的基础;对心电图信号的解读,需要医学方面的专业背景;对雷达信号的解读,需要雷达专业的背景,等等。而在分析信号特性基础上,提炼出所需滤波器的特性曲线之后,才是一个通用意义上的信号处理问题,这时候反而比较好解决了,因为此时有一套通用的处理方法,比如FIR的窗函数法,IIR的双线性变换法,等等。
如此说来,也不是说对不同的来源的信号就没有一点规律可循。通常来说,信号中的信息有两种编码方式:时域编码和频域编码。也即是说信号中信息主要体现在时域或者频域,这个在之前已经讨论过。对于不同编码方式的信号,其“好”滤波器的标准是不一样的。但对同样编码方式的信号,其“好”滤波器还是有一定准则的。
对时域编码信号而言,好滤波器最重要的特性是其阶跃响应,而不是通常理解的冲激响应。因为在时域而言,当然也包括空域,滤波器的阶跃响应体现了人类认识事务的方式。最简单的例子是,当我们看到一串信号,也不知道是什么信号,最直观的反应是看信号在哪个地方有突变,那段信号起伏不大,在哪个地方信号有明显的突变,等等。这些正是滤波器阶跃响应所表现的特性。滤波器的阶跃响应主要有三个参数:阶跃响应的斜率,过冲及线性相位。我们知道,阶跃信号是从0变为1的信号,所谓的阶跃响应的斜率就是系统响应指从0变到1的快慢程度。一般讲,当然希望这个斜率越大越好,最理想的情况是也如阶跃信号一般,直接从0变到1。因为这样的话,滤波器就能迅速对信号的变化做出反映。从阶跃信号还可以看出,在突变之前,一直都是0,非常平坦,突变之后,一直都是1,同样也非常平坦。所谓的过冲,就是指滤波器响应在0的时候不是平坦的,而是是有一些波动,同样,在1的时候也有一些波动。理想的情况当然是希望波动越小越好,最好就如理想的阶跃信号一般,没有任何的波动,非常平坦。因为如果滤波器响应有波动的话,在输出信号也有波动的情况下,如何判断是信号本身的波动呢,还是滤波器响应的波动?所谓的线性相位是指响应从0变化到1的过程是对称的。因为时域编码的信号其信息主要包含在相位谱中,因此,对线性相位有比较高的要求。
对频域编码的信号而言,滤波器最重要的特性是冲激响应的傅里叶变换。在通常的教科书中都是这样描述滤波器特性的。滤波器的频域性能通常也有3个主要的描述参数:通带波纹,过渡带宽,阻带衰减。所谓的通带波纹是指在通带内,实际的滤波器通常都是有一些起伏的。一般而言,当然是希望这个起伏越小越好,因为这样滤波器对通带内的信号就不产生任何的影响。所谓的过渡带宽是指从通带变化阻带的宽度,这个参数当然也是越小越好,最好的就是如理想滤波器一般,直接从通带变成阻带。当然实际中这是不可能的,必然会有一个宽度。所谓的阻带衰减是指阻带相对通带的衰减系数。这个值就绝对值而言,自然是越小越好,因为这样保证不在通带内的信号方法倍数尽可能的小,理想的情况是为0,保证不在通带内的信号全部被衰减。当然这在实际中也是不可能的。
最后还要强调一点,一个滤波器不可能在时域性能最好,同时在频域也性能最好。更一般的情况是,时域性能好的滤波器,通常其频域性能很差;而频域性能好的滤波器,通常时域性能很差。这是由时频的测不准原理决定的。因此,在滤波器设计过程中,一定要先搞清楚信号到底是时域编码还是频域编码,这样在选择滤波器上就非常有针对性。