function [serialOFDMsym,pilot,serialFrameLen,symbolNum] = tx_FFTSymbolGen_PilotBlockPN_CPrand(dataModInMatrix,WaveformPara,CPset,SysParameters) numOfdmSymbol = WaveformPara.FrameSymNum; N_used = WaveformPara.UsedSubcarrier; CP_Len = WaveformPara.CP_Len; pnSequence = comm.PNSequence('Polynomial',[8 6 5 4 0], ... 'SamplesPerFrame',N_used,'InitialConditions',[0 0 0 0 0 0 0 1]); pilotPower = WaveformPara.Power_sym; pilot = generatePilot(pnSequence,pilotPower); m = WaveformPara.PilotNum-1; dataModAddPilot = zeros(N_used,numOfdmSymbol); for i = 1:m dataModAddPilot(:,(i-1)*(WaveformPara.PilotInterval+1)+1:i*(WaveformPara.PilotInterval+1)) = ... [pilot,dataModInMatrix(:,(i-1)*WaveformPara.PilotInterval+1:i*WaveformPara.PilotInterval)]; end dataModAddPilot(:,m*(WaveformPara.PilotInterval+1)+1:end) = ... [pilot,dataModInMatrix(:,m*WaveformPara.PilotInterval+1:end)]; dataModAddPilot_shift = [zeros(1,WaveformPara.FrameSymNum);... dataModAddPilot(1:(N_used-1)/2,:);... zeros(WaveformPara.NullSubcarrier,WaveformPara.FrameSymNum);... dataModAddPilot(1+(N_used-1)/2:end,:)]; OFDMsym = ifft(dataModAddPilot_shift,[],1)*sqrt(WaveformPara.N_FFT); [~,symNum]=size(OFDMsym); serialOFDMsym = []; lenCPset = length(CPset); % 对列操作 if lenCPset