fbpx
维基百科

帕克斯-麥克萊倫演算法

帕克斯-麥克萊倫演算法(英語:Parks–McClellan algorithm,又稱為Remez-exchange algorithm、Mini-max algorithm),為一個用以設計最佳化有限脈衝響應濾波器(finite impulse response filter)的疊代演算法,由James McClellan和Thomas Parks於1972年的著作中提出。

此演算法的主要精神,在於利用疊代的方式最小化濾波器在通帶(pass band)和止帶(stop band)的最大誤差,因此有時也稱為最小化最大誤差演算法(Mini-max filter design)。由於帕克斯-麥克萊倫演算法也屬於Remez-exchange algorithm為了設計有限脈衝響應濾波器而產生的一種變形,因此也有人以Remez-exchange algorithm代稱。

有限脈衝響應濾波器設計 编辑

有限脈衝響應濾波器(finite impulse response filter)利用有限的點數來表示濾波器的脈衝響應,對於N點有限脈衝響應濾波器

 

有限脈衝響應濾波器的優點在於脈衝響應是有限的,使得設計上較為簡單。然而如何在有限的點數下,設計出效果最近似於理想目標的濾波器,則是帕克斯-麥克萊倫演算法所欲解決的問題。

對於濾波器設計,帕克斯-麥克萊倫演算法的精神在於最小化最大誤差。在忽略通帶與止帶之間轉換帶(transition band)的情況下,最小化通帶與止帶的最大誤差: 

其中 為設計濾波器的頻率響應, 則為理想目標濾波器的頻率響應。

在數位濾波器設計中,常常會將信號的頻率做取樣,使得頻譜具有週期性。設計者即可針對一個週期去做計算就好,減少計算量。所以前兩行的最大誤差可寫成:

 

其中 為正規化頻率(normalized frequency): 

濾波器設計時,可利用weighting function將較重要的頻帶比重放大。如此一來,在利用帕克斯-麥克萊倫演算法設計濾波器時,則會較重視比重較大頻帶的誤差。

若在加入weighting function情況下,可將帕克斯-麥克萊倫演算法一般化。此時的最大誤差則可表示為: 

另外在數學上,此種將向量取絕對值並找出某個最大的元素的算法,稱為取 範數。若能將 離散化寫成矩陣的形式,就可以用此方法快速找出最大誤差。

帕克斯-麥克萊倫演算法 编辑

下面的文章將說明如何以該演算法設計最佳化濾波器,假設

  • 濾波器長度為N,且N為奇數可表示成 
  • 目標濾波器的頻率響應 偶函數
  •  用以表示所指定的權重函數(weighting function)。功用是將特定頻段(通常是通帶內)的誤差調得更小,重視某頻段的最佳化。

此演算法共分為6個步驟:

  1. 設定極值點起始值
    在範圍 的範圍內,任意選擇 點頻率 作為極值點(extreme frequency)的起始值。
    將此時的最大誤差 設為 ,但所選擇的 點起始值不能落在轉換頻帶(transition band),也不能將所有的起始值設在止帶(stop band)上。
    極端頻率為最後完成設計的濾波器頻率響應中,會出現最大誤差的頻率。一開始所給定的起始值是隨機的,會在此演算法之後的步驟中逐漸收斂。
    此時,令在各點極端頻率的誤差為 。 其中e為設計濾波器響應式與理想濾波器響應式在相對應頻率點的誤差值。
  2. 計算目前的頻率響應
    為了方便演算法運算之後的進行,我們可稍微整理誤差的表示方式。若令
     。此 是設計的濾波器響應 的平移。  的正中央項 ( 舉例:  )。
      。因為 偶函數,所以 也是偶函數,則再設計 ,計算 的一半範圍就好。
    如此一來,可將在第1步驟中所得到的誤差式表示為:
     
    其中,
      (由於使用 ,計算項次從0到k)
    經過整理之後可得
     
    上述的誤差關係式,可表示為矩陣形式 
     
    因此,我們可由 計算 
  3. 計算誤差函數
    計算誤差函數 
     
  4. 尋找極值點
     中,找k+2個區域極大或極小值,將區域極大或極小值出現的頻率標示為 
    區域極大或極小值的判斷規則:
    • 不是在邊界處的區域高峰(peaks)或低谷(dips)。在此,邊界區域即為 以及頻率轉換帶的兩邊。
    • 對於在邊界區域的頻率點,可用下列的標準判斷是否為區域極大或極小:  為同相時,右邊界是極值點;反相時,左邊界是極值點;其他情況非極值點。
    若找到多於 個極值點,選擇極值點的優先順位為:
    1. 優先選擇不在邊界的極值點。
    2. 其次選在邊界的極值點中, 較大的,直到湊足 個極值點為止。
    3. 當邊界的極值點的 一樣大時,優先選擇轉換頻帶兩旁的點。
  5. 判斷誤差是否收斂
    計算誤差的最大值,令其為 
     為現在的誤差最大值, 為前一輪計算的誤差最大值,則利用下列規則判斷演算法的下一步:
    1.  ,設定 ,回到步驟2。
    2.  ,進行步驟6。
  6. 計算所設計濾波器的脈衝響應 
    由先前在步驟2中的關係式,我們可得
     
     即為我們所求的脈衝響應。
權重函數 濾波器響應的影響 编辑

當權重函數在帶內設計為1,在帶外設計為小於1,會讓濾波器較重視通過帶通頻段的訊號。

當權重函數在帶外設計為1,在內設計為小於1,會讓濾波器具有較好的濾除雜訊的能力。

特徵 编辑

用此方法設計出來的濾波器,一定會滿足以下兩個情況:

  1. 有k+2個以上的極值點(極大點與極小點)。
  2. 在極點上, 
過渡頻段 编辑

過渡頻段(transition band)對設計濾波器的誤差也會有影響。將過渡頻段設計地窄一些,  的誤差就會比較大;將過渡頻段設計地寬一些,  的誤差就會比較小。再設計上可以適當的增加過渡頻段寬度,讓通帶和止帶地響應更趨近於理想值。

假設我們想要帶通段的漣波小於等於 ,帶止段的漣波小於等於 ,過渡頻段小於  (    為過渡頻段的上、下界)。則要設計濾波器長度 為:

 

移項可得: 

若要設計的頻段中有多的過渡頻段,則 取最小長度的過渡頻段帶入計算。

對於一固定長度的數位濾波器,再設計上可以犧牲一些頻段留給過渡頻段,將漣波縮小。但要注意不可將過渡頻段設計過長,因為過渡頻段是無法使用的。

參考文獻 编辑

  • Jian-Jiun Ding (2013), Advanced Digital Signal Processing (页面存档备份,存于互联网档案馆) [viewed 27/06/2013]
  • T. W. Parks and J. H. McClellan, “Chebyshev Approximation for Nonrecursive Digital Filter with Linear Phase”, IEEE Trans. Circuit Theory, vol. 19, no. 2, pp. 189-194, March 1972.
  • J. H. McClellan, T. W. Parks, and L. R. Rabiner “A computer program for designing optimum FIR linear phase digital filter”, IEEE Trans. Audio- Electroacoustics, vol. 21, no. 6, Dec. 1973.
  • F. Mintz and B. Liu, “Practical design rules for optimum FIR bandpass digital filter”, IEEE Trans. ASSP, vol. 27, no. 2, Apr. 1979.

帕克斯, 麥克萊倫演算法, 英語, parks, mcclellan, algorithm, 又稱為remez, exchange, algorithm, mini, algorithm, 為一個用以設計最佳化有限脈衝響應濾波器, finite, impulse, response, filter, 的疊代演算法, 由james, mcclellan和thomas, parks於1972年的著作中提出, 此演算法的主要精神, 在於利用疊代的方式最小化濾波器在通帶, pass, band, 和止帶, stop, ba. 帕克斯 麥克萊倫演算法 英語 Parks McClellan algorithm 又稱為Remez exchange algorithm Mini max algorithm 為一個用以設計最佳化有限脈衝響應濾波器 finite impulse response filter 的疊代演算法 由James McClellan和Thomas Parks於1972年的著作中提出 此演算法的主要精神 在於利用疊代的方式最小化濾波器在通帶 pass band 和止帶 stop band 的最大誤差 因此有時也稱為最小化最大誤差演算法 Mini max filter design 由於帕克斯 麥克萊倫演算法也屬於Remez exchange algorithm為了設計有限脈衝響應濾波器而產生的一種變形 因此也有人以Remez exchange algorithm代稱 目录 1 有限脈衝響應濾波器設計 2 帕克斯 麥克萊倫演算法 2 1 權重函數 UNIQ postMath 0000003C QINU 濾波器響應的影響 3 特徵 3 1 過渡頻段 4 參考文獻有限脈衝響應濾波器設計 编辑有限脈衝響應濾波器 finite impulse response filter 利用有限的點數來表示濾波器的脈衝響應 對於N點有限脈衝響應濾波器h n 0 f o r n lt 0 a n d n N N i s a f i n i t e n u m b e r displaystyle h n 0 for n lt 0 and n geq N N is a finite number nbsp 有限脈衝響應濾波器的優點在於脈衝響應是有限的 使得設計上較為簡單 然而如何在有限的點數下 設計出效果最近似於理想目標的濾波器 則是帕克斯 麥克萊倫演算法所欲解決的問題 對於濾波器設計 帕克斯 麥克萊倫演算法的精神在於最小化最大誤差 在忽略通帶與止帶之間轉換帶 transition band 的情況下 最小化通帶與止帶的最大誤差 Max f H f H d f displaystyle underset f operatorname Max left H f H d f right nbsp 其中H f n h n e j 2 p f n displaystyle H f sum n infty infty h n e j2 pi fn nbsp 為設計濾波器的頻率響應 H d f displaystyle H d f nbsp 則為理想目標濾波器的頻率響應 在數位濾波器設計中 常常會將信號的頻率做取樣 使得頻譜具有週期性 設計者即可針對一個週期去做計算就好 減少計算量 所以前兩行的最大誤差可寫成 Max F H F H d F displaystyle underset F operatorname Max left H F H d F right nbsp 其中F displaystyle F nbsp 為正規化頻率 normalized frequency F f f s displaystyle F frac f f s nbsp 濾波器設計時 可利用weighting function將較重要的頻帶比重放大 如此一來 在利用帕克斯 麥克萊倫演算法設計濾波器時 則會較重視比重較大頻帶的誤差 若在加入weighting function情況下 可將帕克斯 麥克萊倫演算法一般化 此時的最大誤差則可表示為 Max f W f H f H d f displaystyle underset f operatorname Max left W f left H f H d f right right nbsp 另外在數學上 此種將向量取絕對值並找出某個最大的元素的算法 稱為取L displaystyle L infty nbsp 範數 若能將H F H d F displaystyle H F H d F nbsp 離散化寫成矩陣的形式 就可以用此方法快速找出最大誤差 帕克斯 麥克萊倫演算法 编辑下面的文章將說明如何以該演算法設計最佳化濾波器 假設 濾波器長度為N 且N為奇數可表示成N 2 k 1 displaystyle N 2k 1 nbsp 目標濾波器的頻率響應H d F displaystyle H d F nbsp 為偶函數 W F displaystyle W F nbsp 用以表示所指定的權重函數 weighting function 功用是將特定頻段 通常是通帶內 的誤差調得更小 重視某頻段的最佳化 此演算法共分為6個步驟 設定極值點起始值 在範圍0 F 0 5 displaystyle 0 leq F leq 0 5 nbsp 的範圍內 任意選擇k 2 displaystyle k 2 nbsp 點頻率F 0 F 1 F 2 F k 1 displaystyle F 0 F 1 F 2 ldots F k 1 nbsp 作為極值點 extreme frequency 的起始值 將此時的最大誤差E 1 displaystyle E 1 nbsp 設為 displaystyle infty nbsp 但所選擇的k 2 displaystyle k 2 nbsp 點起始值不能落在轉換頻帶 transition band 也不能將所有的起始值設在止帶 stop band 上 極端頻率為最後完成設計的濾波器頻率響應中 會出現最大誤差的頻率 一開始所給定的起始值是隨機的 會在此演算法之後的步驟中逐漸收斂 此時 令在各點極端頻率的誤差為 H F m H d F m W F m 1 m 1 e w h e r e m 0 1 2 k 1 displaystyle left H F m H d F m right W F m 1 m 1 e where m 0 1 2 ldots k 1 nbsp 其中e為設計濾波器響應式與理想濾波器響應式在相對應頻率點的誤差值 計算目前的頻率響應 為了方便演算法運算之後的進行 我們可稍微整理誤差的表示方式 若令 r n h n k k N 1 2 displaystyle r n h n k k N 1 2 nbsp 此r n displaystyle r n nbsp 是設計的濾波器響應h n displaystyle h n nbsp 的平移 r 0 displaystyle r 0 nbsp 為h n displaystyle h n nbsp 的正中央項 舉例 r 0 h k r 1 h k 1 displaystyle r 0 h k r 1 h k 1 nbsp s 0 r 0 s n 2 r n f o r 0 lt n k displaystyle s 0 r 0 s n 2r n for 0 lt n leq k nbsp 因為H d F displaystyle H d F nbsp 為偶函數 所以r n displaystyle r n nbsp 也是偶函數 則再設計s n displaystyle s n nbsp 計算r n displaystyle r n nbsp 的一半範圍就好 如此一來 可將在第1步驟中所得到的誤差式表示為 R F m H d F m W F m 1 m 1 e w h e r e m 0 1 2 k 1 displaystyle left R F m H d F m right W F m 1 m 1 e where m 0 1 2 ldots k 1 nbsp 其中 R F n 0 k s n cos 2 p n F e j 2 p F k H F displaystyle R F sum n 0 k s n cos 2 pi nF e j2 pi Fk H F nbsp 由於使用s n displaystyle s n nbsp 計算項次從0到k 經過整理之後可得 n 0 k s n cos 2 p F m n 1 m W 1 F m e H d F m displaystyle sum n 0 k s n cos 2 pi F m n 1 m W 1 F m e H d F m nbsp 上述的誤差關係式 可表示為矩陣形式A x H displaystyle Ax H nbsp 1 cos 2 p F 0 cos 4 p F 0 cos 2 p k F 0 1 W F 0 1 cos 2 p F 1 cos 4 p F 1 cos 2 p k F 1 1 W F 1 1 cos 2 p F k cos 4 p F k cos 2 p k F k 1 k W F k 1 cos 2 p F k 1 cos 4 p F k 1 cos 2 p k F k 1 1 k 1 W F k 1 s 0 s 1 s k e H d F 0 H d F 1 H d F k H d F k 1 displaystyle begin bmatrix 1 amp cos 2 pi F 0 amp cos 4 pi F 0 amp cdots amp cos 2 pi kF 0 amp 1 W F 0 1 amp cos 2 pi F 1 amp cos 4 pi F 1 amp cdots amp cos 2 pi kF 1 amp 1 W F 1 vdots amp vdots amp vdots amp ddots amp vdots amp vdots 1 amp cos 2 pi F k amp cos 4 pi F k amp cdots amp cos 2 pi kF k amp 1 k W F k 1 amp cos 2 pi F k 1 amp cos 4 pi F k 1 amp cdots amp cos 2 pi kF k 1 amp 1 k 1 W F k 1 end bmatrix begin bmatrix s 0 s 1 vdots s k e end bmatrix begin bmatrix H d F 0 H d F 1 vdots H d F k H d F k 1 end bmatrix nbsp 因此 我們可由x A 1 H displaystyle x A 1 H nbsp 計算s 0 s 1 s k displaystyle s 0 s 1 ldots s k nbsp 計算誤差函數 計算誤差函數e r r F f o r 0 F 0 5 F t r a n s i t i o n b a n d displaystyle err F for0 leq F leq 0 5 F notin transition band nbsp e r r F R F H d F W F n 0 k s n cos 2 p F n H d F W F displaystyle err F left R F H d F right W F left sum n 0 k s n cos 2 pi Fn H d F right W F nbsp 尋找極值點 從e r r F displaystyle err F nbsp 中 找k 2個區域極大或極小值 將區域極大或極小值出現的頻率標示為P 0 P 1 P k P k 1 displaystyle P 0 P 1 ldots P k P k 1 nbsp 區域極大或極小值的判斷規則 不是在邊界處的區域高峰 peaks 或低谷 dips 在此 邊界區域即為F 0 F 0 5 displaystyle F 0 F 0 5 nbsp 以及頻率轉換帶的兩邊 對於在邊界區域的頻率點 可用下列的標準判斷是否為區域極大或極小 S i g n e f f F d displaystyle Sign eff F d nbsp 及S i g n e r r F d displaystyle Sign err F d nbsp 為同相時 右邊界是極值點 反相時 左邊界是極值點 其他情況非極值點 若找到多於k 2 displaystyle k 2 nbsp 個極值點 選擇極值點的優先順位為 優先選擇不在邊界的極值點 其次選在邊界的極值點中 e r r F displaystyle left err F right nbsp 較大的 直到湊足k 2 displaystyle k 2 nbsp 個極值點為止 當邊界的極值點的 e r r F displaystyle left err F right nbsp 一樣大時 優先選擇轉換頻帶兩旁的點 判斷誤差是否收斂 計算誤差的最大值 令其為E 0 M a x e r r F displaystyle E 0 Max left err F right nbsp 若E 0 displaystyle E 0 nbsp 為現在的誤差最大值 E 1 displaystyle E 1 nbsp 為前一輪計算的誤差最大值 則利用下列規則判斷演算法的下一步 若E 1 E 0 gt D o r E 1 E 0 lt 0 displaystyle E 1 E 0 gt Delta or E 1 E 0 lt 0 nbsp 設定F n P n a n d E 1 E 0 displaystyle F n P n and E 1 E 0 nbsp 回到步驟2 若0 E 1 E 0 D displaystyle 0 leq E 1 E 0 leq Delta nbsp 進行步驟6 計算所設計濾波器的脈衝響應h n displaystyle h n nbsp 由先前在步驟2中的關係式 我們可得 h k s 0 h k n s n 2 h k n s n 2 f o r n 1 2 3 k displaystyle h k s 0 h k n s n 2 h k n s n 2 for n 1 2 3 ldots k nbsp 此h k displaystyle h k nbsp 即為我們所求的脈衝響應 權重函數W F displaystyle W F nbsp 濾波器響應的影響 编辑 當權重函數在帶內設計為1 在帶外設計為小於1 會讓濾波器較重視通過帶通頻段的訊號 當權重函數在帶外設計為1 在內設計為小於1 會讓濾波器具有較好的濾除雜訊的能力 特徵 编辑用此方法設計出來的濾波器 一定會滿足以下兩個情況 有k 2個以上的極值點 極大點與極小點 在極點上 W F m R F m H d F m displaystyle W F m R F m H d F m nbsp 過渡頻段 编辑 過渡頻段 transition band 對設計濾波器的誤差也會有影響 將過渡頻段設計地窄一些 R F displaystyle R F nbsp 和H d displaystyle H d nbsp 的誤差就會比較大 將過渡頻段設計地寬一些 R F displaystyle R F nbsp 和H d displaystyle H d nbsp 的誤差就會比較小 再設計上可以適當的增加過渡頻段寬度 讓通帶和止帶地響應更趨近於理想值 假設我們想要帶通段的漣波小於等於d 1 displaystyle delta 1 nbsp 帶止段的漣波小於等於d 2 displaystyle delta 2 nbsp 過渡頻段小於D F displaystyle Delta F nbsp D F f 1 f 2 f s displaystyle Delta F frac f 1 f 2 f s nbsp f 1 displaystyle f 1 nbsp f 2 displaystyle f 2 nbsp 為過渡頻段的上 下界 則要設計濾波器長度N displaystyle N nbsp 為 N 2 3 D F log 10 1 d 1 d 2 displaystyle N geq frac 2 3 Delta F log 10 frac 1 delta 1 delta 2 nbsp 移項可得 d 1 d 2 10 3 N D F 2 1 displaystyle delta 1 delta 2 10 frac 3N Delta F 2 1 nbsp 若要設計的頻段中有多的過渡頻段 則D F displaystyle Delta F nbsp 取最小長度的過渡頻段帶入計算 對於一固定長度的數位濾波器 再設計上可以犧牲一些頻段留給過渡頻段 將漣波縮小 但要注意不可將過渡頻段設計過長 因為過渡頻段是無法使用的 參考文獻 编辑Jian Jiun Ding 2013 Advanced Digital Signal Processing 页面存档备份 存于互联网档案馆 viewed 27 06 2013 T W Parks and J H McClellan Chebyshev Approximation for Nonrecursive Digital Filter with Linear Phase IEEE Trans Circuit Theory vol 19 no 2 pp 189 194 March 1972 J H McClellan T W Parks and L R Rabiner A computer program for designing optimum FIR linear phase digital filter IEEE Trans Audio Electroacoustics vol 21 no 6 Dec 1973 F Mintz and B Liu Practical design rules for optimum FIR bandpass digital filter IEEE Trans ASSP vol 27 no 2 Apr 1979 取自 https zh wikipedia org w index php title 帕克斯 麥克萊倫演算法 amp oldid 77727232, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。