上期讲到PSS阶段频偏估计,包括整数倍频偏估计和小数倍频偏估计,但是未用MATLAB给大家实现,本期用MATLAB实现:
function [freq_offet,N_ID_2,frameHead] = PSS_det(rxSig_init,params)
%
%
%
% coding time 2024.09.11
pssThr = 25;
N = 128;
root_set = [25 29 34];
segL = N/params.pss_segNum;
cs_sample_rate = 1.92e6; %30.72M-> 1.92M 16 down sample
IntCFO_set = [-1 0 1]*params.SubcarrierSpacing;
corr_result = zeros(3,3,params.pss_combin_num,params.cell_search_window_len,params.pss_segNum);
%% first corr with local pss signal
for IntIdx = 1:3
rxSig = rxSig_init.*exp(2*pi*1i*IntCFO_set(IntIdx)*(1:length(rxSig_init))/cs_sample_rate);
for N_ID_2_idx=1:3
pss_local_ifft128 = pss_gen(root_set(N_ID_2_idx));
for combin_idx = 1:params.pss_combin_num
rxSig_temp = rxSig((combin_idx-1)*5*1920+1:combin_idx*6*1920);