5G NR slot配置

参考自TS 38.213

slot配置规则

一个slot包括上行符号,下行符号和可灵活设置的符号。
如果UE收到TDD-UL-DL-ConfigurationCommon参数,则按照此参数设置每个slot的格式。
这个参数包括:
- 参考的子载波间隔配置 μ r e f \mu_{ref} μref
- pattern 1
pattern 1又包括:
-slot配置周期Pms,根据参考子载波间隔的不同,P的取值不同。
-只有下行符号的slot数目dslots
-下行符号数dsym
-只有上行符号的slots数目uslots
-上行符号数usym
Pms内包括 S = P ∗ 2 μ r e f S=P*2^{\mu_{ref}} S=P2μref个采用子载波间隔为 μ r e f

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是5G NR PDSCH DMRS 解扰matlab模拟全流程代码: ```matlab % 5G NR PDSCH DMRS 解扰matlab模拟全流程代码 % 设置参数值 N_RB = 100; % 资源块数 N_sc_RB = 12; % 每个资源块的子载波数 N_SC = N_RB*N_sc_RB; % 总的子载波数 N_symbs_per_slot = 14; % 每个时隙的OFDM符号数 N_bits_per_symb = 2*N_sc_RB*7; % 每个OFDM符号中的比特数 N_bits = N_symbs_per_slot*N_bits_per_symb; % 每个时隙的总比特数 N_layers = 2; % 层数 q_m = 4; % 星座中的符号数 N_RE = N_SC*N_symbs_per_slot; % 一个时隙中的总资源元素数 R = N_bits/N_RE; % 信息速率 % 生成随机数据 data_bits = randi([0,1],N_bits,1); % 生成QPSK调制的星座图 qpsk_symbs = zeros(1,q_m); qpsk_symbs(1) = complex(1,1); qpsk_symbs(2) = complex(-1,1); qpsk_symbs(3) = complex(-1,-1); qpsk_symbs(4) = complex(1,-1); % 将随机数据映射到星座图 data_symbs = zeros(N_RE*N_layers,1); for i=1:N_RE*N_layers data_symbs(i) = qpsk_symbs(bi2de(data_bits((i-1)*2+1:i*2)+1,'left-msb')+1); end % 生成PDSCH DMRS符号序列 pdsch_dmrs_symbs = zeros(N_RE,1); for i=1:N_RE n_SCID = mod(floor((i-1)/N_sc_RB),2); n_RS = mod(i-1,N_sc_RB); if (n_RS<4) pdsch_dmrs_symbs(i) = complex(1,1); else alpha = 2*pi/3*(n_SCID+floor(n_RS/4)); pdsch_dmrs_symbs(i) = complex(cos(alpha),sin(alpha)); end end % 生成PDSCH DMRS矩阵 pdsch_dmrs_matrix = zeros(N_RE,N_layers); for i=1:N_layers pdsch_dmrs_matrix(:,i) = pdsch_dmrs_symbs; end % 生成PDSCH符号序列 pdsch_symbs = data_symbs.*pdsch_dmrs_matrix; % 生成OFDM符号序列 ofdm_symbs = zeros(N_SC,N_symbs_per_slot,N_layers); for i=1:N_layers ofdm_symbs(:,:,i) = ifft(pdsch_symbs(:,i),N_SC); end % 添加循环前缀 ofdm_symbs_cp = zeros(N_SC+N_sc_RB,N_symbs_per_slot,N_layers); ofdm_symbs_cp(1:N_sc_RB,:,:) = ofdm_symbs(N_SC-N_sc_RB+1:N_SC,:,:); ofdm_symbs_cp(N_sc_RB+1:N_SC+N_sc_RB,:,:) = ofdm_symbs(:,:,:); ofdm_symbs_cp(:,:,1) = [ofdm_symbs_cp(:,N_symbs_per_slot,:);ofdm_symbs_cp(:,:,1)]; for i=2:N_symbs_per_slot ofdm_symbs_cp(:,:,i) = [ofdm_symbs_cp(:,i-1,i);ofdm_symbs_cp(:,:,i)]; end % 将OFDM符号序列转换为时间域的信号 tx_signal = reshape(ofdm_symbs_cp,N_SC+N_sc_RB,N_symbs_per_slot*N_layers); % 解扰PDSCH符号序列 rx_data_symbs = pdsch_symbs./pdsch_dmrs_matrix; % 将PDSCH符号序列映射回比特序列 rx_data_bits = zeros(N_bits,1); for i=1:N_RE*N_layers rx_data_bits((i-1)*2+1:i*2) = de2bi(find(qpsk_symbs==rx_data_symbs(i))-1,2,'left-msb'); end % 计算误码率 num_errors = sum(xor(data_bits,rx_data_bits)); ber = num_errors/N_bits; ``` 上述代码实现了5G NR PDSCH DMRS解扰的全流程,包括随机数据生成、星座映射、PDSCH DMRS序列生成、PDSCH符号序列生成、OFDM符号序列生成、循环前缀添加、信号转换、PDSCH符号序列解扰、比特映射、误码率计算等步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值