This is code for parallel interference cancelltion in ds cdma using matrix algebraic approach.
Please check the code and let me know if iam doin any mistake . Also I need to apply slow and fast rayleigh fading in this model.

The rcd signal is R = SAB + N
where R,S,A,B are matrices
The matlab code is given below :
close all
clear all;
clc;
warning off all

K = 27; %No. of users
Navg = 1e3; %No. of repititions
snr = 5:1:25; %SNR RANGE

Sv = (10.^(-snr/10)); %Noise variance in different SNR
A = eye(K); %input power
%Get signature sequences
load GS31;
S = GS31(1:K,;
S= S';
Lc = length(S(:,1));
Sn= S./sqrt(Lc); %Normalize energy of signature waveforms
R = Sn'*Sn; % Calculate correlation matrix

corr=(R-eye(size(R)));

h = waitbar(0,'WAIT...');
for t = 1:Navg
waitbar(t/Navg);
for j = 1:length(snr)
noise =(Sv(j))^.5*randn(Lc,1);
b=2*(randint(K,1)-0.5);
BT=Sn*A*b;
r=awgn(BT,snr(j));
% r=BT+noise;
y = Sn'*r;

ysdec = inv(R)*Sn'*r;

YMF = sign(y);
YDEC= sign(ysdec);
novector(1:K) = Sv(j);
sigma2= diag(novector);

t1=R+sigma2;
ysmmse = (inv ( t1 ))* y;
YMMSE= sign(ysmmse);

%%CPIC

yinit=zeros(K,1);
ypic1= (Sn'*r) + yinit ;
YPIC1 = sign(ypic1);

yinit2=ypic1;
ypic2=(Sn'*r) - ( corr*A*yinit2 );
YPIC2 = sign(ypic2);

yinit3=ypic2;
ypic3=(Sn'*r) - ( corr*A*yinit3 );
YPIC3 = sign(ypic3);


yinit4= ypic3;
ypic4=(Sn'*r) - ( corr*A*yinit4 );
YPIC4 = sign(ypic4);

yinit5= ypic4;
ypic5=(Sn'*r) - ( corr*A*yinit5 );
YPIC5 = sign(ypic5);


yinit6=ypic5;
ypic6=(Sn'*r) - ( corr*A*yinit6 );
YPIC6 = sign(ypic6);



yinit7=ypic6;
ypic7=(Sn'*r) - ( corr*A*yinit7 );
YPIC7 = sign(ypic7);


yinit8=ypic7;
ypic8=(Sn'*r) - ( corr*A*yinit8 );
YPIC8 = sign(ypic8);



ERMF(j)= length(find (YMF ~= b))/K;
ERDEC(j)= length(find (YDEC ~= b))/K;
ERMMSE(j)= length(find (YMMSE ~= b))/K;
ERPIC1(j)= length(find (YPIC1 ~= b))/K;
ERPIC2(j)= length(find (YPIC2 ~= b))/K;
ERPIC3(j)= length(find (YPIC3 ~= b))/K;
ERPIC4(j)= length(find (YPIC4 ~= b))/K;
ERPIC5(j)= length(find (YPIC5 ~= b))/K;
ERPIC6(j)= length(find (YPIC6 ~= b))/K;
ERPIC7(j)= length(find (YPIC7 ~= b))/K;
ERPIC8(j)= length(find (YPIC8 ~= b))/K;
end
EERMF(t,=ERMF;
EERDEC(t,=ERDEC;
EERMMSE(t,=ERMMSE;
EERPIC1(t,=ERPIC1;
EERPIC2(t,=ERPIC2;
EERPIC3(t,=ERPIC3;
EERPIC4(t,=ERPIC4;
EERPIC5(t,=ERPIC5;
EERPIC6(t,=ERPIC6;
EERPIC7(t,=ERPIC7;
EERPIC8(t,=ERPIC8;
end


BERMF = smooth(mean(EERMF,1));
BERDEC = smooth(mean(EERDEC,1));
BERMMSE = smooth(mean(EERMMSE,1));
BERPIC1 = smooth(mean(EERPIC1,1));
BERPIC2 = smooth(mean(EERPIC2,1));
BERPIC3 = smooth(mean(EERPIC3,1));
BERPIC4 = smooth(mean(EERPIC4,1));
BERPIC5 = smooth(mean(EERPIC5,1));
BERPIC6 = smooth(mean(EERPIC6,1));
BERPIC7 = smooth(mean(EERPIC7,1));
BERPIC8 = smooth(mean(EERPIC8,1));

semilogy(snr,BERMF,'k*-',snr,BERPIC1,'m^-',snr,BERPIC2,'rs-',snr,BERPIC3,'yo-',snr,BERPIC4,'k<-',snr,BERPIC5,'c^-',snr,BERPIC6,'y^-',snr,BERPIC7,'r>-',snr,BERPIC8,'bs-',snr,BERDEC,'g*-',snr,BERMMSE,'go-');
grid on
xlabel('SNR')
ylabel('Average BER')
legend('MF','Stage1','Stage2','Stage3','Stage4','Stage5','Stage6','Stage7','Stage8','DECOR','MMSE')
title('BER vs SNR--Conventional PIC-25 Users -AWGN Channel')
close(h)

Added after 1 minutes:

Dear all,

The : ) got replaced by a smiley.

I need urgent help regarding fading
thanks in advance