QPSK с адаптивным выравниванием
Author
bitRate = 1000000;
numBitsPerFrame = 100;
bitsPerSymbol = 2;
numTrainSyms = 30;
pulseDelay = 8;
oversampleFactor = 8;
rolloffFactor = 0.2;
modOrder = 2^bitsPerSymbol;
numDataSymsPerFrame = numBitsPerFrame / bitsPerSymbol;
numSymsPerFrame = numDataSymsPerFrame + numTrainSyms;
qpskmod = EngeeComms.QPSKBasebandModulator(PhaseOffset = pi/4);
trainSig = qpskmod(rand(0:modOrder-1,numTrainSyms));
maxDoppler = 10;
numEqWeights = 15;
refTap = 8;
lambda = 0.95;
snrdB = 30;
symbolPeriod = bitsPerSymbol/bitRate;
chanSamplePeriod = symbolPeriod/oversampleFactor * 50/80;
pathDelays = [0 chanSamplePeriod];
pathGains = [0 -6];
numDataSymsPerFrame = numBitsPerFrame / bitsPerSymbol;
numSymsPerFrame = numDataSymsPerFrame + numTrainSyms;
initEqWeights = complex(zeros(numEqWeights));
eqDelay = refTap - 1;
trimTrainSig = trainSig[1:end-eqDelay];