function [rxDataModLs] = rx_PilotBlockChanEst_CPrand(rAddAWGN,ChanPara,WaveformPara,CPset,symbolNum,SysParameters) N = WaveformPara.N_FFT; N_Used = WaveformPara.UsedSubcarrier; L = WaveformPara.CP_Len; m = WaveformPara.PilotNum; pilot = WaveformPara.pilot; % rxOFDMsym = reshape(rAddAWGN,WaveformPara.SymbolLen,WaveformPara.FrameSymNum); % rxOFDMcore = rxOFDMsym(L+1:L+N,:); % 去CP的地方 rxOFDMcore = []; % 将矩阵操作转换成对列操作 kk1=1; lenCPset = length(CPset); if lenCPset0 hLs = [kron(hLs(:,1:m-1),ones(1,WaveformPara.PilotInterval)),kron(hLs(:,m),ones(1,mod(WaveformPara.DataFrame,WaveformPara.PilotInterval)))]; else hLs = kron(hLs(:,1:m),ones(1,WaveformPara.PilotInterval)); end eqDataModLs = zeros(N_Used,WaveformPara.DataFrame); for i = 1:WaveformPara.DataFrame eqDataModLs(:,i) = rxDataRemovPilot(:,i)./hLs(:,i); end rxDataModLs = reshape(eqDataModLs,[],1); end