最佳化 RRC 濾波器設計
蕭如宣 陳益華 李進華
資訊與通訊工程研究所
摘要
RRC(Root Raised Cosine)濾波器功能是將訊號 間的干擾減到最低,降低 intersymbol 干擾與消除調 變頻率用,主要應用在無線通訊系統如 WCDMA、資料 傳輸與電信傳輸等。我們發現在傳統 RRC 電路設計 中,處理 Coefficient 運算時用的乘法電路有其最佳 化空間,可利用移位器和加法器的搭配及配合加法 樹架構設計取代之。於是進行程式模擬與 VHDL(硬 體 描 述 語 言 ) 設 計 來 進 行 實 驗 , 並 將 條 件 中 Coefficient 參數代入 Altera 所提供之 FIR Compiler V3.2 進行 RRC 濾波器設計,取得各項表現數值後 與本設計進行資源使用比較,結果證明應用此最佳 化方式所設計出的 RRC 濾波器有顯著的改善。 關鍵詞:RRC、Coefficient、VHDL、移位加法、 加法樹
前言
隨著科技的日新月異,人們的生活習慣產生了 變異,各式各樣的電子產品充斥在家庭的每個角 落,也漸漸的開始依附在身體週遭。這種快速且嚴 峻的發展歷程裡,毎個新領域的創新都將帶來改 變,也對於生活產生重大影響。微電子學門中近來 發展最為迅速的首推為積體電路設計技術,它的運 用使得"行動化"將不是空想,利用它可設計出符 合小而美、小而省特點的產品,因為此技術有使用 體積小、功率耗損低、運算快速等特性,並可包含 各式數位、類比之電路。近來因製程上的突破,開 始推行 SOC ( System On Chip ) 設計,更是將整個系 統硬體電路都包含在一顆晶片中。儘管積體電路技術在急速變遷的環境下快速成 長,SOC 的內含邏輯閘( Logic Gate )還是相對有限 的。所以任何邏輯電路的設計都需力求電路小、運 算快速及省電等特性。本文對"設計中使用固定參 數之乘法運算電路",提出一種的新最佳化設計方 法。本文以 WCDMA 發射/接收系統中使用之 RRC 濾波器設計為例,利用提出的最佳化方法進行分項 步驟設計及原理說明來具體實現,並且將其成果與 使用 Altera 所提供之 FIR Compiler V3.2 ( 在相同脈 衝響應的 Coefficient 值下 ) 設計 RRC 濾波器,同時 進行模擬驗證,分析其數據並製作成圖表來進一步 證明此方法之可行性。
RRC 濾波器原理
RRC 濾波器原理概述如下: 1. 脈衝響應關係式:式 1.1[1]是 RRC 的脈衝響應 及 初 始 使 條 件 値 。 利 用 它 可 計 算 出 需 要 的 Coefficient 及其移位項(表一)。( ) ( ) 2 sin 1- 4 cos 1 1- 4 49 : 0.22 : 0.26 : t t t T T T SRRC t t T T Filter window
roll off factor is for WCDMA T chip duration is s t time π β β π β π β β µ ⎡ ⎤+ ⎡ + ⎤ ⎢ ⎥ ⎢ ⎥ ⎣ ⎦ ⎣ ⎦ = ⎡ ⎛ ⎞⎤ ⎢ ⎜⎝ ⎟⎠⎥ ⎢ ⎥ ⎣ ⎦ = −
...
1.12. 傳統 RRC 濾波器實現結構:圖一是一般利用 N 階 FIR 濾波器實現 RRC 電路[2]的實現結構。 與 式 1.1 相 較 下 , 由 於 式 1.1 之 Filter window=49 , 但 是 圖 一 顯 示 卻 只 使 用 24 個 Coefficient,原因在於它是映射重複的,即第 26 項時會重複第 24 項,依此類推…。
RRC 濾波器設計
本設計提出最佳化設計步驟(詳細說明、範例請參考 分項解說部份)如下: 1. 計算 Coefficient 移位項。 2. 處理 Coefficient 移位項化簡。 3. 製做移位分組表。 4. 進行數學關係式推導。 5. 建立加法樹架構圖。 Coefn \ Bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 0.00323486 0 0 0 0 0 0 0 0 1 1 0 1 0 1 2 0.00354004 0 0 0 0 0 0 0 0 1 1 1 0 1 0 3 -0.00335693 1 1 1 1 1 1 1 1 0 0 1 0 0 1 4 -0.00567627 1 1 1 1 1 1 1 0 1 0 0 0 1 1 5 0.00219727 0 0 0 0 0 0 0 0 1 0 0 1 0 0 6 0.00756836 0 0 0 0 0 0 0 1 1 1 1 1 0 0 7 -0.00006104 1 1 1 1 1 1 1 1 1 1 1 1 1 1 8 -0.00805664 1 1 1 1 1 1 0 1 1 1 1 1 0 0 9 -0.00128174 1 1 1 1 1 1 1 1 1 0 1 0 1 1 10 0.00897217 0 0 0 0 0 0 1 0 0 1 0 0 1 1 11 0.00115967 0 0 0 0 0 0 0 0 0 1 0 0 1 1 12 -0.01342773 1 1 1 1 1 1 0 0 1 0 0 1 0 0 13 -0.00292969 1 1 1 1 1 1 1 1 0 1 0 0 0 0 14 0.02368164 0 0 0 0 0 1 1 0 0 0 0 1 0 0 15 0.01519775 0 0 0 0 0 0 1 1 1 1 1 0 0 1 16 -0.03479004 1 1 1 1 0 1 1 1 0 0 0 1 1 0 17 -0.04718018 1 1 1 1 0 0 1 1 1 1 1 0 1 1 18 0.02960205 0 0 0 0 0 1 1 1 1 0 0 1 0 1 19 0.10095215 0 0 0 1 1 0 0 1 1 1 0 1 1 0 20 0.0189209 0 0 0 0 0 1 0 0 1 1 0 1 1 0 21-0.16546631 1 1 0 1 0 1 0 1 1 0 1 0 0 1 22-0.16607666 1 1 0 1 0 1 0 1 0 1 1 1 1 1 23 0.21899414 0 0 1 1 1 0 0 0 0 0 0 1 0 0 24 0.76855469 1 1 0 0 0 1 0 0 1 1 0 0 0 0 表一:RRC 濾波器的 Coefficient 移位項 1. 計算 Coefficient 移位項,並依據 WCDMA[1]標 準規定,RRC 濾波器精確度需至萬分之ㄧ,所 以將 Coefn參數取至二進制浮點數的第十四位。 2. 處理 Coefficient 移位項進行化簡。 ※ 首先將 Coefn項為負數的取 2’S,可減少計算量。 原理:在硬體電路設計加減運算時,使用加減法 器或將輸入值取 2'S 後再進行加法運算, 後者設計複雜度、佔有空間、速度表現均 優於前者。硬體電路實現方法如圖二,若 取 2’S 只需要一個 NOT Gate 配合進位符號 設計即可。 圖二:輸入取 2’S 後再進行加法運算示意圖※ 利用[3][4]之 Booth Algorithm,處理 Coefn參數項
連續三個以上的特徵部分化簡。 原理:如表一 Coef 6表示,它進行移位加法中有 >>8 + >>9 + >>10 + >>11 + >>12,它符合 化簡要素中"移位項連續三個以上"的條 件,可使用>>7 - >>12 來表示之,這樣將 可以減少加法器的使用。
圖三:連續三個以上且集中的特徵處理示意圖 Coef \ Bit 1 2 3 4 5 6 7 8 9 10 11 12 1314 1 0.00323486 0 0 0 0 0 0 0 0 1 1 0 1 0 1 2 0.00354004 0 0 0 0 0 0 0 1 0 0 -1 0 1 0 3 -0.00335693 0 0 0 0 0 0 0 1 0 0 -1 0 0 -1 4 -0.00567627 0 0 0 0 0 0 0 1 1 0 0 -1 0 1 5 0.00219727 0 0 0 0 0 0 0 0 1 0 0 1 0 0 6 0.00756836 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 7 -0.00006104 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 -0.00805664 0 0 0 0 0 0 1 0 0 0 0 1 0 0 9 -0.00128174 0 0 0 0 0 0 0 0 0 1 0 1 0 1 10 0.00897217 0 0 0 0 0 0 1 0 0 1 0 0 1 1 11 0.00115967 0 0 0 0 0 0 0 0 0 1 0 0 1 1 12 -0.01342773 0 0 0 0 0 1 0 0 -1 0 0 -1 0 0 13 -0.00292969 0 0 0 0 0 0 0 0 1 1 0 0 0 0 14 0.02368164 0 0 0 0 0 1 1 0 0 0 0 1 0 0 15 0.01519775 0 0 0 0 0 1 0 0 0 0 -1 0 0 1 16 -0.03479004 0 0 0 0 1 0 0 1 0 0 -1 0 1 0 17 -0.04718018 0 0 0 0 1 1 0 0 0 0 0 1 0 1 18 0.02960205 0 0 0 0 1 0 0 0 -1 0 0 1 0 1 19 0.10095215 0 0 0 1 1 0 1 0 0 -1 0 1 1 0 20 0.0189209 0 0 0 0 0 1 0 0 1 1 0 1 1 0 21 -0.16546631 0 0 1 0 1 0 1 0 0 1 1 0 0 -1 22 -0.16607666 0 0 1 0 1 0 1 0 1 0 0 0 0 1 23 0.21899414 0 1 0 0 -1 0 0 0 0 0 0 1 0 0 24 0.76855469 1 1 0 0 0 1 0 0 1 1 0 0 0 0 表二:Coefficient 移位項進行化簡 3. 製做移位分組表,如表三所述示 ※ 移位項中深色區塊:表示該 Coefficient 值為負 數,設計時需注意要進行 2’S 處理。 ※ 分類項中特殊符號:擁有相同符號表示移位運 算有重覆之處,可進行硬體化簡動作。原理如 圖四至五所示,圖三左邊為未分組前所需的電 路,圖之右邊為分組後的等效電路,可清楚得 知可節省加法器使用量與加快運算速度。 圖四:兩項運算有相同的移位加法運算時 圖五:三項運算有相同的移位加法運算時 ※ 移位項中無括號之數字:表示該數無法再進行 第二階段的分組化簡
表三:移位分組表 4 . 進行數學關係式推導: 爲方便數學關係式推導,我們令圖一中 Sn =An+Bn,將 RRC 電路表示成 1.2 關係式:
24 25 1 n n n O A S Coef = = +
∑
...
1.2 將式 1.2 依表三 Coef 項所述展開(請先忽略 A25以及 Coefn之正負值): 例如:S3 * -Coef3 就使用 S3(8,-11,-14)表示。 O= S1(9,10,12,14) + S2(8,-11,13) + S3(8,-11,-14) + S4(8,9,-12,14) + S5(9,12) + S6(7,-12) + S7(14) + S8(7,12) + S9(10,12,14) + S10(7,10,13,14) + S11 (10,13,14) + S12(6,-9,-12)+ S13(9,10) + S14(6,7,12) + S15(6,-11,14) + S16(5,8,-11,13) + S17(5,6,12,14) + S18(5,-9,12,14) + S19(4,5,7,-10,12,13) + S20(6,9,10, 12,13) + S21(3,5,7,10,11,-14) + S22(3,5,7,9,14) + S23(2,-5,12) + S24(1,2,6,9,10)...1.3 將式 1.3 依表三移位項分組表拆解開: 例如:依表三中 Coef2的移位項欄位顯示 ” (8,-11),13 ”就使用 S2(8,-11) + S2(13)表示。 O= S1(9,10) + S1(12,14) + S2(8,-11) + S2(13) + S3(8,-11) + S3(-14) + S4(8) + S4(-12) + S4(9,14) + S5(9,12) + S6(7) + S6(-12) + S7(14) + S8(7,12) + S9(12,14) + S9(10) + S10(10,13,14) +S10(7) + S11(10,13,14) + S12(6) + S12(-9,-12) + S13(9,10) + S14(6) + S14(7,12) + S15(6) +S15(-11) + S15(14) + S16(5,13) + S16(8) + S16(-11) + S17(5,12,14) + S17(6) +S18(5,12,14) + S18(-9) +S19(5,13) + S19(4) + S19(7) + S19(-10) + S19(12) + S20(6) + S20(10)+ S20(13) + S20(9,12) + S21(3,5,7) + S21(10) + S21(11) + S21(-14) + S22(3,5,7) + S22(9,14) + S23(2) + S23(-5) + S23(12) + S24(1) + S24(2) + S24(6) + S24(9,10)...1.4 將式 1.4 依表三分類項來進行相同移位項的整合 例如:分類項特殊符號為「◎」為 Coef2與 Coef3, 依此將式子寫成(S2 +S3) (8,-11),另外 Coef2 的>>13 與 Coef3的>>-14 無法再進行第二階 段的分組化簡,所以表示為 S2(13)+ S3(-14), 整合起來就是(S2 +S3) (8,-11)+S2(13)+S3(-14)。 O= (S1+S13+S24)(9,10) + (S1+S9)(12,14) + (S2+S3) (8,-11) + S2(13) + S3(-14) + S4(8) + S4(-12) + (S4+S22)(9,14) + (S5-S12+S20)(9,12) + S6(7) + S6(-12) + S7(14) + (S8+S14)(7,12) + S9(10) + (S10+S11) (10,13,14) + S10(7) + S12(6) + S14(6) + S15(6) + S15 (-11) + S15(14) + (S16+S19)(5,13) + S16(8) + S16(-11) + (S17+S18)(5,12,14) + S17(6) + S18(-9) + S19(4) + S19(7) + S19(-10) + S19(12) + S20(6) + S20(10) + S20 (13) + S21(10) + S21(11) + S21(-14) + (S21+S22) (3,5,7) + S23(2) + S23(-5) + S23(12) + S24(1) + S24(2) + S24(6)...1.5 將式 1.5 再依移位數拆開所有的移位運算並做整理 例如:(S1 + S13 + S24 )(9,10)將它拆成(S1 + S13 + S24 )(9) + (S1 + S13 + S24 )(10) O= (S1 + S13+ S24)(9)+ (S1+S24)(10) + (S1+ S9)(12) + (S1+S9)(14) + (S2+S3)(8) + (S2+S3)(-11) +S2(13) + S3(-14) + S4(8) + S4(-12) + (S4+S22)(9) + (S4+S22) (14) + (S5-S12+S20)(9) + (S5 -S12+ S20)(12) + S6(7) + S6(-12) +S7(14) + (S8+S14)(7) + (S8+S14)(12) + S9 (10) + (S10+S11)(10) + (S10+S11)(13) + (S10+S11) (14) + S10(7) + S12(6) + S14(6) + S15(6) + S15 (-11) + S15(14) + (S16 +S19)(5) + (S16 +S19)(13) + S16(8) + S16 (-11) + (S17+ S18)(5) + (S17+S18)(12) + (S17+S18)(14) + S17(6) + S18(-9) + S19(4) + S19(7) + S19(-10) + S19 (12) + S20(6) + S20(10)+ S20(13) + S21 (10) + S21(11) + S21(-14) + (S21+S22)(3)+ (S21+S22)(5) + (S21+S22) (7) + S23(2) + S23(-5) + S23(12) + S24 (1) + S24(2) + S24(6)...1.6 將有相同移位項次的列示如後: >> 1:S24 >> 2:S23+ S24 >> 3:(S21+ S22) >> 4:S19 >> 5:(S17+S18) + (S16+S19) -S23 + (S21+S22) >> 6:S12 + S14+ S15 + S17 + S20 + S24 >> 7:S6 + (S8+S14) + S10 + S19 + (S21+S22) >> 8:(S2+ S3) + S16 >> 9:( S1+S13+ S24) + (S4+S22) + (S5-S12+S20) - S18 >>10:(S1+S13+S24) + S9 + (S10+S11) - S19 + S21 + S20 >>11:(S2+ S3) - S15 - S16 + S21 >>12:( S1+S9) - S4 + (S5-S12+S20)- S6 + (S8+S14) + (S17+S18) + S19 + S23 >> 13:S2 + (S10+S11) + (S16+S19) + S20 >>14:(S1+S9) -S3 + (S4+S22) + S7 + S15 + (S17+S18) + (S10+S11) - S21 建立群組變數表(表四),並參照表三中 Coefn 為負値項將負號帶進去,完成數學關係式推導過程。 Group Variable Group Variable (-S21- S22) G1 (S10 + S11) G7 (-S17+ S18) G2 (S1 - S9) G8 (-S16 +S19) G3 (S5 + S12+ S20) G9 (-S8+ S14) G4 (S1 - S13 + S24 ) G10 (S2 - S3) G5 G2 + G8 G11 (-S4 - S22) G6 表四:群組變數表 最終數學關係式結果: >> 0 : A25 >> 1 : S24 >> 2 : S23 + S24 >> 3 : G1 >> 4 : S19 >> 5 : -S23 + G1 + G2 + G3 >> 6 : -S12 + S14+ S15 - S17 + S20 + S24 >> 7 : S6 + S10 + S19 + G1 + G4 >> 8 : -S4 - S16 + G5 >> 9 : - S18 + G6 + G9 + G10 >>10 : -S9 - S19 + S20 - S21 + G7 + G10 >>11 : -S15 + S16 - S21 - G5 >>12 : S4 + S6 + S19 + S23 + G4 + G9 + G11 >>13 : S2 + S20 + G3 + G7 >>14 : S3 - S4 - S7 + S15 + S21 + G6 + G7 + G11 5.建立加法樹架構圖 最後利用數學推導後的結果關係式來設計加法 樹架構圖(圖六),製作時將相同移位項進行配對,此 動作可減少加法器位元數的使用,完美搭配下對整 個系統 LE (Logic Element)的使用將可節省許多。 例如:S5 >>7 ,S3>> 4,S4>>7,S9>>4 狀況下 配對不洽當的組合都需使用 15 位元加法器來設計 19(Total Bits) – 4(Shift Bits) = 15(Bits)
圖七:不洽當的設計方式
_4:表示從移位七位元狀況下要與移位四位元的進 行加總動作要進行的前制處理。
圖八:延伸位元的設計方式
配對洽當的組合使用 15 位元及 12 位元加法器設計 19(Total Bits) – 7(Shift Bits) = 12(Bits)
19(Total Bits) – 4(Shift Bits) = 15(Bits)
圖九:配對洽當的設計方式
模擬驗證與效能比較
將推導之數學關係式利用程式進行脈衝響應模 擬,並將模擬結果與式 1.1 所求得之 Coefficient 値、 取萬分之ㄧ精確度之 Coefficient 値進行比較。對系 統脈衝響應曲線圖(圖十)進行分析,結果發現推導 之數學關係式所模擬之數值與取萬分之ㄧ精確度之 結果數值在曲線圖中三條線是重疊的,因此可證明 電路不會因最佳化的動作而有任何影響。 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1 6 11 16 21 26 31 36 41 46 公式算出的Coef値 萬分之ㄧ精確度的Coef値 推導之數學關係式結果 圖十:時間軸的脈衝響應圖 電路驗證對照組是採用 Alter 所提供之 FIR Compiler V3.2 來設計 RRC 濾波器,圖十一與圖十二 為其模擬視窗,代入由式 1.1 運算所得之 Coefficient 值及輸入資料格式 4bit 整數、14bit 浮點數,再經由 Quartus II 進行 Compilation 動作(Device:Stratix EP1S10F780C6ES、Version:4.2 Build 157 SJ Full Version),並將所得之各項數值填入表五。 圖十一:RRC Coefficient 的頻率響應模擬視窗 圖十二:RRC Coefficient 的脈衝響應模擬視窗 圖六所表示之架構,是以 VHDL 在 Quartus II 之下分別建立各個電路模型連結而成的,並將它進 行 Compilation 動作後將所得之各項數值填入表五, 進行資源使用比較。電路模擬驗證上設定 CLK 頻率 為 20MHz 所進行的脈衝響應的模擬。圖十三(上) 是擷取在 25ns 附近的輸出值(進行 O=S1 * Coef1運算 輸出);圖十三(下)是擷取在 1.075us 附近的輸出值 (進行 O=S22 * Coef22運算輸出)。圖十四與圖十五為 RRC 濾波器電路設計圖例。Logic Element Logic Cell LC Registers Carry Chain FIR Compiler 2845 2857 2729 1049 Our Design 1685 2402 912 748 Max fan-out node Max fan-out Average fan-out Pin FIR Compiler Clk 2595 3.66 52 Our Design Clk 912 2.57 39 表五:資源使用比較表
結論
從資源使用比較表(表五)中得到之數據,清楚 表示利用最佳化方式所設計之 RRC 濾波器相較於 FIR Compiler 所設計之 RRC 濾波器均有所改善,其 中在 LE 上節省 40%;在 LC Registers 節省 66%; Max fan-out 低了 64%,因為 RRC 濾波器在 WCDMA 系統頻率僅需 3.84MHz(工作頻率) x 4(取樣率) =15.63MHz 即可滿足需求,否則 Fmax 數據上更是 差異 133Mhz,可以證明運用此最佳化方法進行設計 是可行的。可預想的在任何應用固定參數進行乘法 運算的電路上,套用此方法來改進乘法器的設計, 對於其效能與 IC 空間上都會有所改進。參考文獻
期刊:[1] “Base Station (BS) radio transmission and reception (FDD),” 3GPP TS 25.104-730, March 2006, P.32. [2] J. Chandran, R. Kaluri, J. Singh, V. Owall, R.
Veljanovski, “Xilinx Virtex II Pro implementation of a reconfigureable UMTS digital channel filter,” Second IEEE International Workshop on 28-30 Jan. 2004 P.77-82.
[3] A. Booth, ”A signed binary multiplication technique, ” Q. J. Mech, Appl. Math, vol. 4, pp.236-240, 1951.
[4] P. E. Madrid, B. Millar, and E. E. Swartzlander,
“Modified Booth algorithm for high radix fixed-point multiplication,” IEEE Trans, VLSI Syst. Vol. 1, No. 2,pp. 164 -167, June 1993.
[5] M. Honda, H. Harada, M. Fujise, “Efficient configuration data transmission scheme for FPGA-based downloadable software radio communication systems,” IEEE VTS 54th Volume 3, 7-11 Oct. 2001 P.1388-1392 vol.3.
[6] L. A. Jatunov, V. K. Madisetti, “Closed-form for infinite sum in bandlimited CDMA ,” Communications Letters, IEEE Volume 8, Issue 3, March 2004 P.138-140.
[7] M. Kosunen, J. Vankka, M. Waltari, K. A. I. Halonen, ” A multicarrier QAM modulator for WCDMA base-station with on-chip D/A converter, ”IEEE Transactions on Volume 13, Issue 2, Feb 2005 P.181-190.
[8] Zhang Weiliang, Pan changyong, Guo Xingbo, Yang Zhixing, ”Design and FPGA Implementation of High speed Square Root Raised Cosine FIR Filters,” IEEE 2002.
圖一:RRC 濾波器設計方塊圖
( a ):加法樹電路架構圖左半部
( b ):加法樹電路架構圖右半部 圖六:RRC 濾波器加法樹電路架構圖
圖十三:使用 CLK 頻率 20MHz 進行的脈衝響應模擬圖
圖十四:Z-1暫存器與式 1.2 表示電路(無法進行化簡的區域)
O1=00000.00000000110101(2) =0.00323486(10)
O22=11111.11010101011111(2) =-0.16607666(10)
( a ):RRC 濾波器電路圖上半部
( b ):RRC 濾波器電路圖下半部