ORAN压缩之块浮点压缩

下图为压缩数据的表示方式。对于每个物理资源块(PRB),同相(I,实部)和正交(Q,虚部)采样数据被转换为浮点格式。这些采样数据被表示为一个有符号的尾数和一个共享指数,如下图所示。压缩过程的输入数据为12个子载波,共包含24个未压缩的I和Q采样数据。然后,I和Q分别被压缩为一个有符号、固定位宽的整型尾数和4位无符号整型指数。

此外,每个PRB压缩后输出的数据都应该包含指数。下图为块浮点压缩的处理过程。

注:尾数的位宽在相关U平面或C平面消息的compHdr字段中指定(范围为1-16 bit位宽)。O-RU对于特定尾数位宽的支持,需根据具体情况逐一确定。

块浮点压缩算法

以下伪代码展示了压缩算法的一个实现示例。

输入:

  • fPRB:原始物理资源块(PRB),包括12个RE,及其实现的原有长度,例如,24 bit。UL应使用来自FFT和波束赋形的尽可能精确的值。
  • iqWidth:压缩后的字长,包括符号位。

输出:

  • cPRB:压缩后的PRB,包括12个RE,其字长为iqWidth。注意,对于每个RE,I和Q的位宽都是iqWidth。
  • exponent:压缩后PRB的共用指数。

// 查找12个I和Q中的最大值和最小值

maxV = max(Re(fPRB), Im(fPRB))

minV = min(Re(fPRB), Im(fPRB))

// 计算最大绝对值,负数的最高有效位可以多一位

maxValue = max(maxV, |minV|-1)

// 计算指数,即maxValue的最高有效位

rawExp = floor(![log_{2}](https://latex.csdn.net/eq)(maxValue) +1)

// 计算偏移值并将其限制为正数

exponent = max(rawExp - iqWidth + 1, 0)

// 确定右移值

scaler =

// 计算每个RE中I和Q压缩后的值

For iRe = 1:length(fPRB)

// 缩放和取整,乘法可以通过位移,取整可以通过四舍五入

Re(cPRB(iRE)) = Quantize (scaler × Re(fPRB(iRE)))

Im(cPRB(iRE)) = Quantize (scaler × Im(fPRB(iRE)))

End

块浮点解压缩算法

以下伪代码展示了解压缩算法的一个实现示例。

输入:

  • cPRB:压缩后的PRB,包括12个RE,其字长为压缩时使用的iqWidth。
  • exponent:压缩后PRB的共用指数。

输出:

  • fPRB:解压缩后的物理资源块(PRB),包括12个RE,其字长为用于后续处理的原有长度,例如,24 bit或32 bit。

// 确定缩放值

scaler =

// 计算每个RE中I和Q解压缩后的值

For iRe = 1:length(cPRB)

// 缩放,可以通过位移操作代替乘法操作

Re(fPRB(iRE)) = scaler × Re(cPRB(iRE))

Im(fPRB(iRE)) = scaler × Im(cPRB(iRE))

End

参考 《O-RAN.WG4.TS.CUS.0-R004-v19.00.pdf》

相关推荐
微软技术分享10 小时前
面向二进制安全的大模型多智能体框架
网络·安全·web安全
巨擎网络14 小时前
为什么打开 App,消息才一股脑涌进来?
网络协议·app
搁浅小泽15 小时前
新能源汽车多合一压缩机控制器CAN网络测试规范
网络·汽车
xixiaoyunya17 小时前
虚拟机备份怎么做:镜像级与文件级搭配的完整实操方案
linux·运维·网络
anew___17 小时前
《从零手写操作系统 (30):环境变量与进程上下文——export/unset与继承语义》
java·开发语言·网络·jvm·算法
谢亮_vipxieliang18 小时前
Go GMP调度模型——从原理到实战的完整指南
开发语言·网络·golang
wdfk_prog19 小时前
LWIP教程 03:从 `low_level_input()` 到 `pbuf_free()`——`pbuf` 的数据视图、Chain 与引用计数
运维·网络·笔记·学习
福兮说19 小时前
IP 地址转整数的七个坑:192.168.1.1 算出负数、127.1 也是合法地址、存进 INT 直接溢出
javascript·网络·网络协议·tcp/ip·mysql·golang
xiaoye-duck19 小时前
《Linux 网络编程》深入理解 epoll(上):从接口到底层内核工作机制剖析
linux·网络
anew___19 小时前
《从零手写操作系统 (29):管道与重定向进阶——命名管道、Here Document与Shell语法扩展》
java·开发语言·前端·javascript·网络