⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rayleigh11_h_inter2.m

📁 Performance analysis of wireless networking with interleaving on the receiver side over Rayleigh fad
💻 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 + -