段辉鹏,凌朝东,罗继亮
(华侨大学 信息科学与工程学院,福建 厦门 361021)
未来移动通信系统大容量、低延时、高速率等应用场景正推动着第5代移动通信技术(5G)的蓬勃发展,以低成本网络提供高质量的通信业务将是影响5G未来发展的关键因素[1].以云化无线接入网(C-RAN)为代表的集中化无线接入网架构是实现低成本接入网的重要技术之一[2],它将基站的基带部分和射频部分分离,基带处理部分集中于室内基带处理单元(BBU),而远端基站退化为射频拉远单元(RRU),连接BBU和RRU之间的通信链路称为前传链路[3].5G传输的数据速率是4G的100~1 000倍[4],为实现网络的高速接入,天线端将采用大规模多天线阵列技术,前传传输的带宽也会急剧增加.因此,采用通用公共无线接口(CPRI)协议的光纤接入前传承载方案非常具有优势[5].然而,采用CPRI协议的5G单站点带宽需求将达到百吉比特每秒量级[6],这对光纤接入的成本而言是一大挑战,为了降低数据传输量,本文提出一种采用通用公共无线接口协议的有损I/Q数据压缩方案[7].
通用公共无线接口(CPRI)联盟制定了开放的接口标准,定义了两个基本单元,即无线设备控制中心(REC)和无线设备(RE).CPRI协议涉及射频、基带、控制、传输等模块之间的接口规范,主要是针对物理层和数据链路层.CPRI协议的整体架构,如图1所示[8].
图1 CPRI协议的整体架构
物理层支持电气接口和光接口,并且支持多种线比特率和8B/10B,64B/66B两种编码方式.不同的线比特率旨在满足REC和RE之间传输的灵活配置,可以节约成本、提高效率[9].数据链路层支持I/Q数据、厂商特定信息、以太网协议或高级链路控制协议、L1带内协议.根据物理层和数据链路层的协议,数据都采用多路复用的方式进行传输[10].CPRI协议传输3种类型的数据流,分别为同步数据流、控制管理数据流和用户数据流,同步数据流主要负责REC和RE、RE和RE、REC和REC之间的数据同步,控制管理数据流主要负责对CPRI链路的控制和管理,用户数据流即I/Q数据流,主要是基站和移动设备之间传输的数据,即文中的压缩对象.
光纤基带传输系统简化框图,如图2所示.图2中:FPGA为现场可编程门阵列.由于上行链路和下行链路的工作方式基本一致,故以下行链路为例进行说明.
图2 光纤基带传输系统简化框图
信号由天线接收进入混频器,混频器主要完成射频到中频的处理,经混频器处理后,信号进入模数转换器(ADC),将模拟信号转变为数字信号,输出两路信号;为了降低后续光模块的数据传输量,先将信号送入一个数据压缩模块,以降低数据的吞吐量,将压缩后的信号送入CPRI协议接口模块,并进行相应的组帧;经串行收发器将信号通过光纤发送到远端,远端通过串行收发器恢复出压缩后的信号;利用CPRI协议对信号进行解帧,并将数据输出到解压缩模块,进行解压处理;将信号送给后续的数模转换器(DAC),完成数字信号到模拟信号的转换,经混频器完成中频到射频的上变频处理并输出.
ADC的采样率为122.88 MHz,输出为16 bit二进制有符号数,为了降低光纤链路的数据传输量,降低开发成本,根据原始数据绝对值的大小,对数据截断处理后进行压缩,截断后的数据为8 bit二进制有符号数.在压缩过程中,先将经过ADC之后的数据进行分组[11],为了简化压缩过程的复杂度,以及便于FPGA实现,需要将每组数据样本点数都设置为相同.为了保证压缩精度,每组数据样本点数不能太多,但每组数据样本点数太少又会导致压缩效率的降低,因此,在确定每组数据样本点数时,需要进行折中考虑,既要保证一定的压缩精度,又要保证一定的压缩效率[12],最终压缩方案的每组数据样本点数确定为32个.在压缩操作前,需要对原始数据样本点绝对值进行逐一比较,找出每组数据样本点绝对值中的最大值,通过最大绝对值确定每组数据样本点的压缩因子K,最大绝对值越大,压缩因子K就越大.压缩方案的压缩因子为4 bit无符号数,但压缩因子K的范围只为4~8,而剩余的数并未用到.在对原始数据绝对值进行比较时,首先,把每组第1个数据的绝对值当作这组的最大绝对值.然后,再对后续的31个样本点绝对值进行逐一比较,直到比较31次后,得到本组样本点中的最大绝对值.在进行绝对值比较的同时,需要将接收的基带I/Q数据存入缓存,以便和压缩因子K进行时序对齐,保证对数据的正确压缩.最后,进行压缩操作,将16 bit的基带I/Q数据进行相应的截位压缩至8 bit,根据压缩因子K的大小,截掉经缓存后数据的低K位.由于有符号数的高位通常是符号位的扩展,除了最低一位符号位,其他都可看作冗余位,在截位过程中也会把部分符号位截掉,剩下中间的8 bit,即第K到第K+7 bit为最终压缩的数据(最低位为从右至左第0 bit).
为保证接收端能够正确解压数据,4 bit压缩因子K总是在32个已压缩数据之前传输,然后,按照CPRI协议进行组帧,通过光纤传输给远端.压缩模块,如图3所示.接收端先将数据按照CPRI协议进行相应的解帧,再对数据进行解压处理.解压过程相对简单,解压端接收到压缩因子K,并将其保持32个时钟周期.同时,根据压缩因子K对紧接着接收到的32个8 bit已压缩数据进行解压处理,恢复出16 bit数据,其中,低位填补0,高位填充符号位.
图3 压缩模块
文中压缩方案能够将原来需要传输的16 bit数据压缩到8 bit,实现了2∶1的压缩,可以节约一半的光纤资源带宽.例如,单天线基带带宽为20 MHz的LTE-FDD信号,采样速率Fs为30.72 MHz,数据位宽W为16 bit时,不对数据进行压缩,CPRI所需线比特率(Mbit·s-1)为
Fs×W×2×16/15×10/8=30.72×16×2×16/15×10/8=1 310.72.
(1)
式(1)中:2表示基带I/Q两路信号;16/15表示CPRI协议本身有控制字开销,需要占一定的传输资源;10/8表示采用8B/10B编码[13].
根据压缩方案,数据位宽W被压缩至8 bit,此时,CPRI所需线比特率(Mbit·s-1)为
Fs×W×2×16/15×10/8=30.72×8×2×16/15×10/8=655.36.
(2)
为验证压缩方案的有效性,通过Matlab软件对LTE-FDD信号进行仿真分析.取经过ADC之后的信号,采样率为122.88 MHz,每组数据固定为32个样本.为提高压缩精度,对压缩后的数据进行四舍五入处理.
原始信号和压缩解压后信号的时域波形,如图4所示.4 096个I/Q样本值的原始信号和压缩解压后信号的功率谱密度(PSD),如图5,6所示.图5,6中:f为信号频率.由图4~6可知:无论是时域波形,还是功率谱密度,压缩解压后的信号都能够较好地逼近原始信号.
图4 原始信号和压缩解压后信号的时域波形
图5 原始信号的功率谱密度 图6 压缩解压后信号的功率谱密度
文中压缩方案为有损压缩,压缩解压后的信号相对于原始信号的误差主要来自以下3个方面.1)单个样本点绝对值较大的原始数据压缩解压后数据的低位直接填补0,这会造成较大绝对误差,但相对误差较小且原始信号本身质量较好,压缩解压后不会影响接收端的正确接收,所以相对于原始数据,压缩解压后的相对误差可以忽略.2)当一组数据中既有绝对值很大的数据,也有绝对值很小的数据,这样一组数据经过文中压缩方案压缩解压后,绝对值很小的数据与原始数据的相对误差较大,这是分组压缩固有的缺点.这种压缩解压后的精度损失无法在解压端进行补偿,但此时原始信号与压缩解压后的信号的绝对误差较小,且原始信号本身携带的信息量较小,压缩解压后的相对误差不会影响接收端的正确接收.3)误差和原始信号的大小无直接关系,但最大绝对误差和压缩因子成正比关系,即压缩因子越大,最大绝对误差就越大.由于I/Q两路同时分别进行压缩,I/Q两路产生的最大绝对误差Emax与压缩因子K的关系为Emax=2K-1.
由此可知,压缩因子K的最大值为8,那么理论上最大绝对误差的最大值可达到128,但由仿真的时域波形可知,原始数据的最大绝对值不会超过4 000,故压缩因子K也不会超过6.I/Q两路原始信号与压缩解压后的信号的绝对误差,如图7所示.图7中:n为样本点数;EI为同向链路绝对误差;EQ为正交链路绝对误差.
图7 I/Q两路数据的绝对误差
误差矢量幅度EVM常被用于评估压缩解压对信号造成的压缩损伤,EVM越高,说明压缩对原始信号造成的损伤越大.EVM的计算公式为
(3)
式(3)中:source_data为原始信号;decompressed_data为压缩解压后的信号.
根据国际电信联盟3GPP规范文档要求,在QPSK,16QAM,64QAM,256QAM等4种调制方式下,端到端的EVM分别为17.5%,12.5%,8.0%,3.5%.压缩造成的EVM是不同调制方式端到端EVM的一部分[14-15].文中压缩方案实现2∶1压缩比造成的EVM为0.58%,在3GPP规范文档的要求范围之内.
在FPGA验证中,I/Q数据将分开进行压缩,由于I/Q压缩模块是相同的,故只对其中一个压缩模块进行说明.FPGA采用Intel公司的Cyclone Ⅳ系列芯片EP4CE115F29C7,输入时钟频率为122.88 MHz,与之配合的软件开发平台选用Quartus Ⅱ 13.0.首先,将每组数据与压缩因子进行时序对齐,此处时序对齐并未选择先入先出队列(FIFO)缓存数据,而是使用32个16 bit移位寄存器进行延迟,以达到对数据和压缩因子K进行时序对齐的目的;然后,根据压缩因子K,右移K位;最后,截取右移数据的低8 bit.整个压缩模块采用Verilog HDL语言,其寄存器传输级(RTL)结构图,如图8所示.
图8 压缩模块RTL结构图
Data_Compared模块完成对原始数据的分组和比较,分组实际上采用了模为32的计数器,便于对32个原始数据进行比较,得到对应的压缩因子K,计数器从0开始计数,每计数到31时就可比较出每组数据样本点的最大绝对值;然后,根据最大绝对值,得出这组数据对应的压缩因子K,Data_Buffer模块实现对原始数据的缓存,以便和压缩因子K进行时序对齐;最后,将压缩因子K和缓存后的数据同时送入Compressed模块进行压缩.
为了提高压缩精度,对压缩后的数据进行四舍五入处理,四舍五入会根据原始数据的正负,分别判断截位后的数据是否需要进位.记carry_bit为进位,原始数据为正数时,判断截去的最高位是否为1,如果为1,那么carry_bit就等于1.此时,截位后的数据应该进位,否则,carry_bit为0,截位后的数据就不会进位.和正数相反,负数不进位要加1,当原始数据为负数时,除了要判断截去的最高位,还要判断截去的其他任意位是否为1,如果截去的最高位为1,且其他位任意一位上还有1,那么carry_bit为1,否则,carry_bit等于0.考虑到进位相加可能会有溢出,所以需要将四舍五入的数据扩展1 bit,防止溢出.记compressed_round[8∶0]为四舍五入后的数据,其最高位为符号扩展位.记compressed_temp[7∶0]为四舍五入前的数据,是否需要进位可以表示为
compressed_round={compressed_temp[7],compressed_temp}+carry_bit.
(4)
式(4)中:{}表示拼接符.
当compressed_temp[7∶0]为01111111时,如果carry_bit等于1,根据式(4),compressed_round等于010000000,因为需要传输的数据为8 bit有符号数,能表示最大的正数为127,所以需要进行饱和处理.记compressed_data[7∶0]为最终的压缩数据,根据compressed_round最高两位是否相等来判断是否有溢出.如果compressed_round最高两位相等,表示没有溢出,最终压缩后的数据为四舍五入后数据的低8 bit,即
compressed_data[7∶0]=compressed_round[7∶0].
(5)
如果compressed_round最高两位不相等,表示有溢出,此时要进行饱和处理,最终压缩后的数据为
compressed_data[7∶0]={compressed_round[8],7{!compressed_round[8]}}.
(6)
解压过程相对简单,解压端先提取压缩因子K,并将K保持32个时钟周期,以保证对后续32个数据进行正确解压;然后,根据压缩因子K,将压缩后的8 bit有符号恢复为16 bit有符号数.文中压缩方案在综合布局布线后的资源消耗情况,如图9所示.由图9可知:直到第32个周期才比较出每一组数据中的最大值;第33个周期才得出压缩因子K;根据压缩因子得到压缩后的值,每一个数据都相应地向后延迟了32个周期;虽然压缩方案采用四舍五入消耗了更多的逻辑资源,但提高了压缩精度.在慢速1.2 V,85 ℃模式下,时钟频率达到182.62 MHz,满足系统时钟频率要求的122.88 MHz.
图9 压缩方案资源消耗情况
ModelSim软件的仿真效果图及仿真误差,如图10,11所示.由图10,11可知:文中压缩方案能够有效地压缩数据并恢复数据.
图10 ModelSim软件的仿真效果图
图11 ModelSim软件的仿真误差
为了降低光纤链路数据传输量,提出一种采用CPRI协议的有损I/Q数据压缩方案,并对其进行仿真.仿真结果表明:文中方案能够有效地压缩数据并恢复数据,降低光纤链路数据传输量,从而减少光纤资源的消耗量,降低开发成本.