当前位置:网站首页>UCI and data multiplexing are transmitted on Pusch - determine the bit number of harqack, csi1 and csi2 (Part II)
UCI and data multiplexing are transmitted on Pusch - determine the bit number of harqack, csi1 and csi2 (Part II)
2022-07-03 09:39:00 【Communication pawn】
1. obtain harq-ack How much subcarrier space needs to be allocated
This is a typeA The calculation process of is as follows ,typeB The calculation process is similar , I'm not going to introduce you here .
harq-ack The occupied symbol must be the data symbol following the first continuous pilot symbol .






% Get the number of coded HARQ-ACK symbols and bits, TS 38.212,
% Section 6.3.2.4.1.1
[qDashACK,EuciACK] = rateMatchInfoACK(...
tbs,oack,pusch.BetaOffsetACK,alpha,numCodedBits,s1,s2,rqm,nlqm); % This is real harqbit Count to count
[qDashACKrvd,EuciACKRvd] = rateMatchInfoACK(...
tbs,oACKrvd,pusch.BetaOffsetACK,alpha,numCodedBits,s1,s2,rqm,nlqm); % This is reserved ackbit Count to count .
function [Qd,E] = rateMatchInfoACK(ulschFlag,oack,beta,alpha,sumKr,s1,s2,rqm,nlqm)
%rateMatchInfoACK Rate matching information of HARQ-ACK on PUSCH
% Symbol and bit capacity of HARQ-ACK
if oack
firstTerm = getFirstTermOfFormula(ulschFlag,oack,beta,s1,sumKr,rqm);
secondTerm = ceil(alpha*s2);
Qd = min(firstTerm,secondTerm);
E = nlqm*Qd;
else
Qd = 0;
E = 0;
end
end
function val = getFirstTermOfFormula(ulschFlag,ouci,beta,s1,sumKr,rqm)
%getFirstTermOfFormula First term of UCI rate match calculations
% Value of first term in the formula
if ulschFlag
% In the presence of UL-SCH
val = ceil((double(ouci)+getCRC(ouci))*double(beta)*s1/sumKr);%ceil Rounding up
else
% In the absence of UL-SCH
val = ceil((double(ouci)+getCRC(ouci))*double(beta)/rqm);
end
end
function L = getCRC(oUCI)
% CRC bits for UCI information for input length oUCI, according to TS
% 38.212, Section 6.3.1.2.1
if oUCI > 19
L = 11;
elseif oUCI > 11
L = 6;
else
L = 0;
end
end
2. obtain csi -port1 How much subcarrier space needs to be allocated
If harq-ack Less than 2 , according to 2 Retain , Greater than 2 If so, just keep it true .csi1 It's just an introduction typeA The situation of ,typeB The situation is similar , No introduction .



This is a csi And data are not reused , And even if not csi2 The situation of :




% Get the number of coded CSI part 1 symbols and bits, TS 38.212,
% Section 6.3.2.4.1.2
if ocsi1 % If there is CSI1 Then calculate the rate matching according to the reserved , without CSI1 If so, follow the real harq ack Count it .
if oACKrvd
qDashACKCSI1 = qDashACKrvd;
else
qDashACKCSI1 = qDashACK;
end
firstTerm = getFirstTermOfFormula(...
tbs,ocsi1,pusch.BetaOffsetCSI1,s1,numCodedBits,rqm);
if tbs
qDashCSI1 = min(firstTerm,ceil(alpha*s1)-qDashACKCSI1);
else
if ocsi2
qDashCSI1 = min(firstTerm,s1-qDashACKCSI1);
else
qDashCSI1 = s1-qDashACKCSI1;
end
end
EuciCSI = nlqm*qDashCSI1;
else
qDashCSI1 = 0;
EuciCSI = 0;
end
% Get the bit capacity of UL-SCH Get the space left for the data
if tbs
gULSCH = G - EuciCSI - EuciCSI2 - EuciACK*(oACKrvd==0);
else
gULSCH = 0;
end
3. obtain csi -port2 How much subcarrier space needs to be allocated
When HARQ-ACK Less than 2bit Count ,csi2 You can occupy his space first 







% Get the number of coded CSI part 2 symbols and bits, TS 38.212,
% Section 6.3.2.4.1.3
if ocsi2
qDashACKCSI2 = qDashACK;
if oack <= 2
qDashACKCSI2 = 0;
end
if tbs
firstTerm = getFirstTermOfFormula(...
tbs,ocsi2,pusch.BetaOffsetCSI2,s1,numCodedBits,rqm);
qDashCSI2 = min(firstTerm,ceil(alpha*s1)-qDashACKCSI2-qDashCSI1);
else
qDashCSI2 = s1-qDashACKCSI2-qDashCSI1;
end
EuciCSI2 = nlqm*qDashCSI2;
else
qDashCSI2 =0;
EuciCSI2 = 0;
end
边栏推荐
- numpy. Reshape() and resize() functions
- Install database -linux-5.7
- Flink CDC practice (including practical steps and screenshots)
- Hudi 数据管理和存储概述
- Find all possible recipes from given supplies
- Nodemcu-esp8266 development (vscode+platformio+arduino framework): Part 1 -- establishment of engineering template -template
- Epollet lessons
- Intelligent home design and development
- Using Hudi in idea
- LeetCode每日一题(985. Sum of Even Numbers After Queries)
猜你喜欢

Spark overview

文件系统中的目录与切换操作

There is no open in default browser option in the right click of the vscade editor

一款开源的Markdown转富文本编辑器的实现原理剖析
![[CSDN]C1訓練題解析_第三部分_JS基礎](/img/b2/68d53ad09688f7fc922ac65e104f15.png)
[CSDN]C1訓練題解析_第三部分_JS基礎

Directory and switching operation in file system
![[CSDN] C1 training problem analysis_ Part III_ JS Foundation](/img/b2/68d53ad09688f7fc922ac65e104f15.png)
[CSDN] C1 training problem analysis_ Part III_ JS Foundation

Analysis of the implementation principle of an open source markdown to rich text editor

Global KYC service provider advance AI in vivo detection products have passed ISO international safety certification, and the product capability has reached a new level

Please tell me how to set vscode
随机推荐
Please tell me how to set vscode
Process communication - semaphore
LeetCode每日一题(516. Longest Palindromic Subsequence)
Run flash demo on ECS
ERROR: certificate common name “*.” doesn’t match requested ho
Global KYC service provider advance AI in vivo detection products have passed ISO international safety certification, and the product capability has reached a new level
Using Hudi in idea
LeetCode每日一题(2090. K Radius Subarray Averages)
LeetCode每日一题(1162. As Far from Land as Possible)
Powerdesign reverse wizard such as SQL and generates name and comment
Nodemcu-esp8266 development board to build Arduino ide development environment
Leetcode daily question (2090. K radius subarray averages)
Word segmentation in full-text indexing
QT qstring:: number apply base conversion
Spark overview
Overview of image restoration methods -- paper notes
Flask+supervisor installation realizes background process resident
制作jetson nano最基本的根文件系统、服务器挂载NFS文件系统
LeetCode每日一题(2109. Adding Spaces to a String)
Integrated use of interlij idea and sonarqube