cyclic reduandcy check generation/detection for 8-psk and 16-QAM
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 PSK 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!