5G NR下行载波波形生成-Matlab

此示例显示了如何使用5G NR下行链路载波波形发生器来创建基带分量载波波形。

介绍

此示例显示了如何使用来参数化和生成5G新无线电(NR)下行链路波形nrWaveformGenerator。可以生成以下通道和信号:

  • PDSCH及其关联的DM-RS和PT-RS

  • PDCCH及其相关的DM-RS

  • PBCH及其相关的DM-RS

  • PSS和SSS

  • CSI-RS

该示例支持多个SCS特定载波和多个带宽部分(BWP)的参数化和生成。可以在不同的BWP上生成PDSCH和PDCCH信道的多个实例。可以配置CORESET集和搜索空间监视机会,以映射PDCCH。注意,在该示例中,没有将预编码应用于物理信道和信号。

波形和载波配置

基带波形由一个nrDLCarrierConfig对象以及与其通道和信号关联的一组其他对象进行参数设置。本部分在资源块中设置SCS特定的载波带宽,小区ID和子帧中生成的波形的长度。您可以使用NStartGrid和NSizeGrid参数控制SCS载波带宽和保护带。

  1. waveconfig = nrDLCarrierConfig();  % Create an instance of the waveform’s parameter object
  2. waveconfig.NCellID = 0;            % Cell identity
  3. waveconfig.ChannelBandwidth = 40;  % Channel bandwidth (MHz)
  4. waveconfig.FrequencyRange = ‘FR1’; % ‘FR1’ or ‘FR2’
  5. waveconfig.NumSubframes = 10;      % Number of 1ms subframes in generated waveform (1,2,4,8 slots per 1ms subframe, depending on SCS)
  6. % Define a set of SCS specific carriers, using the maximum sizes for a
  7. % 40 MHz NR channel. See TS 38.101-1 for more information on defined
  8. % bandwidths and guardband requirements
  9. scscarriers = {nrSCSCarrierConfig(),nrSCSCarrierConfig()};
  10. scscarriers{1}.SubcarrierSpacing = 15;
  11. scscarriers{1}.NSizeGrid = 216;
  12. scscarriers{1}.NStartGrid = 0;
  13. scscarriers{2}.SubcarrierSpacing = 30;
  14. scscarriers{2}.NSizeGrid = 106;
  15. scscarriers{2}.NStartGrid = 1;</font>

复制代码


SS Burst

在此部分中,您可以设置SS突发的参数。SS猝发的命理可以与波形的其他部分不同。通过TS 38.213第4.1节中指定的块模式参数来指定。位图用于指定在5ms的半帧突发中传输哪些块。也可以在此处设置以毫秒为单位的周期和突发功率。也可以设置此处未显示的其他SS突发参数。有关完整列表,请参见的帮助nrWavegenSSBurstConfig。

% SS burst configurationssburst = nrWavegenSSBurstConfig();ssburst.Enable = 1;                     % Enable SS Burstssburst.Power = 0;                      % Power scaling in dBssburst.BlockPattern = ‘Case B’;        % Case B (30kHz) subcarrier spacingssburst.TransmittedBlocks = [1 1 1 1];  % Bitmap indicating blocks transmitted in a 5ms half-frame burstssburst.Period = 20;                    % SS burst set periodicity in ms (5, 10, 20, 40, 80, 160)ssburst.NCRBSSB = [];                   % Frequency offset of SS burst (CRB), use [] for the waveform center

带宽部分

BWP由一组在给定载体上共享命理的连续资源组成。本示例支持通过单元阵列使用多个BWP。数组中的每个条目代表一个BWP。您可以为每个BWP指定子载波间隔(SCS),循环前缀(CP)长度和带宽。该SubcarrierSpacing参数将BWP映射到先前定义的SCS特定载波之一。该NStartBWP参数控制BWP在载体中相对于点A的位置。用BWP命理学表示。不同的BWP可以相互重叠。

  1. % Bandwidth parts configurations
  2. bwp = {nrWavegenBWPConfig(),nrWavegenBWPConfig()};
  3. bwp{1}.BandwidthPartID = 1;        % Bandwidth part ID
  4. bwp{1}.SubcarrierSpacing = 15;     % BWP subcarrier spacing
  5. bwp{1}.CyclicPrefix = ‘Normal’;    % BWP cyclic prefix for 15 kHz
  6. bwp{1}.NSizeBWP = 25;              % Size of BWP
  7. bwp{1}.NStartBWP = 12;             % Position of BWP, relative to point A (i.e. CRB)
  8. bwp{2}.BandwidthPartID = 2;        % Bandwidth part ID
  9. bwp{2}.SubcarrierSpacing = 30;     % BWP subcarrier spacing
  10. bwp{2}.CyclicPrefix = ‘Normal’;    % BWP cyclic prefix for 30 kHz
  11. bwp{2}.NSizeBWP = 50;              % Size of BWP
  12. bwp{2}.NStartBWP = 51;             % Position of BWP, relative to point A (i.e. CRB)</font>

复制代码

CORESET和搜索空间配置

本节中的参数指定控制资源集(CORESET)和PDCCH搜索空间配置。CORESET和搜索空间指定了给定命理的控制信道传输的可能位置(时间和频率)。生成器支持多个CORESET和搜索空间。可以指定以下参数:

  • 指定时隙中每个CORESET监视机会的第一个符号的OFDM符号

  • 一个时段内已分配时隙块的持续时间

  • 分配模式的周期性

  • CORESET持续时间,以符号表示,分别为1、2或3

  • 定义CORESET的已分配物理资源块(PRB)的位图。请注意,CORESET频率分配是在6个PRB的块中定义的,以公共资源块(CRB)编号对齐,即相对于点A。位图中的每个位选择包含它的CRB对齐块中的所有6个PRB。

  • CCE到REG的映射可以“交错”或“非交错”

  • 基于CORESET持续时间的资源元素组(REG)捆绑包大小(L),为(2,6)或(3,6)

  • 交织器大小为2、3或6

  • 移位索引,范围为0 … 274的标量值

下图显示了一些CORESET参数的含义。

  1. % CORESET and search space configurations
  2. coresets = {nrCORESETConfig()};
  3. coresets{1}.CORESETID = 1;                      % CORESET ID
  4. coresets{1}.Duration = 3;                       % CORESET symbol duration (1,2,3)
  5. coresets{1}.FrequencyResources = [1 1 0 1];     % Bitmap indicating blocks of 6 PRB for CORESET (RRC – frequencyDomainResources)
  6. coresets{1}.CCEREGMapping = ‘noninterleaved’;   % Mapping: ‘interleaved’ or ‘noninterleaved’
  7. coresets{1}.REGBundleSize = 3;                  % L (2,6) or (3,6)
  8. coresets{1}.InterleaverSize = 2;                % R (2,3,6)
  9. coresets{1}.ShiftIndex = waveconfig.NCellID;    % Set to NCellID
  10. searchspaces = {nrSearchSpaceConfig()};
  11. searchspaces{1}.SearchSpaceID = 1;              % Search space ID
  12. searchspaces{1}.CORESETID = 1;                  % CORESET associated with this search space
  13. searchspaces{1}.SearchSpaceType = ‘ue’;         % Search space type, ‘ue’ or ‘common’
  14. searchspaces{1}.SlotPeriodAndOffset = [5,0];    % Allocated slot period and slot offset of search space pattern
  15. searchspaces{1}.Duration = 2;                   % Number of slots in the block of slots in pattern period
  16. searchspaces{1}.StartSymbolWithinSlot = 0;      % First symbol of each CORESET monitoring opportunity in a slot
  17. searchspaces{1}.NumCandidates = [8 8 4 2 0];    % Number of candidates at each AL (set to 0 if the AL doesn’t fit in CORESET)</font>

复制代码

PDCCH实例配置

本部分指定波形中PDCCH实例集的参数。结构数组中的每个元素定义一个PDCCH序列实例。可以设置以下参数:

  • 启用/禁用PDCCH序列

  • 指定携带PDCCH的BWP

  • PDCCH实例功率,以dB为单位

  • 启用/禁用DCI通道编码

  • 在CORESET监视时机序列内分配的搜索空间

  • 携带PDCCH实例的搜索空间(和CORESET)

  • 分配的周期性。如果将其设置为空,则表示没有重复

  • PDCCH的聚合等级(AL)(控制信道元素(CCE)的数量)

  • 分配的候选者指定用于PDCCH传输的CCE

  • RNTI

  • 此PDCCH及其相关的DM-RS的加扰NID

  • DM-RS功率提升

  • DCI消息有效负载大小

  • DCI消息数据源。您可以使用一个位数组或以下标准PN序列之一:“ PN9-ITU”,“ PN9”,“ PN11”,“ PN15”,“ PN23”。生成器的种子可以使用形式的单元格数组指定{‘PN9’,seed}。如果未指定种子,则生成器将全部初始化。

    1. pdcch = {nrWavegenPDCCHConfig()};
    2. pdcch{1}.Enable = 1 ;                  % Enable PDCCH sequence
    3. pdcch{1}.Power = 1.1;                  % Power scaling in dB
    4. pdcch{1}.Coding = 1;                   % Enable DCI coding
    5. pdcch{1}.BandwidthPartID = 1;          % Bandwidth part
    6. pdcch{1}.SearchSpaceID = 1;            % Search space
    7. pdcch{1}.SlotAllocation = 0;           % Slots used with period
    8. pdcch{1}.Period = 5;                   % Period of transmission pattern
    9. pdcch{1}.AggregationLevel = 8;         % Aggregation level (1,2,4,8,16 CCEs)
    10. pdcch{1}.AllocatedCandidate = 1;       % PDCCH candidate in search space (1 based)
    11. pdcch{1}.RNTI = 0;                     % RNTI
    12. pdcch{1}.DMRSScramblingID = 1;         % PDCCH and DM-RS scrambling NID
    13. pdcch{1}.DMRSPower = 0;                % Additional power boosting in dB
    14. pdcch{1}.DataBlockSize = 20;           % DCI payload size
    15. pdcch{1}.DataSource = ‘PN9’;           % DCI data source</font>

    复制代码


PDSCH实例配置

本节指定波形中的PDSCH实例集。单元阵列中的每个元素nrWavegenPDSCHConfig定义一个PDSCH序列实例。本示例定义了两个PDSCH序列实例。

一般参数

为每个PDSCH序列实例设置以下参数:

  • 启用或禁用此PDSCH序列

  • 指定携带PDSCH的BWP。PDSCH将使用为此BWP指定的SCS

  • 功率缩放单位:dB

  • 启用或禁用DL-SCH传输信道编码

  • 传输块数据源。您可以使用一个位数组或以下标准PN序列之一:“ PN9-ITU”,“ PN9”,“ PN11”,“ PN15”,“ PN23”。生成器的种子可以使用形式的单元格数组指定{‘PN9’, seed}。如果未指定种子,则生成器将全部初始化。

  • 用于计算传输块大小的目标码率

  • 开销参数

  • 符号调制

  • 层数

  • 冗余版本(RV)序列

  • 启用或禁用虚拟到物理资源块映射的交错。如果未指定此参数,则考虑直接的,非交错的映射

  • 交错图的捆绑包大小,由较高层参数vrb-ToPRB-Interleaver指定。如果未指定此参数,则捆绑包大小设置为2

  1. pdsch = {nrWavegenPDSCHConfig()};
  2. pdsch{1}.Enable = 1;                    % Enable PDSCH sequence
  3. pdsch{1}.BandwidthPartID = 1;           % Bandwidth part of PDSCH transmission
  4. pdsch{1}.Power  = 0;                    % Power scaling in dB
  5. pdsch{1}.Coding = 1;                    % Enable DL-SCH transport channel coding
  6. pdsch{1}.DataSource = ‘PN9’;            % Channel data source
  7. pdsch{1}.TargetCodeRate = 0.4785;       % Code rate used to calculate transport block sizes
  8. pdsch{1}.XOverhead = 0;                 % Rate matching overhead
  9. pdsch{1}.Modulation = ‘QPSK’;           % ‘QPSK’, ’16QAM’, ’64QAM’, ‘256QAM’
  10. pdsch{1}.NumLayers = 2;                 % Number of PDSCH layers
  11. pdsch{1}.RVSequence = [0,2,3,1];        % RV sequence to be applied cyclically across the PDSCH allocation sequence
  12. pdsch{1}.VRBToPRBInterleaving = 0;      % Disable interleaved resource mapping
  13. pdsch{1}.VRBBundleSize = 2;             % vrb-ToPRB-Interleaver parameter</font>

复制代码

分配

下图表示PDSCH分配中使用的一些参数。

  • 您可以设置以下参数来控制PDSCH分配。请注意,这些参数是相对于BWP的。指定的PDSCH分配将避开用于SS突发的位置。


    分配给每个PDSCH实例的时隙中的符号帧中用于PDSCH序列的时隙时隙分配周期。如果为空,则表示没有重复分配的PRB相对于BWPRNTI。此值用于将PDSCH链接到PDCCH的实例用于加扰PDSCH位的NID

  1. pdsch{1}.SymbolAllocation = [2,9];    % First symbol and lengthpdsch{1}.SlotAllocation = 0:9;        % Allocated slot indices for PDSCH sequencepdsch{1}.Period = 15;                 % Allocation period in slotspdsch{1}.PRBSet = [0:5, 10:20];       % PRB allocationpdsch{1}.RNTI = 0;                    % RNTIpdsch{1}.NID = 1;                     % Scrambling for data part</font>

复制代码

CORESETs and sets of PRB can be specified for rate matching around, if required

  • The PDSCH can be rate matched around one or more CORESETs

  • The PDSCH can be rate matched around other resource allocations

  1. pdsch{1}.ReservedCORESET = 1;           % Rate matching pattern, defined by CORESET IDs</font>

复制代码

PDSCH DM-RS Configuration

Set the DM-RS parameters

  1. % Antenna port and DM-RS configuration (TS 38.211 section 7.4.1.1)
  2. pdsch{1}.MappingType = ‘A’;                % PDSCH mapping type (‘A'(slot-wise),’B'(non slot-wise))
  3. pdsch{1}.DMRSPower = 0;                    % Additional power boosting in dB
  4. pdsch{1}.DMRS.DMRSPortSet = [] ;           % DM-RS antenna ports used ([] gives port numbers 0:NumLayers-1)
  5. pdsch{1}.DMRS.DMRSTypeAPosition = 2;       % Mapping type A only. First DM-RS symbol position (2,3)
  6. pdsch{1}.DMRS.DMRSLength = 1;              % Number of front-loaded DM-RS symbols (1(single symbol),2(double symbol))
  7. pdsch{1}.DMRS.DMRSAdditionalPosition = 0;  % Additional DM-RS symbol positions (max range 0…3)
  8. pdsch{1}.DMRS.DMRSConfigurationType = 2;   % DM-RS configuration type (1,2)
  9. pdsch{1}.DMRS.NumCDMGroupsWithoutData = 1; % CDM groups without data (max range 1…3)
  10. pdsch{1}.DMRS.NIDNSCID = 1;                % Scrambling identity (0…65535)
  11. pdsch{1}.DMRS.NSCID = 0;                   % Scrambling initialization (0,1)</font>

复制代码

PDSCH PT-RS Configuration

Set the PT-RS parameters

  1. % PT-RS configuration (TS 38.211 section 7.4.1.2)
  2. pdsch{1}.EnablePTRS = 0;             % Enable or disable the PT-RS (1 or 0)
  3. pdsch{1}.PTRSPower = 0;              % Additional PT-RS power boosting in dB
  4. pdsch{1}.PTRS.TimeDensity = 1;       % Time density (L_PT-RS) of PT-RS (1,2,4)
  5. pdsch{1}.PTRS.FrequencyDensity = 2;  % Frequency density (K_PT-RS) of PT-RS (2,4)
  6. pdsch{1}.PTRS.REOffset = ’00’;       % PT-RS resource element offset (’00’,’01’,’10’,’11’)
  7. pdsch{1}.PTRS.PTRSPortSet = 0;       % PT-RS antenna ports must be a subset of DM-RS ports
  8. % When PT-RS is enabled, the DM-RS ports must be in range 0 to 3 for DM-RS
  9. % configuration type 1 and in range 0 to 5 for DM-RS configuration type 2.
  10. % Nominally the antenna port of PT-RS is the lowest DM-RS port number.</font>

复制代码

Specifying Multiple PDSCH Instances

A second PDSCH sequence instance is specified next using the second BWP.

  1. pdsch{2} = pdsch{1};
  2. pdsch{2}.Enable = 1;
  3. pdsch{2}.BandwidthPartID = 2;          % PDSCH mapped to 2nd BWP
  4. pdsch{2}.SymbolAllocation = [0,12];
  5. pdsch{2}.SlotAllocation = [2:4,6:20];
  6. pdsch{2}.PRBSet  = [25:30, 35:38];     % PRB allocation, relative to BWP</font>

复制代码

CSI-RS

本部分在波形中配置通道状态信息参考信号(CSI-RS)。单元阵列中的每个元素代表一组与BWP相关的CSI-RS资源。

一般参数

为一组CSI-RS资源设置以下参数:

  • 启用或禁用这组CSI-RS资源
  • 指定承载此CSI-RS资源集的BWP。CSI-RS资源配置将使用为此BWP指定的SCS
  • 以dB为单位指定功率比例。提供标量可定义单个CSI-RS资源或所有已配置的CSI-RS资源的功率缩放。提供向量可为每个CSI-RS资源定义一个单独的功率电平。

  1. <pre style=”box-sizing: border-box; overflow: auto; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; line-height: 1.42; color: rgb(64, 64, 64); word-break: normal; overflow-wrap: normal; background: transparent; border: none; border-radius: 0px;”>csirs = {nrWavegenCSIRSConfig()};
  2. csirs{1}.Enable = 0;
  3. csirs{1}.BandwidthPartID = 1;
  4. csirs{1}.Power = 3;    <span style=”box-sizing: border-box; color: rgb(34, 139, 34);”>% in dB</span></pre></font>

复制代码

CSI-RS配置

您可以为一个或多个零功耗(ZP)或非零功耗(NZP)CSI-RS资源配置配置以下参数。

  • CSI-RS资源的类型(“ nzp”,“ zp”)
  • 行号对应于TS 38.211表7.4.1.5.3-1(1 … 18)中定义的CSI-RS资源
  • CSI-RS资源的频率密度(“一个”,“三个”,“ dot5even”,“ dot5odd”)
  • 资源块(RB)中的CSI-RS资源的子载波位置
  • 分配给CSI-RS资源的RB数(1 … 275)
  • 相对于载波资源网格的CSI-RS资源分配的起始RB索引(0 … 274)
  • 时隙内CSI-RS资源的OFDM符号位置
  • CSI-RS资源的时隙的周期和偏移量(基于0)。此参数可以是向量或向量的单元格数组。在后一种情况下,每个小区对应一个单独的CSI-RS资源。在向量的情况下,所有CSI-RS资源都使用相同的时隙集
  • 加扰身份与用于伪随机序列生成的CSI-RS资源相对应(0 … 1023)

  1. csirs{1}.CSIRSType = {‘nzp’,’zp’};
  2. csirs{1}.RowNumber = [3 5];
  3. csirs{1}.Density = {‘one’,’one’};
  4. csirs{1}.SubcarrierLocations = {6,4};
  5. csirs{1}.NumRB = 25;
  6. csirs{1}.RBOffset = 12;
  7. csirs{1}.SymbolLocations = {13,9};
  8. csirs{1}.CSIRSPeriod = {[5 0],[5 0]};
  9. csirs{1}.NID = 5;</font>

复制代码

Specifying Multiple CSI-RS Instances

A set of CSI-RS resources associated with the second BWP.

  1. csirs{2} = nrWavegenCSIRSConfig();
  2. csirs{2}.Enable = 0;
  3. csirs{2}.BandwidthPartID = 2;
  4. csirs{2}.Power = 3; % in dB
  5. csirs{2}.CSIRSType = {‘nzp’,’nzp’};
  6. csirs{2}.RowNumber = [1 1];
  7. csirs{2}.Density = {‘three’,’three’};
  8. csirs{2}.SubcarrierLocations = {0,0};
  9. csirs{2}.NumRB = 50;
  10. csirs{2}.RBOffset = 50;
  11. csirs{2}.SymbolLocations = {6,10};
  12. csirs{2}.CSIRSPeriod = {[10,1],[10,1]};
  13. csirs{2}.NID = 0;</font>

复制代码

波形产生

此部分将所有通道和信号参数分配给主载波配置对象nrDLCarrierConfig,然后生成并绘制波形。

  1. waveconfig.SSBurst = ssburst;
  2. waveconfig.SCSCarriers = scscarriers;
  3. waveconfig.BandwidthParts = bwp;
  4. waveconfig.CORESET = coresets;
  5. waveconfig.SearchSpaces = searchspaces;
  6. waveconfig.PDCCH = pdcch;
  7. waveconfig.PDSCH = pdsch;
  8. waveconfig.CSIRS = csirs;
  9. [waveform,info] = nrWaveformGenerator(waveconfig);
  10. % Plot the magnitude of the baseband waveform for the set of antenna ports defined
  11. figure;
  12. plot(abs(waveform));
  13. title(‘Magnitude of 5G Downlink Baseband Waveform’);
  14. xlabel(‘Sample Index’);
  15. ylabel(‘Magnitude’);
  16. % Plot spectogram of waveform for first antenna port
  17. samplerate = info.ResourceGrids(1).Info.SampleRate;
  18. nfft = info.ResourceGrids(1).Info.Nfft;
  19. figure;
  20. spectrogram(waveform(:,1),ones(nfft,1),0,nfft,’centered’,samplerate,’yaxis’,’MinThreshold’,-130);
  21. title(‘Spectrogram of 5G Downlink Baseband Waveform’);</font>

复制代码

波形发生器功能返回时域波形以及info包含基础资源元素网格以及该波形中所有PDSCH和PDCCH实例使用的资源的细分的结构。

该ResourceGrids字段是结构数组,其中包含以下字段:

  • 每个BWP对应的资源网格
  • 包含每个BWP中的信道和信号的总带宽的资源网格
  • 具有对应于每个BWP的信息的信息结构。第一个BWP的此信息结构的内容如下所示。

请注意,生成的资源网格是3D矩阵,其中不同的平面代表天线端口。对于不同的物理通道和信号,最低端口映射到网格的第一平面。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BlockingQueue详解(含动画演示)

目录 BlockingQueue详解0、BlockingQueue简介BlockingQueue接口中方法注释BlockingQueue的实现&#xff0c;总结计划 1、ArrayBlockingQueue简介2、ArrayBlockingQueue的继承体系3、ArrayBlockingQueue的构造方法①、 ArrayBlockingQueue(int capacity)②、ArrayBlockingQueue(…

在当今数字化快速发展的时代,Cobol 如何与新兴技术(如云计算、大数据、人工智能)进行集成和交互?

在当今数字化快速发展的时代&#xff0c;Cobol作为一种古老但广泛使用的编程语言&#xff0c;也需要与新兴技术进行集成和交互。以下是一些方法&#xff1a; 云计算&#xff1a;将Cobol应用程序迁移到云端&#xff0c;可以通过使用云计算平台&#xff08;如Amazon Web Services…

计算机组成原理 —— 存储系统(概述)

计算机组成原理 —— 存储系统&#xff08;概述&#xff09; 存储系统按层次划分按照存储介质分类按照存储方式分类按照信息可更改性分类根据信息的可保存性分类存储器性能指标 我们今天来学习计算机组成原理中的存储系统&#xff1a; 存储系统 存储系统是计算机系统中用于存…

vue实现的商品列表网页

一、商品列表效果如下 二、代码&#xff1b; vue实现的商品列表网页 &#xff0c; 图片在vue项目的Public文件夹里的 imgs中 <template><div class"common-layout"><!-- el-container:外层容器。 当子元素中包含 <el-header> 或 <el-foo…

mysql:简单理解mysql mvcc的可重复读

# 原理 假设有这样的sql begin select&#xff08;或update、insert、delete&#xff09; ... commit当执行【begin】的时候&#xff0c;标记有一个新事务要开始&#xff0c;但是事务还没有真正开始&#xff0c;事务id还没有产生当执行事务里面的第一个sql语句时&#xff08;…

java之url任意跳转漏洞

1 漏洞介绍 URLRedirect url重定向漏洞也称url任意跳转漏洞&#xff0c;网站信任了用户的输入导致恶意攻击&#xff0c;url重定向主要用来钓鱼&#xff0c;比如url跳转中最常见的跳转在登陆口&#xff0c;支付口&#xff0c;也就是一旦登陆将会跳转任意自己构造的网站&#xf…

Xshell7免费版下载安装使用

​一、下载安装​ 1.打开官网下载 https://www.xshell.com/zh/free-for-home-school/ 2.选择合适的下载路径&#xff0c;点击下载按钮&#xff0c;然后按照提示完成安装。 二、Xshell7的使用&#xff0c;Xhell连接Linux 1.连接之前&#xff0c;确保在Linux中开启SSH。参考&a…

Ubuntu 查看设备温度

要在Ubuntu中查看设备的温度&#xff0c;可以使用一些命令行工具来获取系统硬件的温度信息。下面列出了几种常用的方法&#xff1a; 方法 1: 使用 sensors 命令 sensors 命令用于读取和显示系统中的传感器数据&#xff0c;包括CPU温度和其他硬件传感器的信息。首先需要安装 l…

HAL-按键-MultiButton使用记录

title: HAL-按键-MultiButton使用记录 tags: STM32HalCubemax 文章目录 HAL-按键-MultiButton使用记录值得注意的是注意源函数里面有个类似“心跳“的东西 往期内容基础库HAL cubemax VSCODE GCC HAL-按键-MultiButton使用记录 MultiButton 是一个开源的轻量的按键判断的函数…

LANG、LC_MESSAGES和LC_ALL

在Linux系统中&#xff0c;环境变量LANG、LC_MESSAGES和LC_ALL用于控制系统和应用程序的语言和区域设置&#xff08;locale&#xff09;。它们的具体作用如下&#xff1a; LANG&#xff1a; LANG是最基本的环境变量&#xff0c;用于指定系统的默认语言和区域设置。它是一个全局…

YOLOv8中的C2f模块

文章目录 一、结构概述二、模块功能 一、结构概述 C2f块:首先由一个卷积块(Conv)组成&#xff0c;该卷积块接收输入特征图并生成中间特征图特征图拆分:生成的中间特征图被拆分成两部分&#xff0c;一部分直接传递到最终的Concat块&#xff0c;另一部分传递到多个Botleneck块进…

QT基础 - 文本文件读写

目录 零. 前言 一.读取文件 二. 写入文件 三. 和二进制读写的区别 零. 前言 在 Qt 中&#xff0c;对文本文件进行读写操作是常见的任务之一。这对于保存和加载配置信息、处理数据文件等非常有用。 Qt 提供了多种方式来读写文本文件&#xff0c;使得文件操作变得相对简单和…

SwiftUI 6.0(iOS 18)ScrollView 全新的滚动位置(ScrollPosition)揭秘

概览 在只有方寸之间大小的手持设备上要想体面的向用户展示海量信息&#xff0c;滚动视图&#xff08;ScrollView&#xff09;无疑是绝佳的“东牀之选”。 在 SwiftUI 历史的长河中&#xff0c;总觉得苹果对于 ScrollView 视图功能的升级是在“挤牙膏”。这不&#xff0c;在本…

“浔川AI翻译机v3.0”即将上线!

1 浔川AI翻译机简介&#xff1a; 浔川AI翻译机是一种基于人工智能技术开发的翻译设备。它能够实时将一种语言的文本或口语翻译成另一种语言&#xff0c;使得不同语言之间的交流更加便捷。浔川AI翻译机利用深度学习算法和大数据训练模型&#xff0c;能够自动识别和理解输入的语…

spire.Pdf 将pdf转成image

一、nuget安装 <ItemGroup><PackageReference Include"Spire.PDF" Version"10.6.7" /></ItemGroup> 二、直接上代码 using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using System; using System.IO;namespace …

Mysql常用函数及技巧

开源项目SDK&#xff1a;https://github.com/mingyang66/spring-parent 个人文档&#xff1a;https://mingyang66.github.io/raccoon-docs/#/ 一、round()函数 round()函数用于将数字四射侮辱到指定的小数位&#xff0c;语法如下&#xff1a; round(number, decimals)number…

乱弹篇(35)掩耳盗铃与两三十年

成语“ 掩耳盗铃 ”&#xff0c;比喻自己欺骗自己&#xff0c;明明是掩盖不住的事情偏要想法子掩盖。它多用来讽刺那些做事不想让别人知道&#xff0c;却偏偏又引起他人注意的人。 现在网络上以新浪微博和邪恶的“800727”为典型的自媒体平台和其掌控者&#xff0c;就是现代版…

【Linux基础】基础环境配置

设置APT源 进入源文本设置&#xff1a; vim /etc/apt/sources.list 配置源&#xff1a; #中科大 deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib#阿里云 deb http:…

提升研发效率:三品PLM解决方案在汽车汽配行业的实践

随着全球汽车市场的快速发展&#xff0c;中国汽车汽配行业迎来了前所未有的发展机遇。然而&#xff0c;在这一过程中&#xff0c;企业也面临着诸多挑战&#xff0c;如研发能力的提升、技术资料管理的复杂性、以及跨部门协作的困难等。为了应对这些挑战&#xff0c;三品产品生命…

Flink assignTimestampsAndWatermarks 深度解析:时间语义与水印生成

目录 概述 时间语义 时间戳分配 水印的作用 最佳实践 案例分析 注意事项 应用场景 概述 在Apache Flink中,assignTimestampsAndWatermarks是一个重要的方法,它允许数据流处理程序根据事件时间(event time)分配时间戳和生成水印(watermarks)。这个方法通常用于处理…