#! https://zhuanlan.zhihu.com/p/671077976
FIR数字滤波器的设计I
如果数字滤波器的单位抽样响应\(h[n]\)是有限长的,则定义为FIR数字滤波器。
FIR数字滤波器跟IIR数字滤波器相比有如下的特点:
由于其单位抽样响应是有限长的,因此FIR滤波器是稳定的。
FIR数字滤波器的系统函数\(H(z)\)没有分母的存在,结构上是非递归的,因此没有从输出到输入的反馈。
FIR数字滤波器很容易设计成满足线性相位的数字滤波器。
在数据传输和图像传输系统中,相位失真通常对系统的影响很大,理论上最好的方式是相位响应为0,这样就没有相位上的失真,但实际系统中,如果相位为零,则频率响应为实函数,根据离散时间傅里叶变换的对称性质,则系统在时域必须偶对称,时域的偶对称必然造成系统是非因果的,因此是不可实现的。通常在实际系统设计中,如果对于相位失真有要求的,我们将系统设计成线性相位的系统,即相位响应为频率的线性函数,这样在时域上只是对信号引入了固定的延迟,若是非线性相位的系统,则非线性相位失真会引起信号时域波形较大变化。
通常线性相位系统有如下的频率响应:
\(\displaystyle H(e^{j\omega}) = A(e^{j\omega})e^{-j\omega\alpha}\)
其中\(A(e^{j\omega})\)为实函数(可正可负),我们也定义其为幅度函数,\(\alpha\)为常数。相位函数\(\theta(\omega) = -\omega\alpha\),是数字频率\(\omega\)的线性函数。这样的系统也可以称为严格线性相位系统。
如果系统有如下的频率响应:
\(\displaystyle H(e^{j\omega}) = A(e^{j\omega})e^{-j\alpha\omega + j \beta}\)
其中\(\alpha\)和\(\beta\)为常数,则该系统称为一般的线性相位系统。此时相位函数为\(\theta(\omega) = \beta-\omega\alpha\)。
线性相位FIR滤波器的条件
FIR滤波器的频率响应为:
当系统具有严格线性相位时,
\(\displaystyle \tan(\omega \alpha) = \frac{\sin(\omega \alpha)}{\cos(\omega \alpha)}=\frac{\sum_{n=0}^{N-1}h[n]\sin(\omega n)}{\sum_{n=0}^{N-1}h[n]\cos(\omega n)}\)
于是可以得到:
\(\displaystyle \sum_{n=0}^{N-1}h[n]\sin[(\alpha-n)\omega]=0\)
要使上式成立,必须满足:
\(\displaystyle \alpha=\frac{N-1}{2}\)
\(\displaystyle h[n] = h[N-1-n], \quad 0 \leq n \leq N-1 \)
因此,FIR滤波器器具有严格线性相位的条件是其单位抽样响应\(h[n]\)是关于\(n=(N-1)/2\)为中心偶对称的。相位响应\(\theta(\omega) = -\omega (N-1)/2\)是关于\(\omega\)的线性函数,线性的相位在时域上表现为固定的时延。因此系统的时延为\((N-1)/2\)。
当系统具有一般的线性相位时,
\(\displaystyle \tan(\beta-\omega \alpha) = \frac{\sin(\beta-\omega \alpha)}{\cos(\beta-\omega \alpha)}=\frac{-\sum_{n=0}^{N-1}h[n]\sin(\omega n)}{\sum_{n=0}^{N-1}h[n]\cos(\omega n)}\)
于是可以得到:
\(\displaystyle \sum_{n=0}^{N-1}h[n]\sin[(n-\alpha)\omega+\beta]=0\)
要使上式成立,必须满足:
\(\displaystyle \alpha=\frac{N-1}{2}\)
\(\displaystyle \beta = \pm \frac{\pi}{2}\)
\(\displaystyle h[n] = -h[N-1-n], \quad 0 \leq n \leq N-1 \)
因此,FIR滤波器器具有一般的线性相位的条件是其单位抽样响应\(h[n]\)是关于\(n=(N-1)/2\)为中心奇对称的。\(\beta=\pm \pi/2\),系统的时延为\((N-1)/2\)。
幅度函数的特性
根据\(N\)的取值以及\(h[n]\)的对称性,可以将FIR滤波器分为四类:
\(h[n]\)偶对称,\(N\)为奇数;我们通过分析其频率响应来得出该类滤波器的特点。
\[\begin{split} \begin{align*} H(e^{j\omega}) & = \sum_{n=0}^{N-1}h[n]e^{-j\omega n} \\ & = \frac{1}{2}(\sum_{n=0}^{N-1}h[n]e^{-j\omega n}+ \sum_{n=0}^{N-1}h[N-1-n]e^{-j\omega n}) \\ & = \frac{1}{2}(\sum_{n=0}^{N-1}h[n]e^{-j\omega n}+ \sum_{n=0}^{N-1}h[n]e^{-j\omega(N-1-n)}) \\ & = e^{-j\omega(N-1)/2}(\frac{1}{2}(\sum_{n=0}^{N-1}h[n]e^{-j\omega (n-\frac{N-1}{2})}+ \sum_{n=0}^{N-1}h[n]e^{-j\omega(\frac{N-1}{2}-n)})) \\ & = e^{-j\omega(N-1)/2} \sum_{n=0}^{N-1}h[n]\cos(\omega(\frac{N-1}{2}-n)) \end{align*}\end{split}\]因此,幅度函数如下:
\(\displaystyle H(\omega)=\sum_{n=0}^{N-1}h[n]\cos(\omega(\frac{N-1}{2}-n))\)
通过换元变换,也可以写成:
\(\displaystyle H(\omega)=\sum_{n=0}^{(N-1)/2}a[\frac{N-1}{2}-n]\cos(\omega n)\)
其中
\(\displaystyle a[0]=h[(N-1)/2]\)
\(\displaystyle a[n]=2h[(N-1)/2-n],\quad n=1,2,\cdots,(N-1)/2\)
由于\(\cos(n\omega)\)对于\(\omega=0,\pi,2\pi\)皆为偶对称,所以幅度函数\(H(\omega)\)对于\(\omega=0,\pi,2\pi\)也是偶对称的。
\(h[n]\)偶对称,\(N\)为偶数;其幅度函数如下:
\(\displaystyle H(\omega)=2\sum_{n=1}^{N/2}h[\frac{N}{2}-n]\cos[\omega (n-\frac{1}{2})]\)
\(H(\pi)=0\),因此高通或带阻滤波器不能用类型的滤波器。
\(h[n]\)奇对称,\(N\)为奇数;
\[\begin{split} \begin{align*} H(e^{j\omega}) & = \sum_{n=0}^{N-1}h[n]e^{-j\omega n} \\ & = \frac{1}{2}(\sum_{n=0}^{N-1}h[n]e^{-j\omega n}- \sum_{n=0}^{N-1}h[N-1-n]e^{-j\omega n}) \\ & = \frac{1}{2}(\sum_{n=0}^{N-1}h[n]e^{-j\omega n}- \sum_{n=0}^{N-1}h[n]e^{-j\omega(N-1-n)}) \\ & = \frac{1}{2}e^{-j\omega(N-1)/2}(\sum_{n=0}^{N-1}h[n]e^{-j\omega (n-\frac{N-1}{2})}- \sum_{n=0}^{N-1}h[n]e^{-j\omega(\frac{N-1}{2}-n)}) \\ & = e^{-j\omega(N-1)/2+j\pi/2} \sum_{n=0}^{N-1}h[n]\sin(\omega(\frac{N-1}{2}-n)) \end{align*}\end{split}\]因此,幅度函数如下:
\(\displaystyle H(\omega)=\sum_{n=0}^{N-1}h[n]\sin(\omega(\frac{N-1}{2}-n))\)
通过换元和变换后,也可以写成:
\(\displaystyle H(\omega)=2\sum_{n=0}^{(N-1)/2}h[\frac{N-1}{2}-n]\sin(\omega n),\quad n=1,2,\cdots,\frac{N-1}{2}\)
\(H(\omega)\)对于\(\omega=0,\pi,2\pi\)处都为0;
\(H(\omega)\)对于\(\omega=0,\pi,2\pi\)是奇对称的。
\(h[n]\)奇对称,\(N\)为偶数;
\(\displaystyle H(\omega)=2\sum_{n=1}^{N/2}h[\frac{N}{2}-n]\sin[\omega (n-\frac{1}{2})],\quad n=1,2,\cdots,\frac{N}{2}\)
\(H(\omega)\)对于\(\omega=0,2\pi\)处为0;
\(H(\omega)\)对于\(\omega=0,2\pi\)是奇对称的,对于\(\omega=\pi\)是偶对称。
零极点分析
线性相位的FIR滤波器只有在零点位置有极点。因此,我们只需要分析其零点位置即可。
若\(z=z_i\)是\(H(z)\)的零点,则\(z^{-1}=z_i^{-1}\)也是\(H(z)\)的零点。另外由于\(h[n]\)是实数序列,如果\(z_i\)是复数,则\(H(z)\)的零点都是共轭成对出现的,\(z_i^{*}\)也是\(H(z)\)的零点。