51 lines
2.3 KiB
Matlab
51 lines
2.3 KiB
Matlab
|
||
function [SysParameters,WaveformPara] = WaveformNumerologyCal(PacketSize,NumerologySel,MCS_no)
|
||
%% 函数说明:计算系统链路的参数
|
||
N_FFT = NumerologySel(1); CPratio = NumerologySel(2); PilotInterval = NumerologySel(3);
|
||
%% 系统参数
|
||
SysParameters.ShowTiming =true;
|
||
SysParameters.ShowPAPR =false;
|
||
SysParameters.ShowFigure =true;
|
||
SysParameters.ShowPathGain =true;
|
||
SysParameters.SaveSimData =false;
|
||
|
||
WaveformPara.FrameType ='Data'; % Control为控制短帧,Data为数据帧,Audio为语音帧
|
||
|
||
% 波形参数
|
||
WaveformPara.PacketSize = PacketSize;
|
||
WaveformPara.Payload = WaveformPara.PacketSize*8;
|
||
WaveformPara.PayloadCRC = 32;
|
||
%--
|
||
WaveformPara.NullRatio = 1/4;
|
||
WaveformPara.N_FFT = N_FFT;
|
||
WaveformPara.CPratio = CPratio;
|
||
WaveformPara.PilotPattern = 'block';
|
||
WaveformPara.PilotInterval = PilotInterval;
|
||
|
||
WaveformPara.CP_Len = WaveformPara.N_FFT*WaveformPara.CPratio; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||
WaveformPara.SymbolLen = WaveformPara.N_FFT*(WaveformPara.CPratio+1);
|
||
WaveformPara.UsedSubcarrier = (1-WaveformPara.NullRatio)*WaveformPara.N_FFT-1;
|
||
WaveformPara.NullSubcarrier = WaveformPara.NullRatio*WaveformPara.N_FFT;
|
||
%--
|
||
|
||
WaveformPara.Mod = MCS_no(1);
|
||
WaveformPara.Modulation = log2(WaveformPara.Mod);
|
||
WaveformPara.CodeRate = (MCS_no(2)-1)/MCS_no(2);
|
||
puncpat=[1,1,0,1,1,0,0,1,1,0];
|
||
WaveformPara.puncpat = puncpat(1:2*(MCS_no(2)-1));
|
||
%---------------------------------------------
|
||
|
||
WaveformPara.BitsPerSig = WaveformPara.UsedSubcarrier*WaveformPara.Modulation;
|
||
WaveformPara.DataFrame = ceil((WaveformPara.Payload+WaveformPara.PayloadCRC)/WaveformPara.CodeRate/WaveformPara.BitsPerSig);
|
||
WaveformPara.DataPadding = WaveformPara.DataFrame*WaveformPara.BitsPerSig - floor((WaveformPara.Payload+WaveformPara.PayloadCRC)/WaveformPara.CodeRate);
|
||
|
||
WaveformPara.PilotNum = ceil(WaveformPara.DataFrame/WaveformPara.PilotInterval);
|
||
WaveformPara.FrameSymNum = WaveformPara.DataFrame+WaveformPara.PilotNum;
|
||
|
||
WaveformPara.FrameConstelNum = WaveformPara.UsedSubcarrier * WaveformPara.DataFrame;
|
||
WaveformPara.FrameLen = WaveformPara.SymbolLen * WaveformPara.FrameSymNum;
|
||
|
||
WaveformPara.InterleavLen = 4080;
|
||
end
|
||
|