what is the problem in this convolutional code
조회 수: 1 (최근 30일)
이전 댓글 표시
THE CODE:
% rate 1/2 convolutional encoder
% define trellis
trellis = poly2trellis(7,[111 111]);
% define input and output
x = randi([0 1]);
y = convenc(x,trellis);
% define generator polynomials
g1 = [1 0 1 0 1 1 1 0];
g2 = [1 1 1 0 1 1 0 1];
% encode
y1 = mod(conv(y,g1),2);
y2 = mod(conv(y,g2),2);
% interleave
z = [y1;y2];
z = z(:)';
% modulate
M = 4;
k = log2(M);
y_tx = bi2de(reshape(z,k,length(z)/k).','left-msb');
% plot constellation
scatterplot(y_tx,1,0,'k*');
axis([-5 5 -5 5]);
% add noise
EbNo = 10;
snr = 10;
y_rx = awgn(y_tx,snr,'measured');
% demodulate
z_rx = de2bi(y_rx,k,'left-msb');
% de-interleave
y1_hat = z_rx(1:2:end);
y2_hat = z_rx(2:2:end);
% decode
tblen = 15;
y_hat = vitdec(y1_hat,trellis,tblen,'trunc','hard');
% plot BER
ber = berawgn(EbNo,'psk',M,'nondiff');
semilogy(EbNo,ber,'k*');
hold on;
ber = berawgn(EbNo,'psk',M,'nondiff');
semilogy(EbNo,ber,'ko');
legend('Theoretical BER','Empirical BER');
xlabel('Eb/No (dB)');
ylabel('Bit Error Rate');
THE ERROR:
Error using vitdec
Length of the input code vector must be a multiple of the number of bits in an
input symbol.
Error in test2 (line 67)
y_hat = vitdec(y1_hat,trellis,tblen,'trunc','hard');
WHAT DOES IT MEAN?
댓글 수: 0
답변 (1개)
Jan
2022년 10월 21일
There is another problem before:
% rate 1/2 convolutional encoder
% define trellis
trellis = poly2trellis(7,[111 111]);
% define input and output
x = randi([0 1]);
y = convenc(x,trellis);
% define generator polynomials
g1 = [1 0 1 0 1 1 1 0];
g2 = [1 1 1 0 1 1 0 1];
% encode
y1 = mod(conv(y,g1),2);
y2 = mod(conv(y,g2),2);
% interleave
z = [y1;y2];
z = z(:)';
% modulate
M = 4;
k = log2(M);
y_tx = bi2de(reshape(z,k,length(z)/k).','left-msb');
% plot constellation
scatterplot(y_tx,1,0,'k*');
axis([-5 5 -5 5]);
% add noise
EbNo = 10;
snr = 10;
y_rx = awgn(y_tx,snr,'measured');
% demodulate
z_rx = de2bi(y_rx,k,'left-msb');
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Error Detection and Correction에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!