?? rayleigh9_awgn.m
字號:
clc;
close all;
clear all;
%***************************************************************
m=2; %modulation
Es=1;
trel = poly2trellis(3,[6 7]); % Define trellis
msg = randint(100000,1); % Random data
code = convenc(msg,trel); % Encode
tblen = 5; % Traceback length
%s = pskmod(code,m); % MPSK signal
s=1-2*code;
index=1
%N_0=10.^(0:-.2:-2);
%for sig_n2 = N_0
r1 = [];
r2 = [];
r3 = [];
n1 = [];
n2 = [];
n3 = [];
for SNR = [0:2:8]
%rho = Es./N_0;
% % Map "0" bit to 1.0 and "1" bit to -1.0. Also add AWGN.
% ucode = real(awgn(1-2*code, 3, 'measured'));
%NOISE
% n = sqrt(sig_n2/2)*(randn(len,M) + j*randn(len,M));
%
% %channel coefficients
% h = sqrt(1/2)*(randn(len,M) + j*randn(len,M));
%
% % received signal
% y = h.*s + n;
%
% % maximum ratio combining
% z = conj(h).*y;
rec=awgn(s, SNR, 'measured');
%demodulation
%demod=pskdemod(rec,m);
ucode=real(rec);
% Hard decision decoding using binary inputs
hcode = ucode<0;
decoded1 = vitdec(hcode,trel,tblen,'cont','hard');
% Soft decision decoding with quantized inputs
[x,qcode] = quantiz(ucode,[-.75 -.5 -.25 0 .25 .5 .75],...
7:-1:0); % Values in qcode are between 0 and 2^3-1.
decoded2 = vitdec(qcode',trel,tblen,'cont','soft',3);
% Soft decision decoding using unquantized inputs
decoded3 = vitdec(ucode,trel,tblen,'cont','unquant');
% Compute bit error rates, using the fact that the decoder
% output is delayed by tblen symbols.
[n1,r1(index)] = biterr(double(decoded1(tblen+1:end)),msg(1:end-tblen));
[n2,r2(index)] = biterr(decoded2(tblen+1:end),msg(1:end-tblen));
[n3,r3(index)] = biterr(decoded3(tblen+1:end),msg(1:end-tblen));
index=index+1
end
disp(['The bit error rates are: ',num2str([r1 r2 r3])])
semilogy(0:2:8,r1,'r-',0:2:8,r2,'g-',0:2:8,r3,'b-')
legend('Hard', 'Soft with quant', 'Soft without quant');
hold on
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -