Ms thesis

Discussion in 'Programmer's Corner' started by coolbreeze11, Jan 25, 2010.

  1. coolbreeze11

    Thread Starter New Member

    Jan 25, 2010
    1
    0
    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
     
Loading...