帳號:
密碼:
最新動態
產業快訊
CTIMES / 文章 /
DSP與多速濾波器設計
 

【作者: 誠君】   2001年06月01日 星期五

瀏覽人次:【7433】

選用專用元件來設計數位信號處理系統,是目前數位設計工程師的主要任務。而面對各種設計多速濾波的方案,設計工程師必須評估所需的數據傳輸量,從中找出高效率的設計方案,並正確地選擇各類硬體,從而獲得既可最佳化又能盡速完工的目標。


許多通訊系統都要用到「多速濾波器(Multirate Filter)」,多速濾波器是指輸出數據速率與輸入數據速率不相等的濾波器,常用於某個實體介面如:數位類比轉換器(DAC)或類比數位轉換器(ADC)的介面。當濾波器輸出數據到DAC時,用戶常會選擇「插值濾波器」,因為它能產生更多的取樣點以使DAC的輸出波形更加平滑;而當濾波器從ADC接收信號時,用戶一般會選用「抽取濾波器」,因為抽取濾波器允許數據被過取樣從而獲得更高的信噪比(SNR)。使用抽取濾波器後,系統只需工作在信號速率即可,這類似降頻的效果。


在多速濾波器設計過程中,有效地選用硬體來設計插值和抽取濾波器是非常重要。下面將討論選用DSP設計多速濾波器的方法。


插值和抽取(Interpolation & Decimation)

插值功能常用來增加輸出信號的取樣率(圖一),實際上在原始取樣值附近增加新的取樣值很有必要。由於新的取樣點的值是未知數,一般設為零,因此也被稱為上取樣(Upsampling)、零值插入或零值填充。



《圖一 插值濾波器的功能》
《圖一 插值濾波器的功能》

由於取樣點的增加,所以改變了取樣速率,從而使Nyquist頻率外移。在時域中向數據插入零值,則信號在頻域上會產生原始信號頻譜的鏡像。由於取樣速率的改變並不會產生更多的資訊,因此所有的鏡像信號(以人工方式加入系統中)都表現為噪音,幸運的是這些噪音可以藉由理想低通濾波器濾除。


抽取濾波器的工作方式也和插值濾波器大致相同。這種濾波器要消除某些取樣點,從而降低取樣速率和Nyquist頻率。任何高於Nyquist頻率的信號都將被視為噪音,因此有必要在消除數據/下取樣(Downsampling)前加入低通濾波器,這樣可以確保噪音不介入系統(圖二)。



《圖二 抽取濾波器的功能》
《圖二 抽取濾波器的功能》

插值和抽取之設計方法

在插值與抽取設計方案中採用的低通濾波器,最好具有線性相位特性,一般是利用有限衝擊響應(FIR)濾波器來設計這種線性相位濾波器,但FIR濾波器的設計要比無限衝擊響應濾波器(IIR)的代價高得多。為了取得更好的性能,需要增加濾波器的階數,而FIR濾波器可以從10階到200階甚至更高。此濾波器的輸出必須藉由10到200次運算。由於FIR濾波器非常昂貴,設計師一般會自行選用專用硬體來DIY設計,這些專用硬體可能是一顆專用濾波晶片、一種可程式邏輯元件(PLD)或一些半客製(Semi-custom)標準單元晶片。


用標準單元設計的FIR濾波器可以獲得最大的傳輸量,按速度排序的話,可程式邏輯(PLD)和專用濾波晶片的傳輸量排第二,然後才是通用DSP元件。當用戶需要高的數據傳輸量時,幾乎沒有什麼硬體可以勝過ASIC和PLD。ASIC設計流程相當成熟,對於PLD來說,也可以利用工具自動創建FIR濾波器來加速開發流程。為了減小插值與抽取濾波器的晶片面積並增強其性能,很有必要採用一些專門技術。


目前還沒有最佳的多速濾波器設計方案,而方案的評估也有很多種方法。方案的成本取決於某個設計方案所對應的性能要求。這裏性能可以定義為每秒鐘乘法運算的總次數(由於加法一般都與乘法結合在一起,因此運算成本中不再包含加法)。假設單個乘法作業需要一個時鐘周期,那麼我們就可以確定設計某個方案所需的MIPS(Millions of Instructions Per Second)值。


降低運算速率之方法

檢查插值濾波器的運算速度有個比較直接的方法,即將數據先進行上取樣然後再進行濾波。(圖三)所示的樣本要求採用388接頭(taps)的濾波器,並且濾波器工作的速率必須達到每秒12兆樣點(MSPS)。這種設計方式所要求的運算速率大約為4500MIPS。目前有兩種方法來降低運算速率,這些方法羅列於下:


《圖三 388接頭的濾波器》
《圖三 388接頭的濾波器》

1.多級濾波法:

在三級內設計插值因子為12的多級濾波,設計者可以將第一級的插值因子定為2,在第二級再以因子2對第一級的輸出進行插值,然後輸出到第三級,第三級的插值因子設為3,這樣就有了3級濾波器,圖三表示出了每個濾波器的詳細參數。


藉由分級插值可以降低對每個濾波器的要求,從而減少濾波器的階數。另外,前二個濾波器分別工作在2MSPS和4MSPS,只有最後一個濾波器才工作在12MSPS,而改進前的方法則要求整個濾波器工作在12MSPS。同樣,若採用分級抽取,運算速率就不必要求太高。多級濾波法可以將運算速率減小到1035MIPS。對多級濾波器的各級重新分配運算任務,用較小的濾波器就可以達到期望的運算結果,這是一種相對高水平的優化方法。


2.多相分解法:

降低運算速率的另外一種方式需要詳細分析插值濾波器的設計方案。眾所周知,先進行零值插入然後濾波,就可以將問題分解到多個較短的濾波器中解決,每個濾波器工作於不同的時間點上,這種方法被稱為多相分解,如(圖四)所示。舉個簡單的例子來說明一下多相分解的工作原理,在例中濾波器系數為24,插值因子為4。由於濾波器插值因子為4,因此實際上大多數輸出到濾波器的數據為零,藉由執行特殊的乘法作業可以消除這些零數據的系數。



《圖四 多相分解的功能》
《圖四 多相分解的功能》

例如,第一個輸出數據可以單獨由系數C0、C4、C8…C20確定,而第二個輸出數據則由C1、C5、C9…C21等系數決定。在這種情況下每個輸出只要求6次乘法運算,而不是24次乘法運算,調整插值因子可以減少運算速率。對於插值因子為12的388接頭濾波器,每個輸出只需33次乘法即可確定。多相插值器可以用388MIPS完成相同的運算量。


抽取結構同樣也可利用類似的技術。在本例中抽取因子為4,因此4個數據點藉由濾波後只剩下了1個,其實沒有必要去計算被丟棄的取樣點數。多相抽取器將數據分配給4個較短的多相濾波器(抽取因子為4),最後將4個濾波器的輸出疊加在一起從而形成最終濾波輸出。每個多相濾波器以抽取後的數據速率輸出數據,從而降低了對抽取器的性能要求。


當然,也可以綜合運用多種方法,以進一步降低運算速率,例如,可以對多相結構中的每個單級濾波器執行多級濾波。


採用DSP設計低功耗濾波器

從設計層面看,若需要採用特殊的結構,例如:佔用最小的元件資源、工作於最低的功耗等,這種需求取決於運算速度,對於要求幾百MIPS的情形,採用DSP就是很理想的方案。某些DSP元件的運算速度能達到1GOPS,採用DSP的典型設計還能做濾波以外的其它工作,例如:謹慎地分配MIPS。


在許多情況下,用戶基於本身預算因素等的考量,都會限制MIPS值,並根據具體性能選擇DSP。如果性能要求超過了單片DSP的處理能力,可以考慮多種應變方案,如將任務分配到多個DSP上,或採用硬體多工處理器來加速處理巨大的運算量,此時,選用ASIC和PLD元件就是最佳方案。


專用邏輯元件

許多半導體供應商都提供能設計插值功能的專用晶片,這些晶片包含用於設計濾波功能的乘法器,因此能獲得比DSP元件更優異的性能。它們還能支援固定數值的系數和特定的插值或抽取因子。ASIC和PLD可以結合起來形成“用戶專用硬體”產品,採用這種方法後可以在一個時鐘周期內計算全部127接頭的FIR濾波器,比DSP快兩個級數(Two Orders of Magnitude)。設計時要仔細考慮後續工作,如HDL模擬、綜合、驗証、可測性及故障率,這點在DSP設計中也一樣。對於完全平行的插值濾波器來說,將濾波器進行多相分解可以產生由較短濾波器構成的濾波器組。為了在一個時鐘周期內進行一次濾波運算,多相濾波器中的每個系數必須配備一個乘法器。在每個輸入時鐘周期要完成兩個任務:1.數據儲存到每個多相結構中;2.每個濾波器會產生N個輸出。最後輸出時鐘會在同一時間掃描所有的各相濾波器,就如同是單一輸入時鐘的效果。


靜態時序分析

將設計分解開來,可以得到二個時鐘域,即輸入時鐘與輸出時鐘,輸出時鐘速率


是輸入時鐘速率的整數倍。輸出結構(一個簡單的乘法器)需要以高於輸入多相濾波器的速率工作,當進行專用硬體(如ASIC或可程式邏輯)設計時,減小時鐘域的數量是必須的。當用ASIC產生掃描向量(Scan Vectors)時,需要另外增加時鐘域。藉由靜態時序分析可能還需消除一些錯誤路徑。


採用可程式邏輯,可供選擇的時鐘信號數量是固定的,因此每個時鐘域也就顯得更加珍貴。當時鐘啟動來自多相結構中的觸發器(Flip-flops)時,就有可能採用輸出時鐘對整個結構進行時鐘控制。採用時鐘啟動功能,多相結構只需運行於輸入時鐘速率(較慢的時鐘信號),還可放寬這些複雜結構的時序要求。這使多相結構成為一個多循環組件,靜態時序必須符合多循環規範。在ASIC和PLD為主的設計流程中,使用的時序分析工具需要支援多循環規範。


當設計ASIC時,所需的乘法單元可以整合進晶片中,並且可以在最小的面積上獲得所要的速度。但是ASIC設計要比DSP和PLD設計不靈活,因為ASIC任何改變都需要對整個系統做重新設計,既費時又費力。


採用PLD設計濾波器

PLD設計則不同,用PLD設計濾波功能可以採用兩種結構:串列與平行。這兩種結構都能有效地將系數映射到查尋表格(Look-up Tables)並執行乘法運算。完全平行的結構可在單個時鐘周期內進行完整的濾波運算,而串列結構需要將運算分配在若干時鐘周期內完成(取決於輸入位元寬度),因此串列結構的傳輸量較小,但串列結構在晶片的利用率方面還是很高的(只需很小的儲存空間和邏輯單元)。


目前用於可程式邏輯的FIR濾波器自動生成工具已經問世。至少這些工具能在給定系數後,自動生成所需濾波器;而更先進的工具可以為用戶產生定點系數,並在此基礎上設計出多相濾波器,同時進行晶片面積和速度評估。


結語

其實,設計插值與抽取邏輯的方案很多,設計師必須評估所需的傳輸量,提出高效率的設計方案,並在設計優化與盡快完工之間取得平衡。隨著DSP功能的日益強大,其結構不斷獲得改進和擴展,因此,在設計低功耗系統時選擇合適的DSP並非易事。


DSP是一種可程式器件,具有獨特的指令集、結構和週邊器件。因此,在將DSP用於低功耗系統設計時,不能只考慮其每秒所能執行的指令數MIPS,而需綜合分析各種因素,如工作電壓、結構性效率、封裝尺寸、週邊元件和內部記憶體的容量,以做出最周全的選擇。


  相關新聞
» 調研:2027年超過七成筆電將是AI PC 並具備生成式AI功能
» 工研院突破3D先進封裝量測成果 新創公司歐美科技宣布成立
» A+計劃補助電動車產業 驅動系統、晶片和SiC衍生投資3億元
» 新唐科技MA35D0 微處理器系列適用於工業邊緣設備
» SIG:2028年藍牙裝置年度總出貨量將達到75億台


刊登廣告 新聞信箱 讀者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 遠播資訊股份有限公司版權所有 Powered by O3  v3.20.2048.3.147.54.6
地址:台北數位產業園區(digiBlock Taipei) 103台北市大同區承德路三段287-2號A棟204室
電話 (02)2585-5526 #0 轉接至總機 /  E-Mail: webmaster@ctimes.com.tw