%% Create time domain signal:
tmp = zeros(h.NFFT, 1);
if h.slMode > 0 % sidelink mode
tmp(h.NFFT/2-(h.N_pss_cazac-1)/2+1:h.NFFT/2+(h.N_pss_cazac-1)/2) = h.psss_symbols(1:h.N_pss_cazac-1);
elseif h.slMode == 0 % legacy LTE mode, not fully tested/supported yet
ind = [(h.NFFT/2-(h.N_pss_cazac-1)/2:h.NFFT/2); (h.NFFT/2+2:(h.N_pss_cazac-1)/2+1)] ;
tmp(ind) = h.psss_symbols(1:h.N_pss_cazac-1);
end
% IFFT
Tmp = ifft(ifftshift(tmp));
% Normalize power:
Tmp = h.NFFT/sqrt(h.NSLRB*h.NRBsc)*Tmp;
% Add CP:
Tmp = [Tmp(end-h.cpLenR+1:end); Tmp];
% Shift by half subcarrier:
h.psss_time_domain = Tmp.*exp(2i*pi*(-h.cpLenR:h.NFFT-1)'/h.NFFT/2);
首先要明白,变换到时域也就是OFDM调制过程中由时频域变换到时域的过程,即IFFT变换,然后加CP。
不解的地方在于最后这一步,为啥还要额外偏移半个子载波
解释:LTE采用的折衷方案是将基带数字的DC与模拟的DC错开半个子载波宽度(即7.5KHz),这样本振泄漏在模拟DC部分产生的干扰,不会影响到基带DC处的信号
更详细的解释:https://www.cnblogs.com/mway/p/6627989.html