% vitdec 软判决
[y,qcode] = quantiz(deinter_noise,[-.75 -.5 -.25 0 .25 .5 .75],7:-1:0); decoded2 = vitdec(qcode,trel,tblen,'cont','soft',3); % 比较误码率
[num0,rat0] = biterr(r_0,msg);
[num1,rat1] = biterr(double(decoded1(tblen+1:end)),msg(1:end-tblen)); [num2,rat2] = biterr(double(decoded2(tblen+1:end)),msg(1:end-tblen)); ber0(n,x) = rat0; ber1(n,x) = rat1; ber2(n,x) = rat2; end end
ber0 = mean(ber0); ber1 = mean(ber1); ber2 = mean(ber2);
semilogy(snr_db,ber0,'b-o',snr_db,ber1,'r-s',snr_db,ber2,'k-p'); xlabel('SNR (dB)'); ylabel('BER');
legend('Uncoded','Hard Coded','Soft Coded');
title('Performance of convolutional code with rate 1/2');