大家好,欢迎来到IT知识分享网。
PDSCH DMRS(解调参考信号)简述
- 这是用来做什么的?
这是一个专门用于解码PDSCH的下行无线信道估计的物理信号。- 为什么需要PDSCH DMRS?
在LTE中,始终有一个用于下行的参考信号,称为CRS(小区参考信号),但在NR中没有这样始终存在的参考信号。相反,NR使用为每个物理信道特定的参考信号。- 每个PDSCH都必须至少有一个OFDM符号的DMRS。
- 我们可以配置额外的PDSCH DMRS,除了强制要求的DMRS之外,还可以选择添加一个、两个或三个额外的符号。
- 通常情况下,用户设备(UE)可以通过增加更多的额外DMRS来更可靠地解码PDSCH(即降低误块率BLER),但最大吞吐量会下降,因为DMRS占用了更多的资源单元,导致用于用户数据的资源单元减少。
- 第一个DMRS的OFDM符号可以是2(第三个符号)或3(第四个符号),并由MIB/PBCH进行配置。
基本问题
DMRS的配置有时会令人困惑,除非你有一个大致的了解。如果你经常回顾以下问题,当阅读本页的详细内容时会有所帮助。
资源分配中映射类型A和B有什么区别?
- 类型A只能从符号2或3开始,意味着从符号4或更高开始的SLIV不能使用这种类型的DMRS。
- 类型B总是从调度的SLIV的第一个符号开始。
资源分配中配置类型1和类型2有什么区别?
- 在配置类型1中,频域中的最小资源单元组是1个RE。
- 在配置类型2中,频域中的最小资源单元组是连续的两个RE。请参见资源单元映射中的图片。
天线端口号对DMRS资源单元位置有什么影响?
- 随着天线端口号的变化,DMRS位置在频域中的位置也会改变。详细信息请查阅此说明。
MIB ::= SEQUENCE {
... dmrs-TypeA-Position ENUMERATED {
pos2, pos3}, ... } PDSCH-TimeDomainResourceAllocation ::= SEQUENCE {
k0 INTEGER (1..32), mappingType ENUMERATED {
typeA, typeB}, startSymbolAndLength INTEGER (1..127) } PDSCH-TimeDomainResourceAllocation-r16 ::= SEQUENCE {
k0-r16 INTEGER (0..32) OPTIONAL, -- Need S mappingType-r16 ENUMERATED {
typeA, typeB}, startSymbolAndLength-r16 INTEGER (0..127), repetitionNumber-r16 ENUMERATED {
n2, n3, n4, n5, n6, n7, n8, n16} OPTIONAL, -- Cond Formats1-0and1-1 ... }
- k0:对应于 L1 参数 ‘K0’。当该字段缺失时,UE 应用值 0。
- mappingType:PDSCH 映射类型。对应于 L1 参数 ‘Mapping-type’(参见 SLIV 页面)。
- startSymbolAndLength:在 RAN1 规范中的表格/方程中的索引,捕获符号起始和长度的有效组合(联合编码)。对应于 L1 参数 ‘Index-start-len’(参见 SLIV 页面)。
PDSCH-Config ::= SEQUENCE {
... dmrs-DownlinkForPDSCH-MappingTypeA SetupRelease {
DMRS-DownlinkConfig }, dmrs-DownlinkForPDSCH-MappingTypeB SetupRelease {
DMRS-DownlinkConfig }, ... } DMRS-DownlinkConfig ::= SEQUENCE {
dmrs-Type ENUMERATED {
type2 } OPTIONAL, -- Need R dmrs-AdditionalPosition ENUMERATED {
pos0, pos1, pos3 } OPTIONAL, -- Need R dmrs-group1 BIT STRING (SIZE (12)) OPTIONAL, -- Need R dmrs-group2 BIT STRING (SIZE (12)) OPTIONAL, -- Need R maxLength ENUMERATED {
len2 } OPTIONAL, -- Need R scramblingID0 INTEGER (0..65535) OPTIONAL, -- Need S scramblingID1 INTEGER (0..65535) OPTIONAL, -- Need S phaseTrackingRS SetupRelease {
PTRS-DownlinkConfig } OPTIONAL, -- Need M ... } PTRS-DownlinkConfig ::= SEQUENCE {
frequencyDensity SEQUENCE (SIZE (2)) OF INTEGER (1..276) OPTIONAL, -- Need S timeDensity SEQUENCE (SIZE (3)) OF INTEGER (0..29) OPTIONAL, -- Need S epre-Ratio INTEGER (0..3) OPTIONAL, -- Need S resourceElementOffset ENUMERATED {
offset01, offset10, offset11 } OPTIONAL, -- Need S ... }
- dmrs-Type:用于下行链路(DL)的 DMRS 类型选择。如果该字段缺失,UE 使用 DMRS 类型 1。
- dmrs-AdditionalPosition:在下行链路(DL)中额外 DM-RS 的位置。四种值分别表示 1+0, 1+1, 1+1+1, 1+1+1+1 的非相邻 OFDM 符号位置。如果该字段缺失,UE 使用
pos2
值。 - dmrs-group1:QCL(准共线)分组的 DM-RS,第 1 组。
- dmrs-group2:QCL(准共线)分组的 DM-RS,第 2 组。
- maxLength:DL 前置加载 DMRS 的 OFDM 符号的最大数量。
len1
对应值 1,len2
对应值 2。如果该字段缺失,UE 使用len1
值。对应于 L1 参数DL-DMRS-max-len
。 - scramblingID0:下行链路 DMRS 扰频初始化。对应于 L1 参数
n_SCID 0
。当该字段缺失时,UE 使用该小区配置的物理小区 ID(physCellID
)。 - scramblingID1:下行链路 DMRS 扰频初始化。对应于 L1 参数
n_SCID 0
。当该字段缺失时,UE 使用该小区配置的物理小区 ID(physCellID
)。 - phaseTrackingRS:配置下行链路 PTRS。如果该字段缺失或已释放,UE 假定下行链路 PTRS 不存在。
仅通过查看规范,你几乎不可能完全理解这些参数的实际含义,除非你是设计该算法的人*或创建了自己的程序来实现该规范并将其绘制为图形。我并不是设计这个算法的人,也没有自己的程序来实现它。因此,对于我来说,很难对这些参数和算法获得直观的理解。幸运的是,我有机会使用 Matlab 5G 库进行尝试。下面是我使用 Matlab 创建的一些图形示例。我在这里发布了 Matlab 代码和更多示例。该示例中使用的子载波间隔为 30 KHz,为了简单起见,我只为 PDSCH 分配了一个 RB。
例子
浏览这些示例,尝试找出一些直观的模式。如果你不容易看到任何模式,请先参考 Resource Element Mapping 部分,然后再返回这些示例。
以下是我为本页面中的所有示例编写的 Matlab 5G 工具箱代码。
% 配置载波,设置当前时隙为0 carrier = nrCarrierConfig('NSlot',0); % 配置PDSCH(物理下行共享信道) pdsch = nrPDSCHConfig; pdsch.NumLayers = 1; % 设置传输层数为1 pdsch.PRBSet = 0:50; % 设置物理资源块(PRB)集合,0到50个PRB pdsch.MappingType = 'A'; % 映射类型为A类型 pdsch.SymbolAllocation = [0 14]; % 定义PDSCH在OFDM符号中的起始位置和符号长度 % 配置DM-RS(解调参考信号) dmrs = nrPDSCHDMRSConfig; dmrs.DMRSConfigurationType = 1; % DMRS配置类型为1 dmrs.DMRSLength = 1; % DMRS的长度为1符号 dmrs.DMRSAdditionalPosition = 0; % 无额外的DMRS符号 dmrs.DMRSTypeAPosition = 2; % 设置DMRS的Type A起始位置为第2个符号 % 根据PDSCH的层数设置DMRS的端口 if pdsch.NumLayers == 1 dmrs.DMRSPortSet = [0]; % 单层时使用端口0 elseif pdsch.NumLayers == 2 dmrs.DMRSPortSet = [0 1]; % 两层时使用端口0和1 elseif pdsch.NumLayers == 3 dmrs.DMRSPortSet = [0 1 2]; % 三层时使用端口0、1和2 elseif pdsch.NumLayers == 4 dmrs.DMRSPortSet = [0 1 2 3]; % 四层时使用端口0、1、2和3 end dmrs.NumCDMGroupsWithoutData = 1; % 设置无数据的CDM组数为1 dmrs.NIDNSCID = 10; % 配置DMRS的NID为10 dmrs.NSCID = 0; % 设置NSCID为0 % 将DMRS配置赋值给PDSCH pdsch.DMRS = dmrs; % 生成DMRS符号 sym_dmrs = nrPDSCHDMRS(carrier,pdsch,'OutputDataType','single'); % 生成DMRS的索引 ind_dmrs = nrPDSCHDMRSIndices(carrier,pdsch,'IndexBase','0based','IndexOrientation','carrier'); % 生成PDSCH的索引 ind_pdsch = nrPDSCHIndices(carrier,pdsch,'IndexBase','0based','IndexOrientation','carrier'); % 初始化PDSCH网格,大小为[子载波数量 x 时隙符号数 x 层数] grid = complex(zeros([carrier.NSizeGrid*12 carrier.SymbolsPerSlot pdsch.NumLayers])); % 将DMRS符号填入网格 grid(ind_dmrs+1) = sym_dmrs; % 将PDSCH数据填入网格,这里用值0.5表示PDSCH数据 grid(ind_pdsch+1) = 0.5; % 绘制网格 hFig = figure(2); set(hFig, 'Position', [100 100 900 200]); % 设置绘图窗口大小 set(gcf,'color','w'); % 设置背景颜色为白色 % 为每个传输层绘制子图 for i = 1:pdsch.NumLayers subplot(1,4,i); % 创建1行4列的子图,当前为第i个子图 hold on; % 绘制当前层的网格 imagesc(abs(grid(:,:,i))); % 设置子图标题,显示端口号 title(strcat('Port 100',num2str(dmrs.DMRSPortSet(i)))); % 添加白色的竖线分割符号 for i = 2:14 line([i-0.5 i-0.5],[0 273*12],'Color','white'); end % 添加白色的横线分割子载波 for j = 1:12 line([0 15],[j+0.5 j+0.5],'Color','white'); end hold off; axis xy; % 设定Y轴为正方向 box on; % 显示边框 xlabel('OFDM Symbols'); % X轴标签 ylabel('Subcarriers'); % Y轴标签 xlim([0.5 14.5]); % X轴范围 ylim([0.5 12.5]); % Y轴范围 % 设置X轴的刻度和标签 set(gca,'xtick',[0:14]); set(gca,'xticklabel',{
'','0','1','2','3','4','5','6','7','8','9','10','11','12','13'}); % 设置Y轴的刻度和标签 set(gca,'ytick',[0:12]); set(gca,'yticklabel',{
'','0','1','2','3','4','5','6','7','8','9','10','11'}); end
1. 层数和无数据的DMRS CDM组数量
pdsch.NumLayers = 1; pdsch.MappingType = 'A'; pdsch.SymbolAllocation = [0 14]; % [startSymbol Length] dmrs.DMRSConfigurationType = 1; dmrs.DMRSLength = 1; dmrs.DMRSAdditionalPosition = 0; dmrs.DMRSTypeAPosition = 2; dmrs.NumCDMGroupsWithoutData = 1; dmrs.NIDNSCID = 10; dmrs.NSCID = 0;
pdsch.NumLayers = 1;
- 设置PDSCH的传输层数为1,即单层传输,只有一个数据流。
pdsch.MappingType = 'A';
- 设置PDSCH映射类型为
A
,通常表示从OFDM符号从符号2或3开始映射。
- 设置PDSCH映射类型为
pdsch.SymbolAllocation = [0 14]; % [startSymbol Length]
- PDSCH符号分配从符号0开始,长度为14个OFDM符号,覆盖整个时隙。
dmrs.DMRSConfigurationType = 1;
- 选择DMRS的配置类型1,每个时域符号中只分配一个资源单元(RE)。
dmrs.DMRSLength = 1;
- DMRS符号长度为1个OFDM符号。
dmrs.DMRSAdditionalPosition = 0;
- 没有额外的DMRS符号位置分配。
dmrs.DMRSTypeAPosition = 2;
- DMRS符号从第2个OFDM符号(索引为2)开始分配。
dmrs.NumCDMGroupsWithoutData = 1;
- 使用1个没有数据的CDM(码分复用)组。
dmrs.NIDNSCID = 10;
- 伪随机序列生成的ID为10,用于生成唯一的DMRS序列。
dmrs.NSCID = 0;
- 选择扰码序列版本0,确保生成特定的DMRS序列。
pdsch.NumLayers = 2; pdsch.MappingType = 'A'; pdsch.SymbolAllocation = [0 14]; % [startSymbol Length] dmrs.DMRSConfigurationType = 1; dmrs.DMRSLength = 1; dmrs.DMRSAdditionalPosition = 0; dmrs.DMRSTypeAPosition = 2; dmrs.NumCDMGroupsWithoutData = 1; dmrs.NIDNSCID = 10; dmrs.NSCID = 0;
pdsch.NumLayers = 2;
- 设置PDSCH的传输层数为2,即双层传输,有2个数据流。
pdsch.NumLayers = 3; pdsch.MappingType = 'A'; pdsch.SymbolAllocation = [0 14]; % [startSymbol Length] dmrs.DMRSConfigurationType = 1; dmrs.DMRSLength = 1; dmrs.DMRSAdditionalPosition = 0; dmrs.DMRSTypeAPosition = 2; dmrs.NumCDMGroupsWithoutData = 1; dmrs.NIDNSCID = 10; dmrs.NSCID = 0;
pdsch.NumLayers = 3;
- 设置PDSCH的传输层数为3,即三层传输,有3个数据流。
资源元素映射
PDSCH DMRS 的资源映射按以下公式进行。为简单起见,我们只考虑资源元素的位置(即,仅考虑 k k k 和 l l l)。 k k k 代表频域位置, l l l 代表时域位置。
考虑到这一点,首先你可以注意到的是:
- 配置类型改变了频域中的位置模式
- 配置类型 1:DMRS 在一个 OFDM 符号/一个 RB 中分散为 3 对(6 个资源元素:RE),每对的间隔为 4 RE (4n)。每对中的 2 个 RE 在频域中间隔 2 RE (2k’)。简而言之,6 个 DMRS 符号的 RE 以每隔一个 RE 的方式分布在频域中。这支持 8 个 DMRS 端口的双符号 DMRS(端口 1000~1007),以及单符号 DMRS 的 4 个 DMRS 端口(端口 1000~1003)。更多详细信息请参阅 Table 7.4.1.1.2-1 和 Table 7.4.1.1.2-5。
- 配置类型 2:DMRS 在一个 OFDM 符号/一个 RB 中分散为 2 对(4 个资源元素:RE),每对的间隔为 6 RE (6n)。每对中的 2 个 RE 以 1 RE(k’) 的间隔排列,意味着每对中的 2 个 RE 是相邻的。这支持 12 个 DMRS 端口的双符号 DMRS(端口 1000~1011),以及单符号 DMRS 的 8 个 DMRS 端口(端口 1000~1007)。更多详细信息请参阅 Table 7.4.1.1.2-1 和 Table 7.4.1.1.2-5。
- PDSCH 映射类型改变了时域中的位置模式
- PDSCH 映射类型 A:在此类型中,无论 PDSCH 的起始符号和长度如何,DMRS 符号只能从符号 2 或符号 3 开始。这意味着当 PDSCH 起始符号大于 3 时,无法使用该配置。此类型用于基于时隙的调度,相关信息参见 PDSCH SLIV 表格 中的
Type A
行。 - PDSCH 映射类型 B:在此类型中,无论 PDSCH 起始符号是什么,DMRS 符号可以从第一个 PDSCH 符号开始。此类型用于小时隙(mini-slot)调度,相关信息参见 PDSCH SLIV 表格 中的
Type B
行。
- PDSCH 映射类型 A:在此类型中,无论 PDSCH 的起始符号和长度如何,DMRS 符号只能从符号 2 或符号 3 开始。这意味着当 PDSCH 起始符号大于 3 时,无法使用该配置。此类型用于基于时隙的调度,相关信息参见 PDSCH SLIV 表格 中的
另一个你会注意到的点是:
- 频域位置 k k k 是通过下面显示的公式(方程)来确定的。
- 时域位置 l l l 是通过预定义的表格和预定义的值来确定的。
用户设备假设
用户设备应假设PDSCH DM-RS根据配置类型1或配置类型2映射到物理资源,如高层参数dmrs-Type
所给定。
用户设备应假设序列 r ( m ) r(m) r(m) 被因子 β P D S C H D M R S \beta^{DMRS}_{PDSCH} βPDSCHDMRS 缩放,以符合在文献[6, TS 38.214]中指定的传输功率,并根据下式映射到资源单元 ( k , l ) p , μ (k, l)_{p,\mu} (k,l)p,μ:
a k , l ( p , μ ) = β P D S C H D M R S w f ( k ′ ) w t ( l ′ ) r ( 2 n + k ′ ) a^{(p,\mu)}_{k,l} = \beta^{DMRS}_{PDSCH} w_f(k’) w_t(l’) r(2n+k’) ak,l(p,μ)=βPDSCHDMRSwf(k′)wt(l′)r(2n+k′)
其中:
- 配置类型1:
k = 4 n + 2 k ′ + Δ k = 4n + 2k’ + \Delta k=4n+2k′+Δ - 配置类型2:
k = 6 n + k ′ + Δ k = 6n + k’ + \Delta k=6n+k′+Δ - k ′ = 0 , 1 k’ = 0, 1 k′=0,1
- l = l ˉ + l ′ l = \bar{l} + l’ l=lˉ+l′
- n = 0 , 1 , … n = 0, 1, \dots n=0,1,…
其中, w f ( k ′ ) w_f(k’) wf(k′)、 w t ( l ′ ) w_t(l’) wt(l′) 和 Δ \Delta Δ 由表格7.4.1.1.2-1和7.4.1.1.2-2给出,并满足以下条件:
- 资源单元位于为PDSCH传输分配的公共资源块内。
k k k 的参考点是:
- 如果对应的PDCCH与CORESET 0和Type0-PDCCH公共搜索空间相关联,并且目标是SI-RNTI,则参考点 k k k 为CORESET 0中编号最小的资源块的子载波0。
- 否则,参考点 k k k 为公共资源块0中的子载波0。
l l l 的参考点和第一个DM-RS符号的位置 l 0 l_0 l0 取决于映射类型:
- 对于PDSCH映射类型A:
- l l l 相对于时隙的起始位置定义。
- 如果高层参数
dmrs-TypeA-Position
等于’pos3’,则 l 0 = 3 l_0 = 3 l0=3,否则 l 0 = 2 l_0 = 2 l0=2。
- 对于PDSCH映射类型B:
- l l l 相对于计划的PDSCH资源的起始位置定义。
- l 0 = 0 l_0 = 0 l0=0
DM-RS符号的位置由 l ˉ \bar{l} lˉ 和持续时间 l d l_d ld 决定,其中:
- 对于PDSCH映射类型A, l d l_d ld 是时隙的第一个OFDM符号与计划的PDSCH资源的最后一个OFDM符号之间的持续时间。
- 对于PDSCH映射类型B, l d l_d ld 是计划的PDSCH资源的持续时间。
并参考 表格7.4.1.1.2-3 和 7.4.1.1.2-4。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/144896.html