基于GPP-SDR的TD-HSDPA物理信道软件设计及优化
2012-07-25张润福
黄 婕,黄 敏,张润福,齐 心,赵 利
(1.桂林电子科技大学 信息与通信学院,广西 桂林541004;2.清华大学信息科学与技术国家实验室,北京100084;3.厦门大学 通信工程系,福建 厦门361005)
0 引 言
软件无线电 (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协议栈提供了参考。
1 TD-HSDPA物理层协议栈介绍
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数据传输流程
2 高速物理信道软件设计
本文基于GPP-SDR平台在 Microsoft Visual Studio开发环境下利用C++语言设计实现了TD-HSDPA物理层协议栈,内容包括 HS-PDSCH、HS-SCCH、HS-SICH 三条物理信道的编码、调制、扩频等模块及其逆过程的软件实现。
2.1 接收机关键模块
接收端采用了若干接收机关键技术以增强系统的接收性能。图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的值。
2.2 软件实现
基于上述功能模块的描述以及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指令集优化了算法。
2.3 运行效率
为测试系统的运行效率以验证代码的优化效果,本文选取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 收端程序运行耗时
3 时变信道中的HARQ仿真
本文基于上述物理层软件设计,仿真了使用关键技术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]范例中的最大值,系统的运行效率与数据速率均符合协议要求。
4 结束语
本文研究了基于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].