FIR濾波器(圖1)存儲n數據單元系列,每個數據單元延遲一個附加周期。通常,這些數據單元稱之為分支。每個分支與系數相乘,其結果求和產生輸出。某些方法并行執行所有的乘法。更一般的方法是分為N級,用累加器從一級到下一級傳遞結果。這些實現方法用功能資源換取速度,取N個計算級并需要n/N個乘法器。根據系數是靜態還是動態以及系數值設計,有不少其他通用的設計最佳化方法。
圖1 典型FIR濾波器的實現
實現方法
從圖像壓縮到確定數據取樣的頻譜成分,在不同的應用中都用FFT。實現FFT有多種方法。最通用的方法是通用Cooley-Tukey時間抽取,把FFT分解成若干更小的FFT。最簡單的實現方法是用Radix-2蝶形單元(圖2),其輸入數據必須傳遞倍數。這種計算概念上是簡單的;然而,圖左邊所有的乘和加是用復數計算的,所需要的乘和加的實數是更復雜的問題(如圖右邊所示)。
IIR濾濾器除引入反饋通路外,它類似于FIR濾波器。這些反饋通路使IIR濾波器的設計和分析比FIR更復雜。然而,對于相同硅面積,IIR方法可提供更強的濾波器。盡管有幾種IIR結構,但是,一種通用的結構是用2階四次方結構(圖3)。
很多應用是用混頻器來變換信號頻率。概念上,可用單個乘法器,而在數字應用中,用復數形式表示不少優點。最一般的形式是信號表示是為I和Q分量。
DSP選擇
做為這些通用功能應用,大多數DSP應用的核心是乘、加、減或累加。通用DSP芯片與通用微處理器結合能有效地實現這些功能。乘法器數量通常1“4個,而微處理器通過乘和其他功能定序通過的數據,存儲中間結果在存儲器或累加器。主要靠提高乘法所用的時鐘速度來提高性能。典型時鐘速度為幾十MHz”1GHz。性能用每秒MMAC(百萬乘累加)度量,典型值10“4000。
需要較佳功能必須并聯組合多個DSP引擎。這種方法的主要優點是直接實現用高級編程語言(如C語言)編寫的算法。
DSP定向的FPGA能在一個芯片上并行實現很多功能。通用發送、邏輯和存儲器資源互連功能、執行加**能、定序和存儲數據。某些基本器件僅提供乘法支持,需要用戶建造其他邏輯功能。更復雜的器件提供加、減和累加功能做為DSP構建單元的一部分。FPGA通常帶有幾十乘法器單元,可工作在幾百MHz的時鐘頻率。