有限脉冲响应

维基百科,自由的百科全书
跳转至: 导航搜索

有限脉冲响应滤波器是数字滤波器的一种,简称FIR数字滤波器finite impulse response filter)。这类滤波器对于脉冲输入信号的响应最终趋向于0,因此是有限的,而得名。它是相对于无限脉冲响应滤波器(IIR)而言。由于无限脉冲响应滤波器中存在反馈回路,因此对于脉冲输入信号的响应是无限延续的。

讨论[编辑]

有限脉冲响应滤波器是一线性系统,输入信号,x(0), x(1), ..., x(n),经过该系统后的输出信号,y(n)可表示为:

y\left (n\right)=h_0 x\left(n\right)+ h_1 x\left(n-1 \right)+...+h_N x\left(n-N\right)

其中,h_0, h_1, ..., h_N是滤波器的脉冲响应,通常称为滤波器的系数。N是滤波器的阶数。上式也可表示为:

y\left (n\right)=\sum_{k=0}^N h_k x(n-k).

如果输入信号为脉冲信号\delta(n)

\delta(n) = \left\{\begin{matrix}
1 & \mbox{if } n=0  \\
0 & \mbox{if } n \ne 0 \end{matrix}\right.

输出信号则为:

y\left (n\right)=\sum_{k=0}^N h_k \delta(n-k)=h_n.

这也是脉冲响应h_n得名的原因,即,它是滤波器脉冲输入的响应。 有限脉冲响应滤波器的传递函数可由其脉冲响应的z变换获得:

H(z) = Z\{h(n)\} = \sum_{n=-\infty}^{\infty} h(n) z^{-n}=\sum_{n=0}^N h(n) z^{-n}.

因此,有限脉冲响应滤波器的频率响应为:

H(e^{j\omega}) = \sum_{n=0}^{N} h(n) e^{-j\omega n}.

特性[编辑]

有限脈衝響應濾波器(FIR filter)的優點:

  • 脈衝響應(impulse response)為有限長:造成當輸入數位訊號為有限長的時候,輸出數位訊號也為有限長。
  • 比無限脈衝響應濾波器(IIR filter)較容易最佳化(optimize)。
  • 線性相位(linear phase):造成h(n)\,是偶對稱(even)或奇對稱(odd)且有限長。
  • 一定是穩定的(stable):因為Z轉換(Z transform)後所有的極點(pole)都在單位圓內。

有限脈衝響應濾波器(FIR filter)的缺點:

  • 設計方式較無限脈衝響應濾波器(IIR filter)不容易。

設計方法[编辑]

1. least MSE(mean square error):最小化平均誤差。

(1)基本思想
MSE=f_s^{-1}\int_{-f_s/2}^{f_s/2} |H(f)-H_d(f)|^2\,df
其中,f_s\,為取樣頻率(sampling frequency),H(f)\,為設計出的濾波器之頻譜,H_d(f)\,為欲設計的濾波器(desired filter)之頻譜。
(2)設計步驟
 h[n] 為奇對稱或偶對稱,則可令R(F) = e^{j2 \pi Fk} H(F) = \sum_{n=0}^k s[n] \cos (2 \pi nF)
經過數學推導,我們可將MSE表示為
 MSE = s^2[0] + \frac{1}{2} \sum_{n=1}^{k} -2 \int_{-1/2}^{1/2} \sum_{n=0}^k s[n] \cos (2 \pi nF) H_d(F) dF + \int_{-1/2}^{1/2} {H_d}^2(F) 
為了找出MSE的極值,我們可讓MSE對s[n]微分可得
 \frac{\partial MSE}{\partial s[0]} = 2s[0] -2 \int_{-1/2}^{1/2} H_d(F) dF
 \frac{\partial MSE}{\partial s[n]} = s[n] -2 \int_{-1/2}^{1/2} \cos (2 \pi nF) H_d(F) dF, \ \ for \, n \ne 0
 \frac{\partial MSE}{\partial s[n]} = 0, for\; all\; n,我們可得在MSE最小時
 s[0] = \int_{-1/2}^{1/2} H_d(F) dF, \ \ s[n] = 2 \int_{-1/2}^{1/2} \cos (2 \pi nF) H_d(F) dF 
由此我們可能符合Least MSE的脈衝響應 h[n]
h[k] = s[0], h[k+n] = s[n]/2, h[k-n]=s[n]/2, \; for \; n=1,2,3, \ldots, k, \; where \; k = (N-1)/2 
其中, h[n] =0 \; for\, n < 0 \; and \; n \ge N
(3)設計範例
欲設計濾波器為高通濾波器,pass band為0.25< F \le 0.5\,且stop band為0 \le F \le 0.25\,
其中,F\,為正規化頻率(Normalized Frequency),定義為F=f/f_s\,f_s\,為取樣頻率。
下圖為least MSE方式所設計出來的濾波器(脈衝響應長度N=41\,):
MSE.png
下圖為least MSE方式所設計出來的濾波器與欲設計的濾波器的誤差(去除transition band的部分):
MSE2.png

2. Minimax(又稱Remez exchange algorithm):最小化最大誤差。

(1)基本精神
Maximal Error=Max_f|H(f)-H_d(f)|\,
其中,Max_f\,為對頻率取函數最大值,但在Minimax設計方式中,transition band通常不被考慮。H(f)\,為設計出的濾波器之頻譜,H_d(f)\,為欲設計的濾波器(desired filter)之頻譜。
(2)設計步驟
此演算法利用疊代的方式最小化濾波器在通帶(pass band)和止帶(stop band)的最大誤差,詳細設計步驟可見帕克斯-麥克萊倫演算法
(3)設計範例
欲設計濾波器為高通濾波器,pass band為0.25< F \le 0.5\,且stop band為0 \le F \le 0.25\,
其中,F\,為正規化頻率(Normalized Frequency),定義為F=f/f_s\,f_s\,為取樣頻率。
下圖為Minimax方式所設計出來的濾波器(脈衝響應長度N=41\,):
MAX PIR filter.png
下圖為least MSE方式所設計出來的濾波器與欲設計的濾波器的誤差(去除transition band的部分):
MAX2.png

3. Frequency sampling:所設計出的濾波器的頻譜某些頻率取樣點與欲設計濾波器頻譜的相同頻率取樣點的響應一樣。

(1)基本精神
H(f)\,為設計出的濾波器之頻譜,H_d(f)\,為欲設計的濾波器(desired filter)之頻譜,
H(mf_s/N)=H_d(mf_s/N)\,m=0,1,2,...,N-1\,N\,為濾波器長度。
若以正規化頻率F=f/f_s\,表示:
H(m/N)=H_d(m/N)\,m=0,1,2,...,N-1\,N\,為濾波器長度。
Frequency sampling的設計方法較為簡單且值觀,但與前兩種方法相比,得到的filter並不是最佳化濾波器。
其頻率響應與理想濾波器間的微小震盪(ripple)大小變化介於Least MSE和Minimax兩種設計方法的濾波器之間。
我們可以利用設定轉換頻帶的方式,允許在某個頻帶間 H(m/N) \ne H_d(m/N)
然而,若要透過上述方法設定轉換頻帶的H(m/N)值,藉此最小化頻率響應在通帶和止帶的微小震盪,
需要透過線性規劃(linear programming),將會增大運算所需時間。
(2)設計步驟
(i)計算H(m/N)=H_d(m/N)\,的反轉離散傅立葉轉換(inverse discrete Fourier transform, IDFT)
 r_1[n] = \frac{1}{N} \sum_{m=0}^{N-1 } H_d( \frac{m}{N} exp(j \frac{2\pi m}{N} n)), \ \ n = 0,1, \ldots, N-1 \
(ii)當N為奇數時,令
 r[n] = r_1[n], \ \ for \; n=0,1, \ldots, k \ \ k=(N-1)/2
 r[n-N] = r_1[n], \ \ for \; n=k+1, k+2, \ldots, N-1
此時 r[n] 的區間為 n \in \left[ -(N-1)/2, (N-1)/2 \right]
由此可得H(f)\,的脈衝響應 h[n] = r[n-K] \ \ k=(N-1)/2
(3)設計範例
欲設計濾波器為高通濾波器,pass band為0.25< F \le 0.5\,且stop band為0 \le F \le 0.25\,
其中,F\,為正規化頻率(Normalized Frequency),定義為F=f/f_s\,f_s\,為取樣頻率。
下圖為frequency sampling方式所設計出來的濾波器(脈衝響應長度N=33\,):
FSAMPLE4.png
下圖為frequency sampling方式所設計出來的濾波器脈衝響應:
FSAMPLE3.png

濾波器設計方法的比較[编辑]

以下嘗試以濾波器設計方法、設計方法的限制、以及所設計濾波器的效果三方面,來比較最小化平均誤差(Least MSE)、最小化最大誤差(Minimax)與頻率取樣(Frequency sampling)三種設計方法的差異。

1.以設計方法而論

  1. Least MSE:使用到內積以及反矩陣的運算。
  2. Minimax:使用recursive的方式,所以相對而言較為複雜。
  3. Frequency sampling:利用到inverse fourier transform,就想法而言是最簡單的。

2.以方法的限制而論

  1. Least MSE:使用上的限制較少。
  2. Minimax:所設計濾波器必須要是偶對稱或是奇對稱才可以,且必須要有轉換頻帶(transition band)
  3. Frequency sampling:無法使用權重函數(weighting function),且轉換頻帶的加入也很難做到最佳化。

3.以效果而論

  1. Least MSE:平均誤差最小,一般而言系統穩定性較好。
  2. Minimax:最大誤差最小,一般而言表現較好,且可以保證系統的運作在一定的誤差內。
  3. Frequency sampling:很難做到最佳化,且容易有aliasing effect、Gibb’s phenomenon等等缺點,所以是較不普及的設計方法。

參考文獻[编辑]