主要内容

NR SSB光束扫描

本示例展示了如何在5G NR系统的发射端(gNB)和接收端(UE)使用波束扫描。本例使用同步信号块(SSB),说明了初始访问期间使用的一些波束管理过程。为了完成波束扫描,该示例使用了相控阵系统工具箱™中的几个组件。

简介

毫米波(金宝appmmWave)频率的支持需要定向链路,这导致了NR中初始访问的波束管理程序的规范。波束管理是一组第1层(物理)和第2层(介质访问控制)程序,用于获取和维护一组波束对链路(gNB使用的波束与UE使用的波束匹配)。波束管理程序适用于下行链路和上行链路的传输和接收[1]、[2].这些程序包括:

  • 光束扫

  • 梁测量

  • 梁的决心

  • 梁报告

  • 梁复苏

本例主要介绍用户终端(UE)与接入网节点(gNB)建立连接时,空闲用户的初始接入过程。在物理层,使用同步信号块(SSB)在下行方向(gNB到UE)作为突发传输,示例突出了发射/接收点(TRP)波束扫描和UE波束扫描来建立波束对链路。在多波束管理过程中,TR 38.802将这种双端扫描定义为过程P-1 [1].

一旦连接,相同的光束对链路可用于后续传输。如有必要,使用CSI-RS(下行链路)和SRS(上行链路)进一步细化波束。在梁失效的情况下,这些对连接可以重新建立。有关光束对细化的示例,请参见基于CSI-RS的NR下行传输端波束细化(5 g工具箱)

本例生成一个NR同步信号突发,波束形成突发内的每个ssb扫过方位角和仰角方向,在空间散射通道上传输此波束形成的信号,并在多个接收端波束上处理此接收信号。该示例测量每个发射-接收波束对(在双环中)的参考信号接收功率(RSRP),并确定具有最大RSRP的波束对链路。因此,这种光束对链路表示在模拟空间场景的发射端和接收端的最佳光束对。该图显示了主要处理步骤,并以彩色突出显示了光束管理步骤。

rng (211);为可重复性设置RNG状态

仿真参数

为示例定义系统参数。修改这些参数,了解对系统的影响。

人口、难民和移民事务局。NCellID = 1;单元格ID人口、难民和移民事务局。FreqRange =“FR1”%频率范围:'FR1'或'FR2'人口、难民和移民事务局。CenterFreq = 3.5e9;%赫兹人口、难民和移民事务局。SSBlockPattern =“案例B”%箱子A/B/C/D/E人口、难民和移民事务局。SSBTransmitted = [1 (1,8) 0 (1,0)];% 4/8或64的长度人口、难民和移民事务局。TxArraySize = [8 8];%传输数组大小,[rows cols]人口、难民和移民事务局。TxAZlim = [-60 60];发送方位扫描限制人口、难民和移民事务局。TxELlim = [-90 0];发送仰角扫描限制人口、难民和移民事务局。RxArraySize = [2 2];%接收数组大小,[rows cols]人口、难民和移民事务局。RxAZlim = [-180 180];接收方位扫描限制人口、难民和移民事务局。RxELlim = [0 90];接收高度扫描限制人口、难民和移民事务局。ElevationSweep = false;启用/禁用仰角扫描人口、难民和移民事务局。SNRdB = 30;%信噪比,dB人口、难民和移民事务局。RSRPMode =“SSSwDMRS”% {'SSSwDMRS', 'SSSonly'}

这个例子使用了这些参数:

  • 具有单个BS和UE的单单元场景的单元ID

  • 频率范围,以字符串形式表示FR1或FR2操作

  • 中心频率,单位为Hz,取决于频率范围

  • 同步信号块模式为FR1的Case A/B/C和FR2的Case D/E之一。这也选择了子载波间距。

  • 以模式传输SSBs, FR1为长度为4或8的二进制向量,FR2为长度为64的二进制向量。发送的ssb数量决定了发送端和接收端的波束数量。

  • 发射阵列大小,作为两元行向量,分别指定发射阵列的行和列中的天线单元数。当两个值都大于1时,使用统一矩形数组(URA)。

  • 传输方位扫描限制,以指定扫描的起始和结束方位角

  • 以度数传输仰角扫描限制,以指定扫描的起始和结束仰角

  • 接收数组大小,作为两个元素的行向量,分别指定接收数组的行和列中的天线元素数量。当两个值都大于1时,使用统一矩形数组(URA)。

  • 接收以角度表示的方位角扫描限制,以指定扫描的起始和结束方位角

  • 接收仰角扫描限制,以指定扫描的起始和结束仰角

  • 对发射端和接收端都启用或禁用仰角扫描。为FR2和/或ura启用海拔扫描

  • 信噪比,以dB为单位

  • 用于SSB的测量模式,以指定仅使用辅助同步信号('SSSonly')或使用PBCH DM-RS以及辅助同步信号('SSSwDMRS')

prm =验证params (prm);

同步信号突发配置

使用指定的系统参数设置同步信号突发参数。初次访问时,将SSB周期设置为20ms。

txBurst = nrWavegenSSBurstConfig;txBurst。BlockPattern = prm.SSBlockPattern;txBurst。TransmittedBlocks = prm.SSBTransmitted;txBurst。周期= 20;txBurst。SubcarrierSpacingCommon = prm.SubcarrierSpacingCommon;配置一个nrDLCarrierConfig对象来使用同步信号% burst参数并禁用其他通道。该对象将被使用%由nrWaveformGenerator生成SS突发波形。cfgDL = configureWaveformGenerator(prm,txBurst);

参考教程同步信号块和突发(5 g工具箱)有关同步信号块和脉冲的详细信息。

破裂的一代

创建SS爆发波形[3.]通过呼叫nrWaveformGenerator函数。生成的波形还没有波束成形。

burst波形= nrWaveformGenerator(cfgDL);显示SS突发波形谱图图;ofdmInfo = nrOFDMInfo(cfgDL.SCSCarriers{1}.NSizeGrid,prm.SCS);nfft = ofdinfo . nfft;的谱图(burstWaveform (nfft, 1), 0, nfft,“中心”, ofdmInfo。SampleRate,“桠溪”“MinThreshold”, -130);标题(“SS爆发波形谱图”

通道配置

配置空间散射MIMO信道通道.该通道模型将自由空间路径损耗和其他大气衰减应用于输入。为BS和UE指定位置为[x, y, z]笛卡尔坐标系中的坐标。根据指定的数组大小,使用统一线性数组(ULA)或统一矩形数组(URA)。阵列采用各向同性天线单元。

C = physconst(“光速”);%传播速度lambda = c/prm.CenterFreq;%的波长人口、难民和移民事务局。posTx = [0;0;0];%发射阵列位置,[x;y;z],米人口、难民和移民事务局。posRx = [100;50;0];接收数组位置,[x;y;z],米toRxRange = rangeangle(prm.posTx,prm.posRx);spLoss = fspl(toRxRange,lambda);%空闲空间路径损失%发射阵列如果人口、难民和移民事务局。IsTxURA均匀矩形阵列arrayTx = phase . ura (prm.TxArraySize,0.5*lambda,...“元素”,分阶段。IsotropicAntennaElement (“BackBaffled”,真的));其他的均匀线阵数组tx = phase . ula (prm.NumTx,...“ElementSpacing”0.5 *λ...“元素”,分阶段。IsotropicAntennaElement (“BackBaffled”,真的));结束%接收数组如果人口、难民和移民事务局。IsRxURA均匀矩形阵列arrayRx = phase . ura (prm.RxArraySize,0.5*lambda,...“元素”, phased.IsotropicAntennaElement);其他的均匀线阵arrayRx = phase . ula (prm.NumRx,...“ElementSpacing”0.5 *λ...“元素”, phased.IsotropicAntennaElement);结束%分散位置人口、难民和移民事务局。FixedScatMode = true;如果人口、难民和移民事务局。FixedScatMode固定单个散射位置人口、难民和移民事务局。ScatPos = [50;80;0);其他的%在随机位置生成散射体Nscat = 10;%散射体数目azRange = -180:180;elRange = -90:90;randAzOrder = randperm(长度(azRange));randElOrder = randperm(长度(elRange));azAngInSph = azRange(randAzOrder(1:Nscat));elAngInSph = elRange(randElOrder(1:Nscat));R = 20;%半径[x,y,z] = sph2cart(deg2rad(azAngInSph),deg2rad(elAngInSph),r);人口、难民和移民事务局。ScatPos = [x;y;z] + (prm。posTx + prm.posRx);结束%配置通道channel = phase . scatteringmimochannel;通道。传播速度= c;通道。载波频率= prm.CenterFreq;通道。SampleRate = ofdmInfo.SampleRate;通道。SimulateDirectPath = false;通道。ChannelResponseOutputPort = true; channel.Polarization =“没有”;通道。TransmitArray = arrayTx;通道。TransmitArrayPosition = prm.posTx;通道。ReceiveArray = arrayRx;通道。ReceiveArrayPosition = prm.posRx;通道。ScattererSpecificationSource =“属性”;通道。ScattererPosition = prm.ScatPos;通道。散射系数= 1(1,大小(prm.ScatPos,2));获得最大信道延迟[~,~,tau] = channel(complex(randn(ofdmInfo.SampleRate*1e-3,prm.NumTx),...randn (ofdmInfo.SampleRate * 1 e - 3, prm.NumTx)));maxChDelay = ceil(max(tau)*ofdmInfo.SampleRate);

发射端波束扫描

为了实现TRP波束扫描,使用模拟波束形成在生成的爆发中对每个SS块进行波束形成。根据脉冲中SS块的数量和指定的扫描范围,确定不同光束的方位角和仰角方向。然后将脉冲内的各个块波束形成到每个方向。

发射端和接收端的波束数%numBeams = sum(txBurst.TransmittedBlocks);发射光束的方位角和仰角,等间距azBW =束流宽度(arrayTx,prm。CenterFreq,“切”“方位”);elBW =光束宽度(arrayTx,prm.)CenterFreq,“切”“高度”);txBeamAng = hGetBeamSweepAngles(numBeams,prm.TxAZlim,prm.TxELlim,...azBW、elBW prm.ElevationSweep);%用于评估变速器侧转向砝码SteerVecTx =相控。SteeringVector (“SensorArray”arrayTx,...“PropagationSpeed”c);获取每个SSB占用的OFDM符号集numBlocks = length(txBurst.TransmittedBlocks);burstStartSymbols = ssBurstStartSymbols(txBurst.BlockPattern,numBlocks);burstStartSymbols = burstStartSymbols(txBurst.TransmittedBlocks==1);burstOccupiedSymbols = burstStartSymbols。' + (1:4);为每个SSB应用每个OFDM符号的转向gridsymlength_repmat (ofdminfo . symbollength_1, cfgddl . numsubframes);%重复突发numTx准备转向strtx波形= repmat(burst波形,1,prm.NumTx)./sqrt(prm.NumTx);ssb = 1:numBeams从突发中提取SSB波形blockSymbols = burstOccupiedSymbols(ssb,:);startSSBInd = sum(gridsymlength (1:blockSymbols(1)-1))+1;endSSBInd = sum(gridsymlength (1:blockSymbols(4)));ssb波形= strtx波形(startSSBInd:endSSBInd,1);为转向方向生成权重wT = SteerVecTx(prm.CenterFreq,txBeamAng(:,ssb));将每个传输元素的权重应用到SSBstrtx波形(startSSBInd:endSSBInd,:) = ssb波形.*(wT');结束

波束形成的突发波形然后通过空间感知散射通道传输。

接收端波束扫描与测量

对于接收端波束扫描,在每个接收波束上依次接收发射的波束形成的突发波形。为N发射光束和在程序P-1中接收光束,每个N光束被传送,以便每个发射波束都接收到接收光束。

本例同时假设了两者N而且等于脉冲中ssb的数量。为了简单起见,这个示例只生成一个突发,但是为了模拟空中的突发接收次数,接收器处理这一单脉冲次了。

该图显示了gNB和UE的扫描波束图N = m = 4,在方位面上。该图显示了双扫描所花费的时间,其中gNB的每个间隔对应SSB, UE的每个间隔对应SS突发。对于所描绘的场景,梁S3而且U2被高亮显示为所选的梁对链路。该示例在一段时间内实现了双重扫描N * M瞬间的时间。

传输突发的接收处理包括

  • 空间感知衰落信道的应用

  • 接收增益以补偿诱导的路径损耗和AWGN

  • 接收端波束形成

  • 时间调整

  • OFDM解调

  • 提取已知SSB网格

  • 根据指定的测量方式测量RSRP

处理对每个接收光束重复这些步骤,然后根据所做的完整测量集选择最佳光束对。

为了突出波束扫描,本例假设接收端有已知的SSB信息。有关恢复处理的详细信息,请参见NR Cell搜索、MIB和SIB1恢复(5 g工具箱)

对于空闲模式SS-RSRP测量,除了SSS(第5.1.1节)外,只使用次要同步信号(SSS)或物理广播信道(PBCH)解调参考信号(DM-RS)。(4])。使用RSRPMode示例参数。对于FR2, RSRP测量是基于天线单元的组合信号,而对于FR1,测量是每个天线单元。

接收光束的方位角和仰角,等间距azBW =波束宽度(arrayRx,prm。CenterFreq,“切”“方位”);elBW =光束宽度(arrayRx,prm。CenterFreq,“切”“高度”);rxBeamAng = hGetBeamSweepAngles(numBeams,prm.RxAZlim,prm.RxELlim,...azBW、elBW prm.ElevationSweep);%用于评估接收侧转向砝码SteerVecRx =相控。SteeringVector (“SensorArray”arrayRx,...“PropagationSpeed”c);% AWGN级别信噪比= 10^(prm.SNRdB/20);转换为线性增益N0 = 1/(√(2.0*prm.NumRx*double(ofdmInfo.Nfft))*信噪比);%噪音标准。%以线性方式接收增益,以补偿路径损失rxGain = 10^(sloss /20);生成一个用于定时校正的参考网格%假设SSB在第一个槽位carrier = nrCarrierConfig(“NCellID”, prm.NCellID);母舰。NSizeGrid = cfgDL.SCSCarriers{1}.NSizeGrid; carrier.SubcarrierSpacing = prm.SCS; pssRef = nrPSS(carrier.NCellID); pssInd = nrPSSIndices; ibar_SSB = 0; pbchdmrsRef = nrPBCHDMRS(carrier.NCellID,ibar_SSB); pbchDMRSInd = nrPBCHDMRSIndices(carrier.NCellID); pssGrid = zeros([240 4]); pssGrid(pssInd) = pssRef; pssGrid(pbchDMRSInd) = pbchdmrsRef; refGrid = zeros([12*carrier.NSizeGrid ofdmInfo.SymbolsPerSlot]); burstOccupiedSubcarriers = carrier.NSizeGrid*6 + (-119:120).'; refGrid(burstOccupiedSubcarriers,...burstOccupiedSymbols(1,:)) = pssGrid;遍历所有接收光束rsrp = 0 (numBeams,numBeams);rIdx = 1:numBeams%衰落信道,有路径损耗txWave = [strtx波形;0 (maxChDelay、尺寸(strTxWaveform 2)));fadWave = channel(txWave);%接收增益,以补偿路径损失fadWaveG = fadWave*rxGain;%添加WGN噪声= N0*complex(randn(size(fadWaveG)),randn(size(fadWaveG)));rx波形= fadWaveG +噪声;为转向方向生成权重wR = SteerVecRx(prm.CenterFreq,rxBeamAng(:,rIdx));为每个接收元素应用权重如果比较字符串(人口、难民和移民事务局。FreqRange,“FR1”) strrx波形= rx波形.*(wR');其他的%为FR2,结合天线元件的信号strrx波形= rx波形*conj(wR);结束正确计时offset = nrTimingEstimate(载波,...strRxWaveform (1: ofdmInfo.SampleRate * 1 e - 3:), refGrid * wR (1) ');如果maxChDelay偏移量= 0;结束strRxWaveformS = strRxWaveformS (1+offset:end,:);OFDM解调rxGrid = nrOFDMDemodulate(载波,strRxWaveformS);rxGrid中所有ssb的循环%(发送端)tIdx = 1:numBeams获得每个SSB网格rxSSBGrid = rxGrid(burstOccupiedSubcarriers,...burstOccupiedSymbols (tIdx:):);如果strcmpi(人口、难民和移民事务局。RSRPMode,“SSSwDMRS”) meas = nrSSBMeasurements(rxSSBGrid,carrier.NCellID,mod(tidx -1,8));其他的meas = nrSSBMeasurements(rxSSBGrid,carrier.NCellID);结束rsrp(rIdx,tIdx) = max(measure . rsrpperantenna);结束结束

梁的决心

在双端扫描和测量完成后,根据RSRP测量确定最佳光束对链路。

[m,i] = max(rsrp,[],“所有”“线性”);第一次出现是输出% I首先是列向下(用于接收),然后是跨列(用于发送)[rxBeamID,txBeamID] = ind2sub([numBeams numBeams],i(1));显示所选光束对disp ([RSRP所选光束对num2str (rsrp (rxBeamID,...txBeamID))dBm的, 13发送#num2str (txBeamID)...(方位角:'txBeamID num2str (txBeamAng (1))', Elevation: '...txBeamID num2str (txBeamAng (2))“)”13“接收#”num2str (rxBeamID)...(方位角:'rxBeamID num2str (rxBeamAng (1))', Elevation: '...rxBeamID num2str (rxBeamAng (2))“)”]);显示最终光束对图案H =数字(“位置”,figposition([32 55 32 40]),菜单条的“没有”);h.Name =“选定的发射阵列响应模式”;wT = SteerVecTx(prm.CenterFreq,txBeamAng(:,txBeamID));模式(arrayTx,人口、难民和移民事务局。CenterFreq,“PropagationSpeed”c“重量”、wT);H =数字(“位置”,figposition([32 55 32 40]),菜单条的“没有”);h.Name =“选定的接收阵列响应模式”;wR = SteerVecRx(prm.CenterFreq,rxBeamAng(:,rxBeamID));模式(arrayRx,人口、难民和移民事务局。CenterFreq,“PropagationSpeed”c“重量”,或者说是);用tx, rx,散射器和确定的光束绘制MIMO场景。梁图中%的分布与线性比例的幂分布相似。prmScene = struct();prmScene。TxArray = arrayTx;prmScene。RxArray = arrayRx;prmScene。TxArrayPos = prm.posTx;prmScene。RxArrayPos = prm.posRx;prmScene。ScatterersPos = prm.ScatPos; prmScene.Lambda = lambda; prmScene.ArrayScaling = 1;放大图中的天线阵列prmScene。米axTxBeamLength = 45;图中发射光束的最大长度prmScene。米axRxBeamLength = 25;图中接收光束的最大长度hPlotSpatialMIMOScene (wT, prmScene wR);如果人口、难民和移民事务局。ElevationSweep视图(2);结束
发射#8(方位角:60,仰角:0)接收#6(方位角:90,仰角:0)

这些图分别突出了发射指向性模式、接收指向性模式和空间场景。结果取决于用于扫描的单个光束方向。该空间场景提供了发射和接收阵列以及各自确定的波束以及散射体的组合视图。

总结与进一步探索

本例通过使用同步信号块进行发射端和接收端波束扫描,重点介绍了P-1波束管理过程。通过测量ssb的参考信号接收功率,可以为选定的空间环境确定最佳波束对链路。

该示例允许更改频率范围、SSB块模式、SSB数量、发射和接收阵列大小、发射和接收扫描范围以及测量模式。为了了解参数对光束选择的影响,可以用不同的值进行实验。为了突出示例中的波束形成方面,简化了接收处理。

有关使用CSI-RS信号进行下行链路的P-2传输端波束扫描程序的示例,请参见基于CSI-RS的NR下行传输端波束细化(5 g工具箱).一旦初始梁对连接建立,您可以使用这些程序在连接模式下对梁进行细化和调整[5]、[6].

参考文献

  1. 3gpp tr 38.802。“无线接入新技术物理层方面的研究”。第三代伙伴计划;技术规范集团无线接入网

  2. 佐尔达尼,M., Polese, A. Roy, D. Castor, M. Zorzi。毫米波频率下3GPP NR波束管理教程。IEEE通讯。调查和教程2019年第一季度,第21卷第1期。

  3. 3gpp ts 38.211。“NR;物理通道和调制。”第三代伙伴计划;技术规范集团无线接入网

  4. 3gpp ts 38.215。“NR;物理层测量。”第三代伙伴计划;技术规范集团无线接入网

  5. 佐尔达尼,M., Polese, A. Roy, D. Castor, M. Zorzi。“mmwave 3GPP NR的独立和非独立波束管理。”IEEE通讯杂志2019年4月,第123-129页。

  6. Onggosanusi, E., S. Md. Rahman,等。“5G NR的模块化和高分辨率信道状态信息和波束管理。”IEEE通讯杂志, 2018年3月,48-55页。

本地函数

函数prm = validateParams(prm)验证用户指定的参数并返回更新后的参数仅对参数一致性进行交叉依赖检查。。如果strcmpi(人口、难民和移民事务局。FreqRange,“FR1”如果人口、难民和移民事务局。CenterFreq > 7.125e9 || prm。CenterFreq < 410e6 error(['指定的中心频率在FR1之外'...频率范围(410兆赫- 7.125兆赫)。]);结束如果strcmpi(人口、难民和移民事务局。SSBlockPattern,“D”) | |...strcmpi(人口、难民和移民事务局。SSBlockPattern,“E”)错误(对于所选的FR1频率无效的SSBlockPattern...的范围内。SSBlockPattern必须是“Case A”或“...' FR1的'情况B'或'情况C']);结束如果~ (((prm.SSBTransmitted)长度= = 4)| |...(长度(prm.SSBTransmitted) = = 8))错误(['SSBTransmitted必须是长度为4或8的向量'...用于FR1频率范围。]);结束如果(人口、难民和移民事务局。CenterFreq <= 3e9) && (length(prm.SSBTransmitted)~=4) error(['SSBTransmitted必须是一个长度为4的向量'...中心频率小于或等于3GHz。]);结束如果(人口、难民和移民事务局。CenterFreq > 3e9) &&(长度(prm. ssbtransmit)~=8)错误(['SSBTransmitted必须是一个长度为8的向量'...'中心频率大于3GHz且小于'...'或等于7.125GHz。']);结束其他的%的FR2如果人口、难民和移民事务局。CenterFreq > 52.6e9 || prm。CenterFreq < 24.25e9 error(['指定中心频率在FR2之外'...频率范围(24.25 GHz - 52.6 GHz)。]);结束如果~ (strcmpi(人口、难民和移民事务局。SSBlockPattern,“D”) | |...strcmpi(人口、难民和移民事务局。SSBlockPattern,“E”)错误([所选FR2频率的SSBlockPattern无效...的范围内。SSBlockPattern必须是“Case D”或“...“FR2的‘E案例’。”]);结束如果长度(prm.SSBTransmitted) ~ = 64错误(['SSBTransmitted必须是一个长度为64的向量'...“FR2频率范围。”]);结束结束人口、难民和移民事务局。NumTx = prod(prm.TxArraySize); prm.NumRx = prod(prm.RxArraySize);如果人口、难民和移民事务局。NumTx==1 || prm.NumRx==1 error([发射或接收天线元件的数量必须为...'大于1。']);结束人口、难民和移民事务局。IsTxURA = (prm.TxArraySize(1)>1) && (prm.TxArraySize(2)>1);人口、难民和移民事务局。IsRxURA = (prm.RxArraySize(1)>1) && (prm.RxArraySize(2)>1);如果~ (strcmpi(人口、难民和移民事务局。RSRPMode,“SSSonly”) | |...strcmpi(人口、难民和移民事务局。RSRPMode,“SSSwDMRS”))错误([无效的RSRP测量模式。指定任意一个'...'SSSonly'或'SSSwDMRS'为模式]);结束根据SSBlockPattern选择SCS开关低(prm.SSBlockPattern)情况下的情况下SCS = 15;CBW = 10;scsCommon = 15;情况下“案例b”“案例c”} SCS = 30;CBW = 25;scsCommon = 30;情况下“d”SCS = 120;CBW = 100;scsCommon = 120;情况下“e”SCS = 240;CBW = 200;scsCommon = 120;结束人口、难民和移民事务局。SCS = SCS;人口、难民和移民事务局。ChannelBandwidth = cbw;人口、难民和移民事务局。SubcarrierSpacingCommon = scsCommon;结束函数ssbStartSymbols = ssBurstStartSymbols(ssbBlockPattern,Lmax)SS爆发开始OFDM符号。% 'alln'给出了SS块索引'n'的整体集合% TS 38.213第4.1节,其中的一个子集用于每个案例a - eAlln = [0;1;2;3;5;6;7;8;10;11; 12; 13; 15; 16; 17; 18]; cases = {的情况下“案例B”“案例C”“D”“E”};M = [14 28 14 28 56];I = {[2 8] [4 8 16 20] [2 8] [4 8 16 20] [8 12 16 20 32 36 40 44]};Nn = [2 1 2 16 8];caseIdx = find(strcmpi(ssbBlockPattern,cases));如果(any(caseIdx==[1 2 3]))如果(Lmax==4) nn = nn(caseIdx);elseif(Lmax==8) nn = nn(caseIdx) * 2;结束其他的nn = nn(caseIdx);结束N = alln(1:nn);ssbStartSymbols = (i{caseIdx} + m(caseIdx)*n).';ssbStartSymbols = ssbStartSymbols(:).';结束函数cfgDL =配置波形发生器(prm,txBurst)配置nrWaveformGenerator使用的nrDLCarrierConfig对象%生成SS突发波形。cfgDL = nrDLCarrierConfig;cfgDL.SCSCarriers{1}。SubcarrierSpacing = prm.SCS;如果(prm.SCS = = 240) cfgDL。SCSCarriers = [cfgDL.]SCSCarriers cfgDL.SCSCarriers];cfgDL.SCSCarriers{2}。SubcarrierSpacing = prm.SubcarrierSpacingCommon;cfgDL.BandwidthParts{1}。SubcarrierSpacing = prm.SubcarrierSpacingCommon;其他的cfgDL.BandwidthParts{1}。SubcarrierSpacing = prm.SCS;结束cfgDL.PDSCH{1}。启用= false;cfgDL.PDCCH{1}。启用= false;cfgDL。ChannelBandwidth = prm.ChannelBandwidth;cfgDL。FrequencyRange = prm.FreqRange;cfgDL。NCellID = prm.NCellID; cfgDL.NumSubframes = 5; cfgDL.WindowingPercent = 0; cfgDL.SSBurst = txBurst;结束