5G NR时域结构

5G NR时域结构

在时域上,NR支持基于符号灵活定义的帧结构,以满足各种时延需求。在LTE TDD中,共定义了7种帧结构、9种特殊子帧格式,LTE TDD帧以5ms和10ms为周期,且以准静态配置为主,在高层配置了某种帧结构后,网络在一段时间内均采用该帧结构。不同于LTE TDD,NR为满足更细颗粒度的调度需求,更多的是定义大量的时隙格式。并且NR一开始设计就支持准静态配置和快速配置,支持更多周期配置,如0.5ms、0.625ms、1ms、1.25ms、2ms、2.5ms、5ms、10ms。此外,时隙中的符号可以配置为上行、下行或灵活符号,其中灵活符号可以通过物理层信令配置为下行或上行符号,以灵活支持突发业务。

3.1 自包含时隙/子帧
如下图所示,NR中的时隙可配置为3种类型,其中Type 1为下行时隙,Type 2为上行时隙,Type 3为灵活时隙。Type 3又称为自包含时隙(Self-contained Slot),具体可细分为DL-dominant时隙和UL-dominant时隙。DL-dominant 时隙中的上行传输符号可用于上行控制信息以及参考信号SRS的传输,同理,UL-dominant 时隙中的下行传输符号可用于下行控制信息的传输。

  • 1
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
5G NR PSS(Primary Synchronization Signal)是5G NR同步信号中的一种,用于UE搜索和同步5G NR基站。下面是5G NR PSS信号生成的步骤: 1. 生成PSS序列:PSS序列是由两个长度为31的m序列(m0和m1)通过加权和得到的。加权和的公式为:s(n)=(-1)^m0(n)+j*(-1)^m1(n),其中n为序列的下标,j为虚数单位。 2. 生成IQ调制信号:将PSS序列映射到IQ调制信号上,得到复数序列s(n)=[I(n),Q(n)]。其中,I(n)和Q(n)分别为实部和虚部。 3. 进行OFDM调制:将IQ调制信号进行OFDM调制,得到信号s(n)。OFDM调制的过程包括将IQ调制信号进行IDFT变换、添加循环前缀、并将信号映射到子载波上。 4. 将PSS信号插入到物理资源块(PRB)中:将PSS信号插入到物理资源块(PRB)中,得到PSS信号的频资源图。 5. 将PSS信号映射到子帧上:将PSS信号映射到子帧上,得到PSS信号的波形。 下面是Python代码示例: ```python import numpy as np # 生成m序列 def m_sequence(n, c_init): c = np.zeros(n) c[0] = 1 for i in range(1, n): c[i] = c[i-1] if c_init == 0 else (-1)*c[i-1] return c # 生成PSS序列 def pss_sequence(): m0 = m_sequence(31, 0) m1 = m_sequence(31, 1) s = np.zeros(62, dtype=complex) for i in range(31): s[i] = (-1)**m0[i] + 1j*(-1)**m1[i] s[i+31] = (-1)**m1[i] + 1j*(-1)**m0[i] return s # 生成IQ调制信号 def iq_modulation(s): n = len(s) I = np.real(s) Q = np.imag(s) return np.vstack((I, Q)).reshape(2*n, order='F') # 进行OFDM调制 def ofdm_modulation(s, Nfft, Ncp): n = len(s) s_ifft = np.fft.ifft(s, Nfft) s_cp = np.hstack((s_ifft[-Ncp:], s_ifft)) s_ofdm = np.zeros(Nfft, dtype=complex) s_ofdm[::2] = s_cp[:n//2] s_ofdm[1::2] = s_cp[n//2:] return s_ofdm # 将PSS信号插入到物理资源块(PRB)中 def insert_pss_to_prb(pss, prb_idx, Nrb): Nprb = len(prb_idx) Nsymb = 14 Nfft = 2048 Ncp = 160 s_prb = np.zeros((Nprb, Nsymb, Nfft), dtype=complex) for i in range(Nprb): for j in range(Nsymb): s_prb[i, j, :] = ofdm_modulation(pss, Nfft, Ncp) s_prb_all = np.zeros((Nrb, Nsymb, Nfft), dtype=complex) s_prb_all[prb_idx, :, :] = s_prb return s_prb_all # 将PSS信号映射到子帧上 def map_pss_to_subframe(s_prb_all): Nsymb = 14 Nfft = 2048 Ncp = 160 s_subframe = np.zeros((Nsymb*Nfft+2*Ncp), dtype=complex) for i in range(Nsymb): for j in range(len(s_prb_all)): s_subframe[i*Nfft+j*Nfft*Nsymb:i*Nfft+(j+1)*Nfft*Nsymb] = s_prb_all[j, i, :] return s_subframe # 生成PSS信号 def generate_pss(prb_idx, Nrb): pss = pss_sequence() s_prb_all = insert_pss_to_prb(pss, prb_idx, Nrb) s_subframe = map_pss_to_subframe(s_prb_all) return s_subframe ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值