引言
隨著因特網爆炸性的增長以及各種無線業務需求的增加,傳統的無線通信網已經越來越無法適應人們的需要。因此,以大容量、高數據率和承載多媒體業務為目的的第三代移動通信系統(IMT-2000)應運而生。碼分多址(CDMA)由于其良好的抗噪性、保密性和簡單性等優點而成為第三代移動通信的主流。主要方案包括歐洲標準WCDMA,美國標準CDMA-2000和中國標準TD-SCDMA。
和傳統的CDMA系統相比,第三代移動通信的最大特點在于可支持具有不同QoS的變速率的多種業務,這便要求其具有將各種無線媒體業務復接在一起傳輸的能力。為了達到這一目標,WCDMA采用了一種比較完善的業務復接方案,各種業務須經過一套復雜的編碼復接流程才能進行擴頻調制,占用盡可能少的碼道以恒定的功率發送。這樣就最大限度地減少了碼道間串擾,降低了對功放線性程度的要求。圖1所示的是WCDMA下行鏈路編碼復接方案流程圖。而速率適配算法是業務復用方案的核心算法,如何設計有效的算法實現方案,是業務復用方案設計的關鍵環節。
圖1 下行鏈路編碼復接方案
圖2 下行鏈路Turbo編碼比特鑿孔時TrCH的速率適配
圖3 下行未編碼和卷積編碼以及重復的Turbo編碼的TrCH的速率匹配
圖4 鑿孔圖樣產生
速率適配算法描述
一條傳輸信道上不同的傳輸時間間隔中的比特數有可能不一樣,但是上下行鏈路都對傳輸的比特率有一定的要求:下行鏈路中如果比特數低于最小值的就會被中斷;上行鏈路中各傳輸時間間隔的比特數不同,但需要保證第二次交織后的總比特率等于所分配的專用物理信道的總比特率。因此需要重復或者鑿去傳輸信道上的一些比特。速率適配就是指在傳輸信道上的數據比特被鑿孔(Puncturing)或重復(Repeating),以便使信道映射時達到傳輸格式所要求的比特速率。“鑿孔”是按照一定的算法鑿去某些位置的比特;“重復”則按照一定的算法在某些位置插入重復比特。
速率匹配前的比特記為:xi1,xi2,xi3,k,xixi 其中 i 為 TrCH 號,速率匹配參數為Xi, eini, eplus, 和eminus。
eini:初始化誤差,算法中誤差e的初始值;
eminus:相減誤差,算法中誤差e的相減值;
eplus:相加誤差,算法中誤差e的相加值;
N:數據量,即速率適配前的數據量。
速率匹配的規則如下:
if 要執行“鑿孔”操作
e=eini 初始化目前的與要求的鑿孔比例之間的偏差
m=1 當前比特索引序號
do while m <= N
e=e-eminus 修改誤差
if e <= 0 then 檢查m是否是應該鑿掉的比特序號
鑿掉該比特xi,m
e=e+eplus 更改誤差
end if
m=m+1 進行下一個比特的判斷
end do
else
e = eini 初始化目前的與要求的鑿孔比例之間的偏差
m = 1 當前比特索引序號
do while m <= N
e = e - eminus 修改誤差
do while e <= 0 檢查比特m 是否是應被重復的比特序號
重復比特 xi,m
e = e + eplus 更改誤差
end do
m = m + 1 進行下一個比特的判斷
end do
end if
該適配算法對于上行鏈路和下行鏈路都是適用的。3GPP協議中規定了“鑿孔”和“重復”算法的使用對象與范圍。Turbo編碼后的系統比特不允許鑿去,因此如果對Turbo編碼后的數據進行“鑿”操作,則首先應將系統比特和校驗比特區分開,僅對其中的校驗比特進行“鑿”操作;然而Turbo編碼后的數據如果進行“重復”以及卷積編碼后數據進行“鑿”或“重復”都不區分系統比特與校驗比特。上述情況的速率匹配見圖2及圖3。
另外,協議給出的確定參數的算法依編碼方式及鏈路的不同而不同。也就是說,Turbo編碼與卷積編碼、下行鏈路與上行鏈路在確定適配參數的算法上有區別。具體的確定算法可以參考3G相應的協議。
速率適配的FPGA實現
通過對編碼復接的方案研究發現,直接根據協議流程對數據流各個步驟(一共大約11個步驟)直接進行處理將會大大增加系統復雜度,這樣每個步驟之間都需對數據進行緩存,而移動環境下系統支持的最高速率可達384Kbps,對于TTI=20ms的業務,平均每步需要的緩存為7.68K,所需要的總存儲量是巨大的。而且這中間,數據流頻繁的寫入讀出所導致的處理時延也是難以忍受的。因此,如果將某些步驟合并起來,就能減少不必要的數據存取工作,從而節省存儲量,縮短處理延時。
上行鏈路的速率匹配按10ms數據幀為單位進行,而下行鏈路則是以TTI為單位針對一個無線幀的數據比特進行的。雖然算法上一致,但是考慮到上下行各自的步驟合并情況,在實際處理上還是有很大區別的。下面以下行144Kb/s速率適配為例介紹一下其FPGA的實現方法。
144Kb/s速率適配過程大致分為兩個模塊:鑿圖樣產生模塊和保留比特搬移轉換模塊。在實現過程中,用到的存儲資源是兩個RAM—一個用來存“鑿”圖樣、另一個用來存原來的數據,兩個DCFIFO(雙時鐘FIFO)用來存比特收集后的兩幀數據。
圖5 保留比特搬移轉換
鑿孔圖樣產生模塊
由于144Kb/s業務信道編碼用的是Turbo編碼,鑿孔時只針對兩個分量編碼器輸出的校驗比特,因此需先進行比特分離再分塊進行鑿孔操作(系統比特塊自動保留不進行鑿孔操作)。我們采用了一種鑿孔圖樣控制方式,所有待速率適配比特都對應一個P比特,P=1表示鑿去,P=0表示保留,以此種方式產生鑿孔圖樣來控制保留比特的搬移。具體實現框圖如圖4所示。主要硬件結構包括一個加法器、一個減法器、一個數值比較器、一個計數器和一個選通控制模塊及參數初始化模塊。
該結構工作過程如下:首先,比特分離和參數初始化模塊主要完成模塊計數和eini、eminus、eplus等參數的初始化設置。
在減法器端,當前誤差值e減去eminus,該數值同時送給數值比較器和選通控制模塊。減法器的輸出結果和0值作比較,如果結果小于零則記P比特為1;如果結果大于零則記P比特為0,同時將減法器的輸出結構作為當前加法器的A端輸入值。P比特則在選通控制模塊產生的讀寫使能、地址信號線的驅動下寫入Punc_ram。另外用一個計數器來對比特數進行記錄,以控制整個流程的結束時刻。系統時鐘為8倍碼片時鐘,計數器和Punc_ram都采用同步控制,加法器、減法器及比較器都不采用同步時鐘延時。
保留比特搬移轉換模塊
鑿圖樣產生以后,接下來的操作就是保留比特的搬移和轉換,并進行第一次交織和無線幀分段。按照3GPP協議,對于TTI=20ms的144Kb/s業務,其交織模式是<0,1>,亦即順序輸出。
實現的流程圖如圖5。假定TURBO編碼后待速率適配的比特流存在out_ram中,這里進行的操作關鍵是鑿孔圖樣的讀出和out_ram的讀出應該是同步一致進行(在同一個時鐘上升沿開始),用Punc_ram的輸出來作為積攢比特的使能信號。用移位寄存器組和計數器實現比特積攢,每等到滿16bit時,就進行串并轉換,同時產生一個fifo寫使能脈沖,把一個字的內容寫入fifo;等到滿一幀(復接前的數據幀)的時候,轉向對下一個fifo進行寫操作。到一個數據幀4205bit結束時,積攢比特不滿16的補零表示,串并轉換為一個字寫入fifo。
資源使用和時延分析
按照上面的實現方式,主要占用的是存儲資源,現代FPGA中的ESB(嵌入式系統塊)可以很容易地實現各種類型的存儲模塊,包括雙端口RAM、ROM、FIFO及CAM塊。下面主要進行的是時延分析。
按照上面的流程可以大致估算一個比特從“鑿孔”圖樣產生到比特搬移完成所用的時間。所選工作時鐘速率為8倍碼片速率3.84MHz,一個時鐘周期約為32.4ns。鑿孔圖樣模塊中的加法器、減法器、選通控制大概需要3個時鐘周期,9516個鑿孔圖樣的產生需要大致925ns;保留比特搬移模塊主要是數據比特的直接搬移,對于最后一個比特而言,假定它是保留比特,從搬移開始到最終寫入FIFO,經過了大致9516+16=9532個時鐘周期,耗時大約308ns。對整個流程用MAXPUSII仿真,總共耗時1.336ms,考慮到中間的緩沖控制和使能控制延遲,仿真結果和計算值大致吻合。對于TTI=20ms的業務,完全滿足處理要求。
結語
WCDMA系統的電路型數據業務(64K)和分組型數據業務(144K、384K)可以實現對多媒體業務的承載,但由于基帶數據處理量大、比特搬移操作明顯,編碼復接中的核心算法之一速率適配算法我們采用了FPGA實現,并且適當合并了前后步驟,大大縮短了處理時間,使系統達到了很高的吞吐量和處理速度,完全滿足3GPP協議規范的要求。在實際實施中被證明是可行的。此外,文中提出的模塊合并、產生鑿孔圖樣進行比特積攢搬移的思想同樣可以適合未來更復雜的編碼復接方案。
- GA實現(6726)
- WCDM(7633)
相關推薦
基于VirtexⅡXC2V1000-5 FPGA實現寬帶多速率解調器的設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/DA/EC/pIYBAGABE5KAaTgoAABmf-Sqon8879.png)
FPGA 如何實現串行算法?????? 大神
FPGA實現滑動平均濾波算法和LZW壓縮算法
FPGA中實現PID算法
FPGA設計之浮點DSP算法實現【賽靈思工程師作品】
FFT 算法的一種 FPGA 實現
FFT算法的FPGA實現
MATLAB和Simulink算法原型如何在FPGA上適配?
RC4加密算法的FPGA設計與實現
RF WCDMA測量速度怎么樣?
分享書籍<<無線通信FPGA設計>>作者田耘
基于FPGA的AGC算法
基于FPGA的FFT算法硬件實現
基于FPGA的多路回聲消除算法的實現
基于FPGA的膚色識別算法實現
基于FPGA的腐蝕膨脹算法實現
基于FPGA的高速實時圖像采集和自適應閾值算法
如何用數字IC/FPGA實現算法
如何通過使用FPGA高速實現SHA-1消息認證算法?
怎么在spartan 3AN fpga實現遺傳算法
求大神分享一種WCDMA系統基帶處理的DSP FPGA實現方案
采用FPGA來實現SVPWM調制算法
經典FPGA算法教材
![](https://skin.elecfans.com/images/2021-soft/load.png)
小波盲源分離算法的仿真及FPGA實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于FPGA 的指紋識別算法硬件實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
GSM全速率語音編碼中Schur遞歸算法的FPGA實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
以太網到多路E1適配電路設計及FPGA實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于FPGA的AES加密算法的高速實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
WCDMA速率適配算法的FPGA實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于FPGA的AES加密算法的高速實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
AES中SubBytes算法在FPGA的實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于FPGA的相關干涉儀算法的研究與實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于FPGA的橫向LMS算法的實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
DCT域數字水印算法的FPGA實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
WCDMA系統基帶處理的DSP+FPGA實現方案
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A4/2E/wKgZomUMMwOAGG5BAACLbp212GM935.jpg)
3-DES算法的FPGA高速實現
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A4/30/wKgZomUMMw-AFASzAAB_Kg-Ix-g455.gif)
用FPGA實現FFT算法
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A4/6F/wKgZomUMNDGAQkY1AAAwHquofCA652.jpg)
3DES算法的FPGA高速實現
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A5/0A/wKgZomUMNq-AZ4PaAABbUoVibig168.jpg)
基于多速率DA的根升余弦濾波器的FPGA實現
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A5/5B/wKgZomUMOA2AdVoTAADYsWMhpoY074.jpg)
聯通高管透露WCDMA網演進:三階段實現100M速率
![](https://skin.elecfans.com/images/2021-soft/eye.png)
基于WCDMA速率適配算法的FPGA設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A5/A4/wKgZomUMOWCAbDHKAABMlzAMNR8859.gif)
WCDMA下行專用物理信道的FPGA實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
WCDMA主同步的FPGA實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
DRM系統的SHA256算法設計及FPGA實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
WCDMA速率匹配算法分析
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于FPGA的檢糾錯邏輯算法的實現
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A5/FF/wKgZomUMOzeACzONAAARPFJdSWo229.jpg)
低信噪比環境下WCDMA小區搜索的FPGA實現
![](https://skin.elecfans.com/images/2021-soft/load.png)
FPGA信號處理算法設計、實現以及優化(南京)
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于SHA-1算法的硬件設計及實現(FPGA實現)
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于FPGA速率匹配算法的實現
![](https://skin.elecfans.com/images/2021-soft/eye.png)
基于FPGA的Cordic算法實現的設計與驗證
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/56/1A/o4YBAFs65GqAfw_ZAABLax6NZn0507.png)
在WCDMA中如何用FPGA生成下行擾碼
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/99/D3/pIYBAF0arj6ABIkkAAAblrYw4c4066.jpg)
如何使用FPGA實現優化的指紋識別預處理算法
![](https://skin.elecfans.com/images/2021-soft/load.png)
如何使用FPGA實現圖像灰度級拉伸算法
![](https://skin.elecfans.com/images/2021-soft/load.png)
如何使用FPGA實現圖像灰度級拉伸算法
![](https://skin.elecfans.com/images/2021-soft/load.png)
簡述LTE系統中FPGA速率匹配算法的仿真及實現
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/EC/D4/o4YBAGCIvXKAN_d0AAAmLQGvyHM146.gif)
用FPGA實現FFT算法的方法
![](https://skin.elecfans.com/images/2021-soft/eye.png)
FPGA實現PID控制算法
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com/web2/M00/88/78/wKgZomRnNYqAKy51AAAyEvRNzUA762.jpg)
基于FPGA的速率自適應圖像抽取算法
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A0/CC/wKgaomToPTWAI9LuAAAAuFYhST8821.png)
怎么用FPGA做算法 如何在FPGA上實現最大公約數算法
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com/web2/M00/90/B7/wKgZomTcbQWALa-GAAKIfwRwWgQ221.png)
hash算法在FPGA中的實現(1)
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com/web2/M00/A3/47/wKgaomT4QbKASYNMAAArk1whgxw227.jpg)
評論