浅谈NR的PUSCH信道接收处理过程

浅谈NR的PUSCH信道接收处理过程

PUSCH作为承载上行数据的信道,在基站侧是最为重要、也是最为复杂的存在,因此往往PUSCH信道的处理能力直接体现了基站的性能。对于从事蜂窝通讯的开发人员,若能很好的掌握该信道的处理过程,不管是求职,还是在现有的工作岗位上都能获得更多的重视和更大的优势。本文会从处理框架上梳理整个PUSCH信道的接收流程,对于初学者,希望能够通过文章,对PUSCH信道有个大概的了解。
PUSCH信道的接收从功能模块上可以划分为FFT、信道估计(LS)、测量、数据符号处理、译码、校验,我们通常将译码、校验称之为比特级处理,而除了译码和校验之外的其它模块统称为符号级处理。符号级处理的输入是AD后的时域数据,输出是解扰或者解复用后的软比特;比特级处理的输入是符号级的输出,而比特级的输出就是最终的硬比特了。

符号级处理

符号级的处理性能对于PUSCH信道的整体处理性能有着至关重要的影响,不同厂家的产品,其处理的差异也往往体现在符号级处理上。

FFT模块

FFT作为数字信号处理的基本操作,至关重要,但各个厂家对于该模块的处理却大同小异,基本上也只存在定点化方面的差异。通常在FFT模块里我们会加入WOLA滤波,以降低符号间的干扰。对于带宽是100MHz的NR接收,我们采用122.88MHz的采样率进行数字采样,按照14个符号的时域长度来算,采用4096点的FFT即可获得所有有效信息。典型的FFT模块处理流程如下:
1、WOLA滤波:之前已经提到过,此操作是可以有效的降低符号间的干扰;
2、相位补偿:因为上行的中心频点和整个带宽的中心频点有差异,所以此处需要一个固定的相位补偿;
3、时域AGC:为了保证时域上不同的符号能够在后续的处理上处于同一个幅值,避免使用相同的定标范围处理存在溢出;
4、FFT:对于FFT过程,不同厂家的动态移位方案可能会有不同,其产生的结果就是后续处理保留的精度会有差异;
5、频域AGC:和时域AGC功能类似,也是保证每个符号在后续处理中可以使用相同的定标范围;
6、WOLA时偏补偿:在之前的WOLA滤波时会带来一定的时域延迟,此处需要补偿回来。
以上即为FFT模块的所有处理单元,FFT模块的输出就可以作为后续信道估计模块的输入了。

信道估计模块

信道估计从原理上简单来说,就是用一个已知的信号去估计相同的信号在经过信道之后发生的改变。信道估计使用到的DMRS,是横幅信号,发送时是按照幅度1来设置的,接收侧也产生相同的信号,共轭乘之后就可以得到每个RE在经过发端到收端过程中发生的变化情况,用这个该变量类推数据符号经过发端到收端的变化。如果是多层多PORT,那么一般在做信道估计时就需要做DEOCC,即解层映射。
这里我们不去罗列抽象的数学公式,仅用便于理解的形象比喻说明各个处理过程。至于相关的处理公式,可以参考3GPP协议。
1、信道估计;
2、解OCC:双流双PORT下才会有此过程;
3、MMSE滤波:估计噪声方差为后续的均衡做准备。

测量模块

为了处理的准确性,一些必要测量包括TA估计、频偏估计功能都是需要具备的:
1、TA估计:TA估计可以利用导频在频域上的自相关获取相位差,然后推算出时偏,也可以直接在时域做相关,根据峰值点的偏移确定时偏;
2、频偏估计:通过两列导频的相位差就可以计算出当前信号的频偏值;
3、TA补偿:TA补偿需要在放在MMSE之前,因为MMSE过程已经对信号的相位产生了破坏;
4、频偏补偿:频偏补偿可以放在MMSE之后,输出就可以用来做时域插值了。

数据符号处理

数据符号处理包含了时域插值、均衡(IRC/MRC)、IDFT(若传输预编码使能)、解调、解扰、解复用(若有UCI ON PUSCH)。
1、时域插值:可以使用导频做内插或者外插获取对应数据符号上的信道;
2、均衡:根据当前的实际情况选用MRC均衡或者IRC均衡,需要注意的是均衡的输入包含了3部分:信道估计模块给出的噪声方差、接收的频域数据和时域插值输出,至于IRC和MRC的区别有兴趣的可以自行搜索;
3、IDFT:只有在单载波,传输预编码配置使能时才会有此处理;
4、解调:通常的解调方式有简单根据欧氏距离做的星座点解调,也有利用最大似然比做的LLR解调,功能相同,性能有差异,同时运算量上也是有较大差异的;
5、解扰
6:解复用:在UCI ON PUSCH场景下需要做UCI信息和数据的解复用,当然如果存在csi part’2,那么还会有csi part1的译码,处理流程会更为复杂。

在完成数据符号的处理之后,将会输出然比特,并做码块分割,启动接下来的比特级处理。

比特级处理

比特级处理从流程上看,较为简单,包含了解比特级交织、解比特选择、harq合并、LDPC译码、码块级联和CRC校验,但harq的维护可能会因为不同厂家的处理方式不同,复杂度也会有所不同。
1、解比特交织:可以完全按照交织图样进行逆处理即可;
2、解比特选择:解比特选择的过程可能会跟harq合并的处理过程有一定的关联,如果harq合并是按照固定长度来做,那么解比特选择会比较简单,但相应的数据处理长度会比较复杂;
3、harq合并:只有在发生重传的时候,才会进行harq合并,harq合并的数据来源有两个,一个是本地的接速率匹配输出,一个是上次传输的解速率匹配输出;
4、LDPC译码:译码模块不同厂家的处理方式不同,但从算法上来看都是一样的,只是区别于处理的平台,有些厂家是用硬件加速器来完成,有些厂家是用软件加速器来完成,一般硬件加速器的处理实时性会更高些。
5、码块级联和CRC校验:码块级联和码块分割一样,都直接在内存中完成即可,不需要任何算法参与,而CRC校验也是标准的处理方式。

以上就是所有的PUSCH信道接收处理过程,其实一个完成的PUSCH信道接收还有很多细节本文没有提到,有兴趣的可以留言交流!

  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Windows系统上使用libusb获取USB摄像头视频需要进行以下步骤: 1. 安装libusb驱动:首先需要下载并安装libusb驱动程序,可以从libusb官方网站上找到适合自己Windows系统版本的驱动程序,并按照安装指南进行安装。 2. 连接USB摄像头:将USB摄像头连接到计算机的USB接口上,并等待系统自动安装摄像头驱动程序。确保摄像头能够正常运行。 3. 建立libusb连接:使用libusb库中提供的函数,建立与USB摄像头的连接。首先需要初始化libusb库,并检测系统中的USB设备,找到对应的摄像头设备。 4. 打开摄像头设备:使用libusb提供的函数,打开USB摄像头设备。这将返回一个表示设备的句柄,用于后续操作。 5. 设置摄像头参数:使用libusb函数设置摄像头的工作参数,如分辨率、帧率等。 6. 开始视频流读取:通过调用libusb函数,开始从摄像头视频流中读取数据。可以使用循环不断读取视频帧数据,并进行处理或显示。 7. 结束视频流读取:当不再需要读取视频流数据时,调用相应的libusb函数结束视频流读取。 8. 关闭摄像头设备:通过调用libusb函数,关闭USB摄像头设备。 9. 断开libusb连接:使用libusb提供的函数,断开与USB摄像头的连接。 10. 释放libusb资源:在程序结束之前,调用libusb函数释放初始化时分配的资源,确保内存的正确释放。 通过以上步骤,我们可以使用libusb在Windows系统上获取USB摄像头的视频数据,并进行处理、显示等操作。关于具体的函数调用和参数设置,可以参考libusb的官方文档或相关的示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值