NSSS 为NBIOT辅同步信号,周期为20ms,只在偶数帧的子帧9出现,其包含了小区PCI和80ms帧定时信息,在一个子帧中,频域方向占据一个RB,时域方向占据11个ofdm symbol,这样做的原因也是在inband模式下避开LTE的PDCCH信道,其理论生成跟PSS一样
采用ZC序列生成,其总的个数为131补0到132个,在设计之初也是尝试了多钟组合,包括长度为61,71,83占据6或者7个ofdm symbol,后来仿真发现长度越长其性能越好,符合预期,在保证正交的基础上,长度越长有用的信息就越多,其性能就越好,其生成公式如下:
NSSS序列,利用不同的小区有不同PCI来生成不同的根序列u,如下:
u = mod(pci,126) + 3
不同的PCI来生成不同的扰码组合bq(n),扰码序列有Hadamard序列生成,
Hadamard序列的生成可调用MATLAB函数hadamard(n)
其中:s0=0,s1=31,s2=63,s=127;
利用80ms帧定时信息来生成不同的循环移位序列来指示帧定时,其中80ms中有4个NSSS。
matlab实现
clc,clear,close all;
%
%
%
%
% author nb_lte_5g
%老牛
% code time 2024.08.21 19.21
%
%
frame = 32; % current frame number
pci = 45; % cell id
nsss_seq = zeros(1,132);
u=mod(pci,126)+3;
q=floor(pci/126);
b_q_hadamard=[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1;
1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1;
1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1;
1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1
];
b_q=b_q_hadamard(q+1,:);
for idx=0:131
n=mod(idx,131);
m =mod(idx,128);
nsss_seq(idx+1) = b_q(m+1)*exp(-1i*pi*u*n*(n+1)/131);
end
nsss_sequence_taotal=zeros(4,132);
for mm=0:3
selta_f=33/132*mm;
for n=0:131
nsss_sequence_taotal(mm+1,n+1) = nsss_seq(n+1) * exp(-1i*2*pi*selta_f*n);
end
end
%select current frame nsss
frame_20ms_Idex = mod(floor(frame/2),4);
nsss=nsss_sequence_taotal(frame_20ms_Idex+1,:);
请关注微信号订阅号:nb_lte_5g ,老牛nb5g老牛每天带你学通信同步更新
努力只能及格,拼命才能优秀。
学通信任道重远,老牛带你走最捷径的路.