基于WCDMA速率适配算法的FPGA设计
时间:2023-09-29 10:36来源: 作者: 点击: 次随着因特网爆炸性的增长以及各种无线业务需求的增加,传统的无线通信网已经越来越无法适应人们的需要。因此,以大容量、高数据率和承载多媒体业务为目的的第三代移动通信系统(IMT-2000)应运而生。码分多址(CDMA)由于其良好的抗噪性、保密性和简单性等优点而成为第三代移动通信的主流。主要方案包括欧洲标准,美国标准CDMA-2000和中国标准TD-SCDMA。
和传统的CDMA系统相比,第三代移动通信的最大特点在于可支持具有不同QoS的变的多种业务,这便要求其具有将各种无线媒体业务复接在一起传输的能力。为了达到这一目标,采用了一种比较完善的业务复接方案,各种业务须经过一套复杂的编码复接流程才能进行扩频调制,占用尽可能少的码道以恒定的功率发送。这样就最大限度地减少了码道间串扰,降低了对功放线性程度的要求。图1所示的是下行链路编 码复接方案流程图。而是业务复用方案的核心,如何有效的实现方案,是业务复用方案的关键环节。
图1 下行链路编码复接方案
算法描述
一条传输信道上不同的传输时间间隔中的比特数有可能不一样,但是上下行链路都对传输的比特率有一定的要求:下行链路中如果比特数低于最小值的就会被中断;上行链路中各传输时间间隔的比特数不同,但需要保证第二次交织后的总比特率等于所分配的专用物理信道的总比特率。因此需要重复或者凿去传输信道上的一些比特。速率就是指在传输信道上的数据比特被凿孔(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。
图2 下行链路Turbo编码比特凿孔时TrCH的速率适配
另外,协议给出的确定参数的算法依编码方式及链路的不同而不同。也就是说,Turbo编码与卷积编码、下行链路与上行链路在确定适配参数的算法上有区别。具体的确定算法可以参考3G相应的协议。
和传统的CDMA系统相比,第三代移动通信的最大特点在于可支持具有不同QoS的变的多种业务,这便要求其具有将各种无线媒体业务复接在一起传输的能力。为了达到这一目标,采用了一种比较完善的业务复接方案,各种业务须经过一套复杂的编码复接流程才能进行扩频调制,占用尽可能少的码道以恒定的功率发送。这样就最大限度地减少了码道间串扰,降低了对功放线性程度的要求。图1所示的是下行链路编 码复接方案流程图。而是业务复用方案的核心,如何有效的实现方案,是业务复用方案的关键环节。
图1 下行链路编码复接方案
算法描述
一条传输信道上不同的传输时间间隔中的比特数有可能不一样,但是上下行链路都对传输的比特率有一定的要求:下行链路中如果比特数低于最小值的就会被中断;上行链路中各传输时间间隔的比特数不同,但需要保证第二次交织后的总比特率等于所分配的专用物理信道的总比特率。因此需要重复或者凿去传输信道上的一些比特。速率就是指在传输信道上的数据比特被凿孔(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。
图2 下行链路Turbo编码比特凿孔时TrCH的速率适配
图3 下行未编码和卷积编码以及重复的Turbo编码的TrCH的速率匹配
另外,协议给出的确定参数的算法依编码方式及链路的不同而不同。也就是说,Turbo编码与卷积编码、下行链路与上行链路在确定适配参数的算法上有区别。具体的确定算法可以参考3G相应的协议。