PDSCH DMRS(解调参考信号)简述

文章目录

  • PDSCH DMRS(解调参考信号)简述
    • 基本问题
    • 例子
      • 1. 层数和无数据的DMRS CDM组数量
      • 资源元素映射
  • 用户设备假设

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)集合,050个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]; % 两层时使用端口01
elseif pdsch.NumLayers == 3
   dmrs.DMRSPortSet = [0 1 2]; % 三层时使用端口012
elseif pdsch.NumLayers == 4
   dmrs.DMRSPortSet = [0 1 2 3]; % 四层时使用端口0123
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); % 创建14列的子图,当前为第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.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 行。

另一个你会注意到的点是:

  • 频域位置 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-17.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-37.4.1.1.2-4

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/890125.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Java学习笔记】多线程

当我们在饭店聚餐时,多人同时吃一道菜的时候很容易发生争抢。例如,上了一道好菜,两个人同时夹这道菜,一人刚伸出筷子,结果伸到的时候菜已经被夹走了。为了避免这种现象,必须等一人 夹完一口后,另…

elementui中el-radio-group内容过长溢出问题

鼠标悬停显示文字 <template> <el-radio-group class"fixed-width-radio-group" v-model"continueruleForm.category" size"mini" fill"#2f54eb" color"#2f54eb" > <el-radio-button label"pr…

Django学习笔记之Django基础学习

Django笔记 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录…

ZYNQ使用XGPIO驱动外设模块(前半部分)

目录 目录 一、新建BD文档&#xff0c;添加ZYNQ处理器 1.BD文档: 2.在Vivado中&#xff0c;BD文件的生成过程通常包括以下步骤&#xff1a; 1)什么是Tcl Console: 3.PL部分是FPGA可编程逻辑部分&#xff0c;它提供了丰富的IO资源&#xff0c;可以用于实现各种硬件接口和功…

【C语言复习】分支和循环

【C语言复习】分支和循环 1. if语句1.1 if1.2 else1.3分支中包含多条语句1.4嵌套if1.5悬空else问题 2.关系操作符3. 条件操作符4.逻辑操作符&#xff1a;&& 、|| 、!4.1 逻辑取反运算符4.2 与运算符4.3或运算符4.4 练习&#xff1a;闰年的判断4.5短路 5.switch 语句5.1…

高性能计算平台(HPC)如何选型

选型高性能计算平台&#xff08;HPC&#xff09;非常复杂&#xff0c;需要考针对行业的痛点等多个因素进行考虑&#xff0c;来确保平台系统能满足特定行业和应用的需求。下面为大家列举了几个方面&#xff0c;大家可以参考。 1.计算需求 首先需要了解你需要处理的数据类型、计算…

持续领先,从IDC报告看联想企业级全栈能力如何加速智能化转型

作者 | 曾响铃 文 | 响铃说 如果问智能化转型浪潮中&#xff0c;哪个行业受到的关注最多&#xff1f;毫无疑问&#xff0c;与产业升级、宏观导向密切相关的制造业一定会是答案之一&#xff0c;智能制造已经成为普遍共识。 这其中&#xff0c;面向制造业的智能化基础设施承担…

矿井人员数据集,用于目标检测,深度学习,采用txt打标签,即yolo格式,也有原文件可以自己转换。总共3500张图片的数据量,划分给训练集2446张,

矿井人员数据集&#xff0c;用于目标检测&#xff0c;深度学习&#xff0c;采用txt打标签&#xff0c;即yolo格式&#xff0c;也有原文件可以自己转换。总共3500张图片的数据量&#xff0c;划分给训练集2446张&#xff1a; ### 矿井人员数据集用于目标检测的详细说明 #### 1. …

JAVA数组基础

数组&#xff1a;相同类型数据的有序集合 1、数组&#xff1a;是引用类型的数据 2、new&#xff1a;关键字&#xff0c;在堆内开辟空间 成员变量&#xff08;堆内存&#xff09;&#xff1a;有默认值 局部变量&#xff08;栈内存&#xff09;&#xff1a;没有默认值&#xff0c…

读书笔记 - 虚拟化技术 - 0 QEMU/KVM概述与历史

《QEMU/KVM源码解析与应用》 - 王强 概述 虚拟化简介 虚拟化思想 David Wheeler&#xff1a;计算机科学中任何问题都可以通过增加一个中间层来解决。 虚拟化思想存在与计算机科学的各个领域。 主要思想&#xff1a;通过分层将底层的复杂&#xff0c;难用的资源虚拟抽象为简…

【Spring Boot React】Spring Boot和React教程 完整版

【Spring Boot & React】Spring Boot和React教程 在B站找到一个不错的SpringBoot和React的学习视频&#xff0c;作者是amigoscode 【Spring Boot & React】Spring Boot和React教程 2023年更新版【Spring Boot React】价值79.9美元&#xff0c;全栈开发&#xff0c;搭…

Ubuntu QT 交叉编译环境搭建

文章目录 下载安装qtCreatornot a valid identifier 的错误 安装g下载并安装交叉编译器下载交叉编译器安装交叉编译器 下载编译 ARM 的Qt平台源码配置arm的QT平台 下载安装qtCreator 去QT下载官网下载对应需要的QT软件。 这里下载5.12.96版本的 改变安装包权限&#xff0c;…

【问题实战】Jmeter中jtl格式转换图片后如何分开展示各个性能指标?

【问题实战】Jmeter中jtl格式转换图片后如何分开展示各个性能指标&#xff1f; 遇到的问题解决方法查看修改效果 遇到的问题 JMeter测试计划中只设置了一个性能监控器jpgc - PerfMon Metrics Collector&#xff1b;在这个监控器中设置几个性能监控指标&#xff0c;比如CPU、Di…

人脸识别face-api.js应用简介

前阵子学习了一下face-api.js &#xff0c;偶有心得&#xff0c;跟大家分享一下。 face-api.js的原始项目是https://github.com/justadudewhohacks/face-api.js &#xff0c;最后一个release是2020年3月22日的0.22.2版&#xff0c;组件较老&#xff0c;API文档很全&#xff0c;…

DS线性表之单链表的讲解和实现(2)

文章目录 前言一、链表的概念二、链表的分类三、链表的结构四、前置知识准备五、单链表的模拟实现定义头节点初始化单链表销毁单链表打印单链表申请节点头插数据尾插数据头删数据尾删数据查询数据在pos位置之后插入数据删除pos位置之后的数据 总结 前言 本篇的单链表完全来说是…

高性能计算应用优化实践之VASP

VASP简介 VASP是最常见的第一性原理计算软件之一。第一性原理计算是基于密度泛函理论&#xff0c;通过选择合适的交换关联赝势(GGA或LDA)&#xff0c;然后基于迭代方法自洽求解Kohn-Sham方程&#xff0c;直到所求出的新的电荷密度与输入的电荷密度在收敛判据范围内&#xff0c…

Python酷库之旅-第三方库Pandas(145)

目录 一、用法精讲 656、pandas.Timestamp.resolution属性 656-1、语法 656-2、参数 656-3、功能 656-4、返回值 656-5、说明 656-6、用法 656-6-1、数据准备 656-6-2、代码示例 656-6-3、结果输出 657、pandas.Timestamp.second属性 657-1、语法 657-2、参数 6…

JAVA开发中SpringMVC框架的使用及常见的404问题原因以及SpringMVC框架基于注解的开发实例

一、JAVA开发中SpringMVC框架的使用及常见的404问题原因 使用SpringMVC建立一个web项目&#xff0c;在IDEA中file->new->project建立一个空项目project。不用选择create from archetype从模板创建。然后在项目的pom.xml中添加公共的依赖包括org.springframework&#xff…

YOLO11改进|卷积篇|引入空间通道重组卷积ScConv

目录 一、【SCConv】卷积1.1【SCConv】卷积介绍1.2【SCConv】核心代码 二、添加【SCConv】卷积2.1STEP12.2STEP22.3STEP32.4STEP4 三、yaml文件与运行3.1yaml文件3.2运行成功截图 一、【SCConv】卷积 1.1【SCConv】卷积介绍 SCConv 模块提供了一种新的视角来看待CNNs的特征提取…

如何通过钢筋计来优化施工安全

在现代建筑工程中&#xff0c;施工安全一直是首要关注的问题。特别是在高层建筑、桥梁和地下工程等复杂结构中&#xff0c;确保钢筋的正确安装和稳定性能&#xff0c;直接关系到工程的整体安全性和耐久性。钢筋计作为一种专门用于测量和监测钢筋应力和应变的设备&#xff0c;其…