📄 rayleigh11_h_inter2.m
字号:
clc;
close all;
clear all;
%***************************************************************
m=2; %modulation
Es=1;
len=1000000;
st2 = 4831; % States for random number generator
trel = poly2trellis(3,[6 7]); % Define trellis
msg = randint(len,1); % Random data
code = convenc(msg,trel); % Encode
inter=randintrlv(code,st2); %interleaving
tblen = 5; % Traceback length
%s = pskmod(code,m); % MPSK signal
s=1-2*inter;
index=1
%N_0=10.^(0:-.2:-2);
%for sig_n2 = N_0
r1 = [];
r2 = [];
r3 = [];
n1 = [];
n2 = [];
n3 = [];
for SNR = [0:2:16]
%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(1) + j*randn(1));
%
% % received signal
% y = h.*s + n;
%
% % maximum ratio combining
% z = conj(h).*y;
y=h*s;
z=awgn(y, SNR, 'measured');
%rec=conj(h).*z;
rec = exp(-j*angle(h))*z;
%rec=z./h;
%demodulation
%demod=pskdemod(rec,m);
deinter = randdeintrlv(rec,st2);
%x=1-2*deinter;
ucode=real(deinter);
% 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:16,r1,'r-',0:2:16,r2,'g-',0:2:16,r3,'b-')
legend('Hard', 'Soft with quant', 'Soft without quant');
hold on
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -