數字自動增益控制中利用現場可編程門陣列實現對數計算的方法
2023-04-26 00:48:31 1
專利名稱:數字自動增益控制中利用現場可編程門陣列實現對數計算的方法
技術領域:
本發明涉及在寬帶碼分多址(WCDMA)移動通信系統中基站接收機中進行數字自動增益控制時以現場可編程門陣列(FPGA)實現環路濾波器的中頻輸入信號的電平增益誤差的計算,該計算採用誤差輸入信號的對數運算方法實現。
背景技術:
在WCDMA(寬帶碼分多址)系統基站接收機中進行數字自動增益控制(AGC)時,需要對環路濾波器誤差輸入信號進行二進位對數運算,以求出中頻輸入信號的電平增益誤差。現有技術的二進位對數計算方法是查表法或級數展開法。
查表法就是將作為自變量的尾數(大小在1和2之間)和待求出的結果數據製成一個二元數據表,實際應用時對照這個數據表就可查出所需求出的數據。在基站接收機中如果利用現場可編程門陣列(FPGA)實現該對數運算,計算速度很快,僅需兩個時鐘周期。但由於需要預先存儲對數表,因而大量佔用系統的存儲器資源。而且使用查表方法所計算結果誤差較大,求出的數據精度難以控制,尤其當自變量較大時,自變量微小變化就能使計算結果數值出現很大的變化。當對數運算精度要求高時,就要求大量擴大對數表的容量,因而被佔用存儲器資源數量就會呈幾何級數上升。
級數展開法就是將對數函數轉化為泰勒級數展開式後再計算,如下所示ln(1+u)=u-u2/2+u3/3-u4/4+……隨著級數次數的增加,對數函數的泰勒展開式收斂速度變慢,如果要求其計算誤差小於1%,則至少要計算出展開式中前100項的累加和,而實際數字AGC控制中要求其對數計算誤差小於0.1%,因此至少要計算出展開式中前1000項的累加和,如此龐大的運算量就需要佔用大量的乘法器資源。如果在基站接收機中利用FPGA執行高精度的級數展開算法對數運算時,需要佔用的FPGA運算器資源呈幾何級數式上升,而實際上現有的FPGA器件很難提供如此大量的運算器資源。
因此,需要提出一種佔用FPGA的運算器資源和存儲器資源相對少的環路濾波器誤差輸入信號對數運算方法。
發明內容
本發明的目的在於提供一種利用FPGA實現對環路濾波器誤差輸入信號求取對數的方法,該方法能夠利用有限的乘法器和加法器資源實現對數運算。
本發明的方法充分利用二進位數據自變量尾數部分平方後的數據特點逐位遞推,從而求導出待求數據結果的各位數值,從而使計算過程很快收斂,計算誤差隨系統資源的增加呈幾何級數減小。利用FPGA實現本專利計算方法時,計算速度最快僅用一個時鐘周期,並且由於計算收斂速度很快,僅佔用極少的FPGA硬體資源就能滿足高精度要求。
本發明的利用現場可編程門陣列對環路濾波器輸入誤差求取對數的方法,包括步驟第一步,待求數據在管理協調單元控制下,經多路選擇器後依次選擇其中某個輸入誤差數據進入求對數單元進行計算;第二步,求對數單元中的歸一化部分將整數部分求出,歸一化即將二進位表示的輸入誤差數值小數點左移或右移,左、右移的位數即為對數數值的整數部分數值,左移則該整數部分為正整數,右移則該整數部分為負整數,經過歸一化將待運算輸入誤差數據限制在(1,2)之間,滿足了求對數的小數部分的條件;第三步,求對數單元中的平方比較單元求出對數數值的小數部分;第四步,求對數單元中的反歸一化部分將歸一化部分求得的整數和平方比較單元求得的小數加起來,得到所需要的結果;第五步,多路分配器在管理協調單元控制下,將所需要的結果依次傳送到對應的數據寄存器中輸出。
本發明的上述對環路濾波器輸入誤差求取對數的方法,其特徵在於所述第三步驟中求對數的小數部分的計算過程包括如下步驟歸一化後二進位數值以1.X1X2X3---Xm表示,對該二進位小數進行以2為底數的對數運算,求其對數值小數部分,該對數值小數部分表示為0.Y1Y2Y3---Yn;利用FPGA乘法器對1.X1X2X3---Xn平方進行計算,結果表示為b1,將b1與2進行比較,如果b1≥2,則推斷知Y1=1,反之則Y1=0;由此獲得二進位對數數值Y的小數點右第一位的結果Y1;在求出Y1後可得出Y2位的遞推自變量Q2(Q2=0.Y2Y3…Yn),在Y1=0的情況下,意味著1.X1X2X3---Xn的平方B1小於2,可推導出Q2=b1;在Y1=1的情況下,意味著1.X1X2X3---Xn的平方大於等於2,則該平方數值以二進位數字表示為1X11.X21X31---Xm1,可將該數值除以2,相當於小數點右移一位,由此獲得數值Q2=b1/2,從而可將Q2表示為二進位數字1.X11X21X31---Xm1,然後利用FPGA乘法器對1.X11X21X31---Xm1平方進行計算,結果表示為b2,將b2與2進行比較,如果b2≥2,則可推斷知Y2=1,反之則Y2=0;由此獲得二進位對數數值Y的小數點右第二位的結果Y2;在求出Y2後可得出Y3位的遞推自變量Q3(Q3=0.Y3Y4…Yn),在Y2=0的情況下,意味著1.X11X21X31---Xm1的平方B2小於2,可推導出Q3=b2;在Y2=1的情況下,意味著1.X11X21X31---Xm1的平方大於等於2,則該平方數值以二進位數字表示為1X12.X22X32---Xm2,可將該數值除以2,相當於小數點右移一位,由此獲得數值Q3=b2/2,從而可將Q2表示為二進位數字1.X12X22X32---Xm2,然後利用FPGA乘法器對1.X12X22X32---Xm2平方進行計算,結果表示為b3,將b3與2進行比較,如果b3≥2,則可推斷知Y3=1,反之則Y3=0;由此獲得二進位對數數值Y的小數點右第二位的結果Y3;按照上述步驟反覆執行,直到求出所需要精度的Y1、Y2、Y3、……、Yn,由此獲得對數值的小數部分。
本發明利用FPGA中的相加和相乘等功能組合,僅用很小的資源成本就能實現複雜輸入信號誤差的求對數,是一種簡單、可靠、實用的方法。
圖1為本發明的FPGA進行二進位對數運算方法的主要功能模塊示意圖。
圖2為本發明的FPGA進行二進位對數運算方法中求對數數值小數部分的步驟。
具體實施例方式
下面結合附圖詳細說明本發明的方法。
實際利用FPGA實現數字AGC時,通常有多個環形濾波器的輸入誤差數據需要求取對數數值,而且這些已知輸入數據為32位或16位正整數,待求出的對數值含有整數和小數部分,因此需要採取時分復用的方式依次求出各個待求數據的對數值,即依次將輸入的待求數據傳送到專用的求對數單元計算,同時將求得的結果輸出到對應的對數值寄存器中,這樣就需要管理協調單元進行管理,而且每次求各個待求數據的對數時,都要先將其歸一化,即將二進位數值的小數點左移或右移,使得二進位數值限制在(1,2)之間,然後依據圖2所示過程求出小數部分。
結合圖1解釋本發明的利用FPGA對環形濾波器的輸入誤差數據求取對數數值方法的總步驟第一步,待求數據在管理協調單元控制下,經多路選擇器後依次選擇其中某個輸入誤差數據進入求對數單元進行計算;第二步,求對數單元中的歸一化部分將整數部分求出,歸一化即將二進位表示的輸入誤差數值小數點左移或右移,左、右移的位數即為對數數值的整數部分數值,左移則該整數部分為正整數,右移則該整數部分為負整數,經過歸一化將待運算輸入誤差數據限制在(1,2)之間,滿足了求對數的小數部分的條件;第三步,求對數單元中的平方比較單元求出對數數值的小數部分;第四步,求對數單元中的反歸一化部分將歸一化部分求得的整數和平方比較單元求得的小數加起來,得到所需要的結果;第五步,多路分配器在管理協調單元控制下,將所需要的結果依次傳送到對應的數據寄存器中輸出。
上述第三步驟中,環形濾波器的輸入誤差進行歸一化後,待運算數值變成整數部分為1的二進位小數,以1.X1X2X3---Xm表示,其中X1、X2、X3、……、Xm的數值為0或1。對該二進位小數進行以2為底數的對數運算,求其對數值,該對數值表示為0.Y1Y2Y3---Yn。
如果設U=1.X1X2X3---Xm,Y=0.Y1Y2Y3---Yn,則對數運算為Y=LOG2U上述公式以指數形式表示為20Y1Y2Y3……Yn=1.X1X2X3---Xm(1)將上式兩邊同時平方,可得出等式如下2Y1Y2Y3……Yn=(1.X1X2X3---Xm)2(2)公式2中,公式1左邊平方,相當於指數乘2,而對於二進位小數0.Y1Y2Y3---Yn乘以二等於小數點右移一位,記b1=(1.X1X2X3---Xm)2利用FPGA中的一個乘法器對1.X1X2X3---Xn平方進行計算,求得b1數值,將該數值與2進行比較,如果b1≥2,則可推斷知Y1=1,反之則Y1=0;由此獲得二進位對數數值Y的小數點右第一位的結果Y1。
求出Y1後,再遞推求出Y2。
由公式(2)可知當Y0=0時,20.Y2Y3…Yn=B1;(此時B1在1和2之間)當Y1=1時,20.Y2Y3…Yn=B1/2;(此時B1在2和4之間,B1/2在1和2之間)因而可以記作下式
20.Y2Y3…Yn=1.X11X21X31---Xm1(3)將公式3兩端同時平方,可以獲得公式42Y2.Y3…Yn=(1.X11X21X31---Xm1)2(4)設b2=(1.X11X21X31---Xm1)2利用FPGA一個乘法器對1.X11X21X31---Xm1平方進行計算,求得b2數值,將該數值與2進行比較,如果b2≥2,則可推斷知Y2=1,反之則Y2=0;由此獲得二進位對數數值Y的小數點右第二位的結果Y2。
求出Y2後,再遞推求出Y3。
由公式(4)可知當Y2=0時,20.Y2Y3…Yn=B2;(此時B2在1和2之間)當Y2=1時,20.Y2Y3…Yn=B2/2;(此時B2在2和4之間,B2/2在1和2之間)因而可以記作下式20.Y2Y3…Yn=1.X12X22X32---Xm2(5)將公式5兩端同時平方,可以獲得公式62Y2.Y3…Yn=(1.X12X22X32---Xm2)2(6)設b3=(1.X12X22X32---Xm2)2利用FPGA一個乘法器對1.X12X22X32---Xm2平方進行計算,求得b3數值,將該數值與2進行比較,如果b3≥2,則可推斷知Y3=1,反之則Y3=0;由此獲得二進位對數數值Y的小數點右第二位的結果Y3。
按照上述步驟反覆執行,直到求出所需要精度的Y1、Y2、Y3、……、Yn,由此獲得對數值的小數部分。
用FPGA實現上述算法時,最慢僅用三個時鐘周期就可以計算出一位數值。具體實現時可以根據採用的流水線方式配置FPGA的系統資源。以需要求解n位數值(Y1Y2…Yn)為例,如果採用全流水線方式,需要n個乘法器,即每個平方運算佔用一個乘法器,這樣佔用FPGA資源最大,但計算速度最快,求取一個對數數據平均僅佔用一個時鐘周期,總體延遲3n個時鐘周期。如果採用無流水線方式,僅用一個乘法器,在求每位數值的平方運算時共享,這樣佔用系統資源最少,但計算速度最慢,求取一個對數數據需要佔用3n個時鐘周期。如果採用半流水線方式,即綜合上述兩種計算方式,部分數據位的計算共享一個乘法器,部分數據位的計算採用流水線方式,結合實際擁有的FPGA資源適當調配,以求以合適的FPGA資源換取合適的計算速度和數據延遲。
權利要求
1.一種利用現場可編程門陣列對環路濾波器輸入誤差求取對數的方法,包括步驟第一步,待求數據在管理協調單元控制下,經多路選擇器後依次選擇其中某個輸入誤差數據進入求對數單元進行計算;第二步,求對數單元中的歸一化部分將整數部分求出,歸一化即將二進位表示的輸入誤差數值小數點左移或右移,左、右移的位數即為對數數值的整數部分數值,左移則該整數部分為正整數,右移則該整數部分為負整數,經過歸一化將待運算輸入誤差數據限制在(1,2)之間,滿足了求對數的小數部分的條件;第三步,求對數單元中的平方比較單元求出對數數值的小數部分;第四步,求對數單元中的反歸一化部分將歸一化部分求得的整數和平方比較單元求得的小數加起來,得到所需要的結果;第五步,多路分配器在管理協調單元控制下,將所需要的結果依次傳送到對應的數據寄存器中輸出。
2.根據權利要求1的所述對環路濾波器輸入誤差求取對數的方法,其特徵在於所述第三步驟中求對數的小數部分包括步驟歸一化後二進位數值以1.X1X2X3---Xm表示,對該二進位小數進行以2為底數的對數運算,求其對數值小數部分,該對數值小數部分表示為0.Y1Y2Y3---Yn;利用FPGA乘法器對1.X1X2X3---Xn平方進行計算(Q1=0.Y1Y2Y3…Yn),結果表示為b1,將b1與2進行比較,如果b1≥2,則推斷知Y1=1,反之則Y1=0;由此獲得二進位對數數值Y的小數點右第一位的結果Y1;在求出Y1後可得出Y2位的遞推自變量Q2(Q2=0.Y2Y3…Yn),在Y1=0的情況下,意味著1.X1X2X3---Xn的平方B1小於2,可推導出Q2=b1;在Y1=1的情況下,意味著1.X1X2X3---Xn的平方大於等於2,則該平方數值以二進位數字表示為1X11.X21X31---Xm1,可將該數值除以2,相當於小數點右移一位,由此獲得數值Q2=b1/2,從而可將Q2表示為二進位數字1.X11X21X31---Xm1,然後利用FPGA乘法器對1.X11X21X31---Xm1平方進行計算,結果表示為b2,將b2與2進行比較,如果b2≥2,則可推斷知Y2=1,反之則Y2=0;由此獲得二進位對數數值Y的小數點右第二位的結果Y2;在求出Y2後可得出Y3位的遞推自變量Q3(Q3=0.Y3Y4…Yn),在Y2=0的情況下,意味著1.X11X21X31---Xm1的平方B2小於2,可推導出Q3=b2;在Y2=1的情況下,意味著1.X11X21X31---Xm1的平方大於等於2,則該平方數值以二進位數字表示為1X12.X22X32---Xm2,可將該數值除以2,相當於小數點右移一位,由此獲得數值Q3=b2/2,從而可將Q2表示為二進位數字1.X12X22X32---Xm2,然後利用FPGA乘法器對1.X12X22X32---Xm2平方進行計算,結果表示為b3,將b3與2進行比較,如果b3≥2,則可推斷知Y3=1,反之則Y3=0;由此獲得二進位對數數值Y的小數點右第二位的結果Y3;按照上述步驟反覆執行,直到求出所需要精度的Y1、Y2、Y3、……、Yn,由此獲得對數值的小數部分。
全文摘要
本發明涉及在寬帶碼分多址移動通信系統中基站接收機中進行數字自動增益控制時以現場可編程門陣列實現環路濾波器中頻輸入信號的電平增益誤差的計算,該計算採用誤差輸入信號的對數運算方法實現,該方法充分利用二進位數據自變量尾數部分平方後的數據特點逐位遞推,從而求導出待求數據結果的各位數值,從而使計算過程很快收斂,計算誤差隨系統資源的增加呈幾何級數減小,利用該方法計算速度最快僅用一個時鐘周期,並且由於計算收斂速度很快,僅佔用極少的硬體資源就能滿足高精度要求。
文檔編號G06F7/556GK1687895SQ20051007493
公開日2005年10月26日 申請日期2005年6月7日 優先權日2005年6月7日
發明者陳印鋒 申請人:北京北方烽火科技有限公司