Rader算法
發布時間:2008/12/17 0:00:00 訪問次數:1100
用rader算法[132,133]計算dft:
計算dc組成部分。由于n=p是質數,需要一個本原元素和一個生成器,就可以產生zp域內除0之外的所有元素,也就是gk∈zp/{0}。這里用gn模n通過gk模n代替n,就得到下面的索引變換:
例 n=7的rader算法
對于n=7,有g=3是一個本原元素,其索引變換如下:
或者以矩陣表示:
圖1給出了相應的采用fir濾波器的圖形化解釋
圖1長度p=7的rader質數因子dft實現
現在可以用一個三角形信號x[n]=10λ[n](也就是步長為10的三角形)來檢驗p=7的raderdft公式。直接解釋(6.14),就得到:
x[0]的值就是時間級數的和,即10+20+,…+70=280。
此外,在rader算法中,我們還可以使用復數對e±j2kπ/n,k∈[0,n/2]的對稱性來構造更為有效的fir實現。實現rader質數因子dft與實現fir濾波器是等價的。為了實現快速fir濾波器,有必要使用完全流水線da或轉置濾波器結構。下面就給出了一個rag fpga實現的示例。
例 rader算法的fpga實現
長度為7的rader算法的rag實現過程如下。首先是對系數進行量化。假定輸入值和系數都被表示成8位有符號數,量化后的系數是:
所有獨立系數直接形式的實現都需要為常系數乘法器提供24個加法器。運用轉置結構,利用幾個系數僅僅是符號不同這一事實,獨立系數實現的工作量就可以降低到1 1個加法器。進一步優化加法器的數量,就可以達到最小值7。這對直接fir結構有3倍以上的提高。接下來的vhdl代碼1給出了運用轉置fir濾波器、長度為7的rader dft的一個可行實現。
本設計包括4個processs聲明內的4個聲明模塊。第一個——“stages:process”——是一個區分3個處理階段:start、load和run的狀態機。第二個——“structure:process”——定義了兩個πr濾波器通路,分別是實和虛。第三項用rag實現乘法器模塊。第四個模塊—“factor:process”——實現rag算法的未注冊因子。可以看到,所有的系數都是由6個加法器和1個減法器實現的。本設計消耗了486個lo,且以23.04mhz的registeredperformance運行。圖6-10給出了maxplussll對三角波輸入信號序列x[n]={10,20,30,40,50,60,70}的仿真結果。注意,輸入和輸出序列的起始點是950ns,按交換的順序作為無符號正數出現。最后,在1.55μs處x[0]被發送到輸出端,rader7準備處理下一個輸入幀。
圖4 7點rader算法的vhdl仿真
由于rader算法受限于質數長度,與czt相比,在系數中就比較缺乏對稱性。下面的表給出了質數長度為2n±1時,轉置形式的循環濾波器的實現工作量。
第1行給出了循環卷積長度n,也就是復數系數的數量。將第2行與2n個實sin/cos系數的最差情況相比較,就會看到,對稱性和無關緊要的系數己經將不可或缺的系數降低了一半。最后3行分別給出了一個使用csd、mag或rag算法的16位系數精度的實現工作量。注意rag對較長濾波器的優勢。從上面的表可以看到,csd類型的濾波器可以減少bn/4的工作量,其中b是系數位寬(本表中是16位),n是濾波器長度。對于rag,工作量(也就是加法器的數量)僅是n,也就是對長濾波器而言,比csd提高了b/4(b=16,提高了16/4=4)。對于長濾波器,rag只需要為額外的系數提供一個額外的加法器即可,因為已經合成的系數生成了一個“密集的”小系數柵格。
歡迎轉載,信息來源維庫電子市場網(www.dzsc.com)
用rader算法[132,133]計算dft:
計算dc組成部分。由于n=p是質數,需要一個本原元素和一個生成器,就可以產生zp域內除0之外的所有元素,也就是gk∈zp/{0}。這里用gn模n通過gk模n代替n,就得到下面的索引變換:
例 n=7的rader算法
對于n=7,有g=3是一個本原元素,其索引變換如下:
或者以矩陣表示:
圖1給出了相應的采用fir濾波器的圖形化解釋
圖1長度p=7的rader質數因子dft實現
現在可以用一個三角形信號x[n]=10λ[n](也就是步長為10的三角形)來檢驗p=7的raderdft公式。直接解釋(6.14),就得到:
x[0]的值就是時間級數的和,即10+20+,…+70=280。
此外,在rader算法中,我們還可以使用復數對e±j2kπ/n,k∈[0,n/2]的對稱性來構造更為有效的fir實現。實現rader質數因子dft與實現fir濾波器是等價的。為了實現快速fir濾波器,有必要使用完全流水線da或轉置濾波器結構。下面就給出了一個rag fpga實現的示例。
例 rader算法的fpga實現
長度為7的rader算法的rag實現過程如下。首先是對系數進行量化。假定輸入值和系數都被表示成8位有符號數,量化后的系數是:
所有獨立系數直接形式的實現都需要為常系數乘法器提供24個加法器。運用轉置結構,利用幾個系數僅僅是符號不同這一事實,獨立系數實現的工作量就可以降低到1 1個加法器。進一步優化加法器的數量,就可以達到最小值7。這對直接fir結構有3倍以上的提高。接下來的vhdl代碼1給出了運用轉置fir濾波器、長度為7的rader dft的一個可行實現。
本設計包括4個processs聲明內的4個聲明模塊。第一個——“stages:process”——是一個區分3個處理階段:start、load和run的狀態機。第二個——“structure:process”——定義了兩個πr濾波器通路,分別是實和虛。第三項用rag實現乘法器模塊。第四個模塊—“factor:process”——實現rag算法的未注冊因子。可以看到,所有的系數都是由6個加法器和1個減法器實現的。本設計消耗了486個lo,且以23.04mhz的registeredperformance運行。圖6-10給出了maxplussll對三角波輸入信號序列x[n]={10,20,30,40,50,60,70}的仿真結果。注意,輸入和輸出序列的起始點是950ns,按交換的順序作為無符號正數出現。最后,在1.55μs處x[0]被發送到輸出端,rader7準備處理下一個輸入幀。
圖4 7點rader算法的vhdl仿真
由于rader算法受限于質數長度,與czt相比,在系數中就比較缺乏對稱性。下面的表給出了質數長度為2n±1時,轉置形式的循環濾波器的實現工作量。
第1行給出了循環卷積長度n,也就是復數系數的數量。將第2行與2n個實sin/cos系數的最差情況相比較,就會看到,對稱性和無關緊要的系數己經將不可或缺的系數降低了一半。最后3行分別給出了一個使用csd、mag或rag算法的16位系數精度的實現工作量。注意rag對較長濾波器的優勢。從上面的表可以看到,csd類型的濾波器可以減少bn/4的工作量,其中b是系數位寬(本表中是16位),n是濾波器長度。對于rag,工作量(也就是加法器的數量)僅是n,也就是對長濾波器而言,比csd提高了b/4(b=16,提高了16/4=4)。對于長濾波器,rag只需要為額外的系數提供一個額外的加法器即可,因為已經合成的系數生成了一個“密集的”小系數柵格。
歡迎轉載,信息來源維庫電子市場網(www.dzsc.com)
上一篇:Winograd DFT算法
熱門點擊
- D/A轉換器的基本原理
- AD轉換器的選擇
- 語音信號的μ/A律壓縮
- 并行A/D轉換器AD574
- Bluestein Chirp-z變換
- 語音信號模數/數模轉換
- 語音信號的采集和播放
- Cooley-Tukey FFT算法
- DFT和FFT算法的比較
- DFT的屬性
推薦技術資料
- DS2202型示波器試用
- 說起數字示波器,普源算是國內的老牌子了,FQP8N60... [詳細]