数字信号处理最常见的面试题,请简述FIR和IIR的区别。其中的一个区别是FIR可以方便地实现线性相位,而IIR很难实现线性相位。那这个线性相位指的是什么呢?
举一个最简单的FIR的例子,延迟。假设8kHz的采样频率,设计了一个FIR,仅用来实现一个采样周期的延迟。利用Matlab来观看这个滤波器的频率响应。
num = [0 1]
den = [1 1]
fvtool(num,den)
下图中,蓝色的实线表示的幅频响应,为0dB。绿色实现表示相频响应,主要看相频响应。图中对1kHz频点的横纵坐标有一个截图,8kHz采样率下,1kHz的信号会得到8个采样点。一个采样周期的延迟,对于1kHz信号来说,其延迟大小是。而2kHz信号会得到4个采样点,那么一个采样周期带来的延迟是图中也可以得到验证。
这个滤波器对整个信号只产生了延迟一个采样周期的效果,实现了线性相位。从这个例子可以很清楚地看到,线性相位指的是滤波器对每个频点的相频响应是一个线性关系。直观地说,对于一个全通滤波器来说,就是不会改变信号的形状。