%% Generate The Random Sequence
InputData = randi([0 1],InputDataLength,1);
trellis = poly2trellis(9,{'1 + x + x^2 + x^3 + x^5 + x^7 + x^8', ...
'1 + x^2 + x^3 + x^4 + x^8'}); % Define trellis.(2.1.8)
Con_Data = convenc(InputData,trellis);
%% MSK modulate
MskMod = comm.MSKModulator('BitInput', BitInput,...
'InitialPhaseOffset',InitialPhaseOffset,...
'SamplesPerSymbol',SamplesPerSymbol);
AirSignal = awgn(ModSignal,SNR(i),'measured');
經過維特比譯碼後的獲得的信息比特進行誤碼率計算:
DataHard = vitdec(DeModSignal,trellis,16,'cont','hard');
BitError = comm.ErrorRate('ReceiveDelay',24);
Matlab仿真代碼:MSK_Convolution.m