黃 婕,黃 敏,張潤福,齊 心,趙 利
(1.桂林電子科技大學 信息與通信學院,廣西 桂林541004;2.清華大學信息科學與技術國家實驗室,北京100084;3.廈門大學 通信工程系,福建 廈門361005)
軟件無線電 (software defined radio,SDR)是在通用、標準、模塊化的硬件平臺上,利用軟件來實現信號處理的通信系統設計方法,其具備的靈活性使得通信設備隨通信標準變化帶來的開發、升級、測試周期顯著縮短。根據2G向3G乃至4G平滑演進的目標,軟件無線電技術非常適合實現上述功能乃至整個協議棧。傳統的SDR技術基于FPGA、DSP等專用開發平臺。一方面,缺乏靈活性和普適性,不適用于蜂窩移動通信標準和算法的不斷增強;另一方面,由于市場專一,規模有限,所以成本較高[1]。
因此,本文創新性地采用了基于通用處理器 (GPP)的SDR平臺,對TD-HSDPA高速物理信道的實現軟件進行了設計及優化。在本設計中GPP平臺采用現行PC機中使用的CPU,即實現基于PC機的軟件無線電系統。GPPSDR平臺與基于FPGA、DSP等處理器的SDR平臺相比,具有易編程,靈活性、可擴展性好等特點,可極大的縮短開發周期,降低開發成本[2]。
使用GPP-SDR平臺,需要解決通信系統的實時性與CPU運行高速數字信號處理算法的效率等問題。為此,本文使用C++語言設計了發送處理類和接收處理類,并采用適用于x86型CPU的單指令多操作 (SIMD)指令集SSE,從而極大地提高了軟件運行效率。通過對協議實例中最大速率配置的接收端代碼效率的測試,以及對HARQ機制性能的仿真,證明本文所提出的軟件設計及優化方法,滿足TD-HSDPA的處理延遲和性能要求,為在GPP-SDR平臺上進一步實現3G和LTE協議棧提供了參考。
TD-SCDMA是我國自主研發并被國際電聯 (ITU)正式采納的第三代蜂窩移動通信標準。其時分雙工方式使得TD-SCDMA可以靈活設置上下行時隙比例,適用于非對稱數據業務。憑借頻譜利用率高,系統容量大,系統設備成本低等特點,TD-SCDMA已經成為3G標準中三大主流技術之一。隨著各種業務對數據吞吐率的要求日益增長,TDSCDMA在3GPP Release 5中引入增強技術HSDPA,通過采用自適應編碼調制 (AMC)、混合自動重傳請求(HARQ)和快速調度 (FS)技術,增加一個 MAC-hs實體和三條物理信道,對于1.28Mcps采樣率的TDD系統,單載波1.6MHz帶寬上支持的理論峰值吞吐量達2.8Mbps。
3GPP Release5引入的HSDPA技術在物理層新增了三條信道,分別是高速物理下行共享信道 (HS-PDSCH)、高速共享控制信道 (HS-SCCH)、高速共享信息信道 (HSSICH)。三條信道的幀結構與TD-SCDMA中其他信道相同,如圖1所示。

圖1 TD-SCDMA無線子幀結構
圖中Ts0固定用于下行,Ts1固定用于上行,其他時隙可靈活分配上下行方向,從而適合開發非對稱數據業務。除7個常規時隙外的3個特殊時隙分別為:DwPTS(下行導頻時隙)、GP(保護間隔)和 UpPTS(上行導頻時隙)[3]。HS-PDSCH 信道的突發格式如圖2 (a)所示,HSSCCH與HS-SICH信道額外包含TPC和SS符號,突發格式如圖2 (b)所示[3]。

圖2 突發格式
HS-PDSCH承載傳輸信道 HS-DSCH,用于傳輸業務數據。HS-DSCH承載的傳輸塊 (transport block)通過編碼復用后映射到物理信道HS-PDSCH。其中包含HARQ功能實體和星座重排兩個較特殊的模塊。HARQ功能實體的作用是通過速率匹配的方式產生不同的數據版本,以實現HARQ的傳輸機制。星座重排模塊作為高階調制情況下特有的操作,通過改變比特所映射的星座點位置,使得重傳時信號能量在各符號上的分布發生變化,從而提高重傳合并后比特的可靠性。HS-SCCH為下行物理信道,用戶根據其承載的HS-DSCH高層控制信令及物理信道配置信息接收HS-PDSCH信道上的業務數據。HS-SCCH中包含的HARQ進程指示 (HARQ_ID)指示當前數據包所屬的HARQ進程。RV (Redundancy version)參數則用于計算HARQ功能實體的速率匹配參數,控制傳輸的數據版本。HS-SICH為上行物理信道,用于UE反饋ACK/NACK和信道質量指示CQI。ACK/NACK指示接收數據譯碼是否正確,使用重復編碼方式。CQI包含推薦調制方式 (RMF)和推薦傳輸塊大小 (RTBS)兩個內容,RTBS采用 (32,6)一階Reed-Muller編碼,RMF為重復編碼。
HS-PDSCH采用QPSK、16QAM、64QAM這3種調制方式,可根據信道條件靈活選擇,擴頻因子可為16或1。HS-SCCH與HS-SICH信道用于傳輸重要的配置和反饋信息,因此固定使用QPSK調制,擴頻因子為16。HSDPA三條信道的數據傳輸流程如圖3所示。

圖3 HSDPA數據傳輸流程
本文基于GPP-SDR平臺在 Microsoft Visual Studio開發環境下利用C++語言設計實現了TD-HSDPA物理層協議棧,內容包括 HS-PDSCH、HS-SCCH、HS-SICH 三條物理信道的編碼、調制、擴頻等模塊及其逆過程的軟件實現。
接收端采用了若干接收機關鍵技術以增強系統的接收性能。圖4為接收機功能模塊流程圖,關鍵模塊由紅框標出。下文分別介紹了各關鍵模塊的特點及程序接口。

圖4 接收機功能模塊流程
(1)聯合檢測:在TD-SCDMA系統中,由于擴頻碼不嚴格正交,其非零互相關系數會引起各用戶之間的相互干擾,稱為多址干擾 (MAI)[4]。MAI極大的影響了系統容量和性能,而聯合檢測技術則能充分利用造成MAI干擾的用戶互信息及多徑的先驗信息,把多用戶信號分離當成統一的相互關聯的聯合檢測過程完成。在相同BER的情況下,聯合檢測所需的信號SNR大大降低,極大地提高了系統性能。因此本設計使用聯合檢測來處理收到的碼片信息。模塊采用迫零線性塊均衡算法 (ZF-BLE)實現聯合檢測功能,并通過塊傅里葉算法降低矩陣求逆計算復雜度。模塊根據信道估計的結果,利用時隙內所有用戶的互信息,一次將一個時隙內的所有碼道碼片解出,解出的符號 (symbol)輸入解調模塊。
(2)16QAM解調:HSDPA技術中加入了高階調制,旨在提高頻譜利用率。在本文設計中,16QAM解調模塊采用了軟解調方式。軟解調模塊中解調器估計出每個比特的軟判決信息 (對數似然比LLR)并將其輸入到譯碼模塊。這些軟判決輸出可以保留部分譯碼需要信息,同時軟判決輸出符號與硬判決相同,保證了判決的可靠性。3GPP協議中16QAM調制的星座圖如圖5所示,收端軟解調模塊先將星座圖順時針旋轉45°再進行解調[5]。如系統模型所示,模塊輸出為帶符號的定點數據。程序中的解調模塊接口為DeModulation_16QAM (Complex*input_symbols,char*output_bits,int length,float noise_power),分別為輸入符號 (symbol)、輸出比特、輸出比特長度和噪聲功率。

圖5 HSDPA 16QAM星座
(3)信道編譯碼:傳輸業務的HS-PDSCH信道采用1/3碼率Turbo編譯碼。Turbo碼編碼器在兩個遞歸系統卷積碼編碼器之間插入一個交織器,這種結構能在低信噪比的情況下獲得接近理想的性能。1/3碼率Turbo編碼器輸出序列由一位信息位和兩位校驗位組成。設計中的Turbo譯碼器模塊接口為TurboDecoderPerform (char*c,char*rec_llr),分別是輸出比特,輸入比特軟信息。下行控制信道HS-SCCH信道編碼方式為1/3碼率卷積碼。卷積碼是一種非分組碼,適用于前向糾錯。收端譯碼采用維特比譯碼算法,利用了編碼網格圖的特殊結構,從而大大降低了計算的復雜性。程序中的維特比譯碼模塊接口為viterbi_13 (char*decoded_bits,char*input_llr,int K)。HSSICH信道中RTBS采用的 (32,6)一階Reed-Muller碼是一種線性分組碼。編碼模塊根據3GPP文檔[6]中給出的6個基本序列M0~M5,按照下式

計算出32個輸出比特。譯碼方法是先將收到的32個比特進行快速哈達瑪變換,找出輸出矩陣中的絕對值最大的數的列號作為譯碼結果的低5位,然后判斷這個數的符號,為正則譯碼最高位為0,反之為1。譯碼模塊接口為Decode_32_6 (char* RTBS_bits,int* RTBS),輸出為6比特數據的十進制形式,即RTBS的值。
基于上述功能模塊的描述以及3GPP的協議規定 (文獻 [6-8]),本文針對 TD-SCDMA系統的特點設計了 TDHSDPA基帶高速物理信道的軟件處理流程。設計發端處理類TD_TX_Subframe和收端處理類TD_RX_Subframe作為物理層信道程序的公共接口。兩者內部都定義了模塊接口函數以描述物理層過程,同時定義了物理層功能模塊函數。發端的代碼結構如圖6所示,主要分為初始化,信道編碼及物理信道映射、生成物理信道數據三部分。類TD_TX_Subframe的成員函數Initialize用于初始化 HSDSCH、HSSCCH、HSSICH的配置,物理信道配置及時隙格式配置等等。三條信道的編碼映射由3個類m_HSDSCH,m_HSSCCH,m_HSSICH分別獨立完成。每個類的成員函數按照協議中的流程編寫,映射后的數據交由類TD_TX_Subframe成員函數GenPhyCH統一進行調制、擴頻和加擾。調制和擴頻均以碼道為單位實現,因此歸入物理信道類m_PhyCH中,Initialize作為類m_PhyCH與外部程序的接口傳入數據和配置。完成調制及擴頻的多碼道數據經過合并后,以時隙為單位統一對數據進行加擾和添加midamble的操作。

圖6 發端代碼結構
收端的流程為初始化——解物理信道——解信道映射及信道譯碼。其中各信道解信道映射及信道譯碼為發端的逆過程,仍由3個獨立的類實現。解物理信道的代碼結構如圖7所示。圖中所示的相關程序接口均為收端類TD_RX_Subframe的成員函數。其處理過程為:信道估計模塊利用接收到的midamble序列和本地midamble序列估計出信道特征,包括各徑的時延和增益;信道估計的結果和收端數據輸入聯合檢測模塊中,一次解出一個時隙的符號;最后符號經過解調模塊的處理可得到比特級數據。SS/TPC譯碼模塊輸出 HS-SCCH、HS-SICH信道中的功控和時序調整信息。

圖7 收端解物理信道代碼結構
考慮到CPU在運行實時通信系統上的效率問題,本設計對系統代碼指令進行了優化,即使用SSE指令集。SSE指令集是Intel在Pentium III系列中推出的,包括單指令多數據浮點計算、整數計算和高速緩存控制指令。SSE中的單指令多數據計算指令可在一個指令周期同時對128比特數據進行操作,所以設計中主要采用SSE指令來優化包含大量乘法和加法的模塊,進而提高運行效率。以解擴模塊為例,在優化前,假設SF=16,那么解一個符號 (symbol)需要對16個碼片進行32次實數乘法。SSE指令一次可對128個比特進行操作,即兩個碼片數據 (4個float型數據),這樣解一個符號的運算量可減少為8次實數乘法,效率提高了75%。其他例如比特加擾,16QAM解調模塊都存在大量乘加運算,因此模塊中均利用SSE指令集優化了算法。
為測試系統的運行效率以驗證代碼的優化效果,本文選取3GPP協議25.102v9.1.0中具有最大速率的TD-HSDPA參考配置,測試了HS-PDSCH收端各模塊的運行耗時。運行環境:處理器主頻2.8GHz,物理內存2048MB,操作系統Windows XP。信道參數配置見表1。此配置最大數據吞吐率接近1.28Mbps,分配的物理信道資源達到12*5個碼道。
表2為收端接收一個子幀時各個模塊運行的耗時,統計了解物理信道和HS-DSCH信道編碼復用兩大部分各自的總耗時,以及HS-DSCH編碼復用中各子模塊的耗時。測試結果表明解物理信道映射與信道譯碼耗時較大。解信道映射時,每個比特都需要進行條件判斷并計算所在碼道中的具體位置,因此解映射模塊無法使用SSE指令進行并行計算。譯碼模塊則因配置的數據量較大,使得譯碼時間相對較長。總體來看,經過代碼優化后,相較于5ms的TTI長度,0.855ms的處理時間能夠滿足基于GPP-SDR的TD-HSDPA實時接收要求。

表1 HSDPA參考配置

表2 收端程序運行耗時
本文基于上述物理層軟件設計,仿真了使用關鍵技術HARQ的數據吞吐率,進一步驗證系統的可行性。HARQ技術具有快速自適應控制的特點,其N通道的停等機制提高了信道利用率。結合了自動請求重傳 (ARQ)與前向糾錯 (FEC)技術的特點,收端在譯碼錯誤的情況下,把比特軟信息保存下來,通過上行鏈路HS-SICH發送NACK要求重傳數據,收到重傳數據后與原軟信息合并,再送去譯碼。HS-SCCH信道中傳遞了與HARQ機制有關的參數,包括RV,HARQ_ID,新數據指示nd。
根據上述思想,HARQ功能實體內部有3種重傳機制,其不同點在于重傳數據的版本不同。因此物理層HARQ實體可以合入為速率匹配模塊。此模塊中有兩次速率匹配過程,兩次速率匹配之間插入一個虛擬緩存,第一次速率匹配的數據保存在此緩存中。第二次速率匹配是產生不同數據版本的關鍵。若收端要求重傳,發端跳過第一次速率匹配,直接從緩存中取出數據,根據HS-SCCH信道傳遞的RV信息控制第二次速率匹配的參數從而產生不同版本的重傳數據。軟件設計中根據N進程HARQ的思想設置了4個虛擬緩存 (3GPP協議中規定最大HARQ進程數為4),分別存儲不同進程的數據。同時每個進程也有與之相對應的配置緩存,存放RV,新數據指示,數據包CRC校驗結果,將不同進程的處理分離。收端根據HSSCCH信道收到的HARQ_ID確定當前HARQ進程進而調用相應緩存。
HARQ性能仿真的發端流程如圖8所示。其中配置了4個HARQ進程,一次流程執行過程只處理一個HARQ進程的數據,因此每個進程的訪問周期是4個子幀。設每個進程最大傳輸次數為4次,相應的,RV參數也有4種配置。收端需先接收配置信息才能在相應鏈路資源上接收數據包,所以測試中在初始0號子幀不產生HS-PDSCH數據包,只發送配置信息。下一子幀時,HS-PDSCH根據前一子幀的 HS-SCCH配置產生和接收數據。每個子幀的流程為:①HS-PDSCH信道數據包生成 (0號子幀時跳過)。②處理HARQ機制,在當前HARQ進程工作時,如果上一次數據包正確接收或已經傳輸4次,那么發送新數據包,HARQ速率匹配模塊緩存更新,新數據指示位加1,RV參數為初始0號配置;若收端譯碼錯誤,則HARQ速率匹配模塊中緩存數據再次進行第二次速率匹配,重發數據包,新數據指示位不變,RV配置改變。③HS-SCCH控制信息生成。④生成物理信道。收端為發端的逆過程,根據新數據指示位判定接收數據的類型,流程如圖9所示。收端HARQ處理機制為:在當前HARQ進程,若是第一子幀,則默認收到的新數據包,否則比較收到的新數據指示位與本地新數據指示位,如果不同表示是新數據包,且本地新數據指示位被替換,如果相同則表示是重傳數據,新數據指示位保持。收發端由一個時變信道連接起來。程序在上述時變信道環境下,測試了3GPP協議25.201[10]中兩種不同的配置,見表3。兩者的調制方式、TB塊大小以及物理資源均不相同。

表3 25.201中的兩種參考配置

圖8 發端流程
通過改變信噪比 (SNR)的大小,變化范圍為-5dB~15dB,步進值為2.5dB,統計了啟用HARQ機制的系統性能。圖10顯示了系統在不同信噪比條件下的吞吐率變化(縱軸為對數坐標。圖中顯示在低信噪比的條件下,高階調制的吞吐率較低。因為相較QPSK調制,16QAM的星座點較密集,信道條件不理想時,信號點漂移到其他星座點的概率較大,容易造成誤判。HARQ性能仿真結果進而證明了AMC技術的重要性。AMC技術可根據信道條件的變化,靈活的選擇調制和編碼方式,提供了大動態范圍的慢速自適應控制。HSDPA先通過AMC提供粗略的數據率選擇方案,然后再使用HARQ技術來對數據速率進行較準確的調整,從而可以極大的提高下行的數據傳輸速率[9]。
因此AMC技術可作為本設計下一步的努力方向,進一步改善系統的數據速率。由圖10可見,在信噪比為15dB時,系統的吞吐率已接近協議3GPP TS25.201[10]范例中的最大值,系統的運行效率與數據速率均符合協議要求。


本文研究了基于GPP-SDR平臺的TD-HSDPA系統高速物理信道的軟件實現。利用C++語言分別設計了發送端和接收端處理類,并通過SSE指令集優化代碼,實現了上下行鏈路的數據傳輸。通過對3GPP協議中最大速率參考配置的CPU運行效率的測試,以及在不同信噪比條件下的HARQ吞吐率性能仿真,證明了本文提出的基于GPPSDR平臺的軟件設計能夠滿足TD-HSDPA系統實時通信的需求,進而為基于GPP-SDR平臺實現寬帶無線通信協議提供了參考。
[1]CAO Han-wen,WANG Wen-bo.GNU Radio:Open software defined radio platform [J].Telecom Information,2007 (4):31-34 (in Chinese).[曹瀚文,王文博.GNU Radio:開放的軟件無線電平臺 [J].電信快報,2007 (4):31-34.]
[2]HOU Yan-zhao,TAO Xiao-feng.Architecture of green communication-oriented base stations [J].ZTE Communications,2010,16 (6):16-19 (in Chinese). [侯延昭,陶小峰.面向綠色無線通信的基站體系結構 [J].中興通訊技術,2010,16(6):16-19.]
[3]PENG Mu-gen,WANG Wen-bo.TD-SCDMA mobile communication system [M].Beijing:China Machine Press,2009:73-76 (in Chinese).[彭木根,王文博.TD-SCDMA移動通信系統 [M].北京:機械工業出版社,2009:73-76.]
[4]HUANG Hua-sheng,JIANG Ze.The theory and its implementation of joint detection in TD-SCDMA system [J].Journal of Chongqing University of Posts and Telecommunications,2001,13 (2):5-17 (in Chinese).[黃華生,蔣澤.TD-SCDMA系統中聯合檢測的原理和實現 [J].重慶郵電學院學報,2001,13 (2):5-17.]
[5]GU Xin-yu,WU Wei-ling.A general and efficient algorithm of high order demodulation with soft output [J].Radio Engineering,2004,34 (12):16-20 (in Chinese). [顧昕鈺,吳偉陵.一種通用的高效軟輸出高階解調算法 [J].無線電工程,2004,34 (12):16-20.]
[6]3GPP TS 25.221V9.2.1 (2010-07),Physical channels and mapping of transport channels onto physical channels (TDD)(Release9)[S].
[7]3GPP TS 25.222V9.2.0 (2010-06),Multiplexing and channel coding (TDD)(Release9)[S].
[8]3GPP TS 25.223V9.0.0 (2009-12),Spreading and modulation (TDD)(Release9)[S].
[9]LIU Yuan,YANG Wan-quan.Analysis of H-ARQ in HSDPA[J].Information Technology,2006,30 (11):79-82 (in Chinese). [劉淵,楊萬全.HSDPA中的 H-ARQ技術分析[J].信息技術,2006,30 (11):79-82.]
[10]3GPP TS 25.201V9.1.0 (2010-03),User Equipment(UE)radio transmission and reception(TDD)(Release 9)[S].