?? detection.m
字號:
clear all;close all;clcp=[1 0 0 1 0 1;1 1 0 1 1 1];p=p(:,2:6);init=[1 1 1 1 1];state=kron(init,[1;1]);c=[];for i=1:31 output=mod(sum(p.*state,2),2); state=[output state(:,1:4)]; c=[c output];end;a=2*c(1,:).'-1;b=2*c(2,:).'-1;s=[];for i=1:31 b=[b(2:31);b(1)]; s=[s a.*b];end;s1=s(:,3)./sqrt(31);s2=s(:,4)./sqrt(31);s3=s(:,5)./sqrt(31);s4=s(:,6)./sqrt(31);s5=s(:,7)./sqrt(31);s6=s(:,8)./sqrt(31);s7=s(:,9)./sqrt(31);b1=rand(1,1000);b2=rand(1,1000);b3=rand(1,1000);b4=rand(1,1000);b5=rand(1,1000);b6=rand(1,1000);b7=rand(1,1000);%----------定義6個用戶數據A1=1;A2=1.4125;A3=1.4125;A4=1.4125;A5=1.4125;A6=1.4125;A7=1.4125;%---------各用戶增益c1=s1;for i=1:1000 if(b1(i)>0.5) b1(i)=1; else b1(i)=-1; endendr1=c1*b1;c2=s2;for i=1:1000 if(b2(i)>=0.5) b2(i)=1; else b2(i)=-1; endendr2=c2*b2;c3=s3;for i=1:1000 if(b3(i)>0.5) b3(i)=1; else b3(i)=-1; endendr3=c3*b3;c4=s4;for i=1:1000 if(b4(i)>0.5) b4(i)=1; else b4(i)=-1; endendr4=c4*b4;c5=s5;for i=1:1000 if(b5(i)>0.5) b5(i)=1; else b5(i)=-1; endendr5=c5*b5;r=A1*r1+A2*r2+A3*r3+A4*r4+A5*r5;SNR=20;r=awgn(r,SNR);%---------------------LCDPFCMA-------------------------w=s1;u=1*10^-3;B=eye(31)-s1*s1';x=zeros(31,1);H=eye(31);ticfor i=1:600% if mod(i,100)==0% i% end X=r(:,i); y(i)=w'*X; e=2*(y(i)^2-1)*y(i); g=e*B*X; if i==1 p=-H*g; R=eye(31); else j=x-x1; k=g-g1; H=H-(H*j*j'*H)/(j'*H*j)+k*k'/(k'*k);% H=H-(H*k*k'*H)/(k'*H*k)+(j*j')/(k'*j);% H=H-(H*j*j'*H)/(j'*H*j)+k*k'/(k'*k)+(j'*H*j)*((k)/(k'*k)-(H*j)/(j'*H*j))'*((k)/(k'*k)-(H*j)/(j'*H*j));% H=H-(H*k*k'*H)/(k'*H*k)+(j*j')/(k'*j)+(k'*H*k)*((j)/(k'*j)-(H*k)/(k'*H*k))'*((j)/(k'*j)-(H*k)/(k'*H*k)); p=-H*g; end g1=g; x1=x; x=x+u*p; w=s1+B*x; n=(A2*w'*s2)^2+(A3*w'*s3)^2+(A4*w'*s4)^2+(A5*w'*s5)^2+w'*0.01*w; SINR11(i)=((A1*w'*s1)^2)/n; endtoc%---------------------LSCMA-------------------------w=s1;R=eye(31);ticfor i=1:600% if mod(i,100)==0% i% end X=r(:,i); y(i)=w'*X; d=y(i)./abs(y(i)); e=y(i)-d; R=R+X*X'; w=w-pinv(R)*X*e;% X=r;% y=w'*X;% d=y./abs(y);% e=y-d;% R=X*X';% w=pinv(R)*X*d'; n=(A2*w'*s2)^2+(A3*w'*s3)^2+(A4*w'*s4)^2+(A5*w'*s5)^2+w'*0.01*w; SINR21(i)=((A1*w'*s1)^2)/n;endtoc%---------------------LCCMA-------------------------w=s1;u=1*10^-3;B=eye(31)-s1*s1';x=zeros(31,1); H=eye(31);ticfor i=1:600% if mod(i,100)==0% i% end X=r(:,i); y(i)=w'*X; g=B'*(y(i)^2-1)*y(i)*X; x=x+u*g; w=s1-B*x; n=(A2*w'*s2)^2+(A3*w'*s3)^2+(A4*w'*s4)^2+(A5*w'*s5)^2+w'*0.01*w; SINR31(i)=((A1*w'*s1)^2)/n;endtoci=1:10:600;plot(0.00016917*i,10*log10(SINR11(i)),'k-');hold oni=1:70;plot(0.00144250*i,10*log10(SINR21(i)),'k--');i=1:10:600;plot(0.00016500*i,10*log10(SINR31(i)),'k:');legend('LCDFPCMA','LSCMA','LCCMA',4)xlabel('迭代時間(S)');ylabel('信號干擾噪聲比SINR(dB)');title('CMA多用戶檢測');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -