NBIOT同步过程需要完成NPSS同步和NSSS同步,NPSS同步作为同步的第一步显得至关重要,其同步分为粗同步和精同步,本期主要完成粗同步,根据3GPP协议 NPSS分布在每个帧的子帧5,从生成公式上看,本身不携带本小区的任何信息,所有小区的NPSS信号都相同,这点有区别于LTE和5G,所以在同频多小区的时候特别会受到邻区的干扰,实际网络中,使用相位差分方法估计时频偏,不可以使用NPSS,要使用NRS和NSSS,NPSS在频域占据11个子载波,时域占据14个符号中的11个,这是因为要避开LTE的PDCCH信道,按照子载波间隔15K,PSS实际占据11*15k=165k,根据奈奎斯特采样定理实际中粗同步的采样率可以从1.92M降低为1.92M/8就可以完全不失真的获取到NPSS所有的信息。
在通信中,同步阶段要使用自相关的话,信号发送本身就有重复的信号,否则无法利用自相关来获取同步位置,NBIOT中NPSS本身也不包含重复信号,但是时域扩展码是固定且已知的,而公式生成中的ZC序列都是相同的,所以在时域上解扰后,剩余的都是相同的ZC序列,所以可以使用自相关来实现粗同步。
粗同步MATLAB代码实现:
clc,clear,close all;
% rxSig = zeros(1,1920*12);
rxSig = load('npss.txt');
Sl = [1,1,1,1,-1,-1,1,1,1,-1,1];
rxSig240k = rxSig(1:8:1920*11);
xcorr_result = zeros(4,2400);
for n = 0:2400-1
R = reshape(rxSig240k(n+(1:17*11)),17,11);
for symb = 1:4
accuValue = 0;
for m = 1:11-symb
accuValue = accuValue + Sl(m)*Sl(m+symb)*R(:,m)'*R(:,m+symb);
end
accuAvg = accuValue/(11-symb);
xcorr_result(symb,n+1) = accuAvg;
end
end
代码未完待续,若想获取完整的代码,请关注微信号订阅号:nb_lte_5g ,老牛nb5g老牛每天带你学通信同步更新
学通信任道重远,老牛带你走最捷径的路。