필터 지우기
필터 지우기

cyclic reduandcy check generation/detection for 8-psk and 16-QAM

조회 수: 2 (최근 30일)
Noel Teku
Noel Teku 2020년 5월 19일
편집: Noel Teku 2020년 5월 19일
Hello,
I've been working on adding cycilc redudancy checks (CRCs) for transmissions through a general FIR channel to calculate packet error rate. I've been using the built-in functions for CRC generation and detection as well as modualtion and demodulation. I've also added an RLS decision-feedback equalizer to help mitigate some of the packet losses. My program so far attains small packet error rates for BPSK and QPSK at high SNR; however, I've been having trouble getting it to work for higher order modulations; specifically, 8-PSK and 16-QAM. The equalizer has been able to attain a BER of 10^-2 at 15 dB for 8-PSK and 10^-1 at 15 dB for 16-QAM.
With these results, I feel that the packet error rates should be slightly better than what they currently are (which is approximately 100% error). I don't know if I'm doing something wrong with the built-in CRC functions or randomd data generation? I've attached the code for the 8-PSK modulation and CRC generation below. Any help would be appreciated.
%8-psk modulation and CRC generation
poly = 'z4+z3+z2+z+1';
crcgenerator = comm.CRCGenerator(poly);
data = randi([0 7],1000,1);
data_test = crcgenerator(data(TrainingLen/2+1:end)); % calculating CRC on portion of testing data
data = vertcat(data(1:TrainingLen/2), data_test); %concatenating training data (first entry)/testing data (second entry generated with CRC) for equalizer.
padd = randi([0 1],FF1+1,1); %padding additional values for equalizer to process CRC bits
data = vertcat (data, padd); %final concatenation for data
modData_orig = pskmod(data,8,0,'gray'); % 8-psk modulation.

답변 (0개)

카테고리

Help CenterFile Exchange에서 PSK에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by