資源簡介
分析并研究了DS-CDMA (直擴碼分多址) 通信系統(tǒng)中的兩種盲多用戶檢測算法,即最小均方(LMS) 算法和遞推最小二乘(RL S)。仿真實驗了在平穩(wěn)信道下、同步DS-CDMA系統(tǒng)中接收機應用這兩種盲多用戶檢測算法抑制多址干擾(MAI) 的能力,仿真實驗與理論推導相吻合。實驗與理論都表明,遞推最小二乘(RLS)算法能快速收斂、信干比大更具有實用性。

代碼片段和文件信息
clc
clear?all
N=31;%擴頻增益%
step=2000;
K=10;
S1=[1?1?1?1?1?-1?-1?-1?1?1?-1?1?1?1?-1?1?-1?1?-1?-1?-1?-1?1?-1?-1?1?-1?1?1?-1?-1];%a(n)=a(2)+a(-1)
S2=[1?-1?-1?-1?-1?1?-1?1?1?-1?1?-1?1?-1?-1?-1?1?1?1?-1?1?1?1?1?1?-1?-1?1?-1?-1?1];%a(n)=a(3)+a(2)+a(1)+a(-1)
for?i=1:N
????SS(i:)=(S1~=[S2(i:N)S2(1:i-1)]);
end
SS=SS*2-1;
S=SS(1:K:);
?
C(1:)=SS(1:);
C(2:N:)=rand(N-1N)*2-1;
for?i=2:N
????rou=C(i:)*C(1:i-1:).‘./dot(C(1:i-1:)C(1:i-1:)2).‘;
????C(i:)=C(i:)-rou*C(1:i-1:);
end
for?i=1:N
????C(i:)=C(i:)/sqrt(dot(C(i:)C(i:)));
end
C_null=C(2:N:);
SNR_db=[20303030303040404050];??%SNR?(in?dB)%
SNR=10.^(SNR_db./10);
A=sqrt(SNR./SNR(1));
%lms盲自適應多用戶檢測%
uplms=zeros(1step);
downlms=zeros(1step);
repeat_time=60;?%實驗重復次數(shù)%
for?repeat=1:repeat_time
????repeat;
????b=zeros(Kstep);
????b=sign(rand(Kstep)-0.5);
????noise=randn(Nstep);?
????noise=sqrt(10./SNR(1))*noise;%?Noise%
????for?i=1:K
????????Ab(i:)=A(i)*b(i:);
????end
????ystep=(Ab.‘*S).‘;
????ystep=ystep+noise;
????x=zeros(1N);
????mu=1e-6;
????for?i=1:step
????????Z=(S(1:)+x)*ystep(:i);
????????ZMF=S(1:)*ystep(:i);
????????x=x-mu*Z*(ystep(:i).‘-ZMF*S(1:));
????????xx(i:)=x;
????????c=S(1:)+x;
????????up1(i)=(c*S(1:).‘)^2;
????????down1(i)=(?c*(ystep(:i)-b(1i)*S(1:).‘)?)^2;?%SINR(i)=up1/down1;
????????y(i)=sign(c*ystep(:i));
????end
????uplms=uplms+up1;
????downlms=downlms+down1;
end
SINRlms=uplms./downlms;
SINR_dblms=10*log10(SINRlms);
plot(SINR_dblms‘r‘);
hold?on
%rls盲自適應多用戶檢測%
clear
N=31;
step=2000;
K=10;
S1=[1?1?1?1?1?-1?-1?-1?1?1?-1?1?1?1?-1?1?-1?1?-1?-1?-1?-1?1?-1?-1?1?-1?1?1?-1?-1];%a(n)=a(2)+a(-1)
S2=[1?-1?-1?-1?-1?1?-1?1?1?-1?1?-1?1?-1?-1?-1?1?1?1?-1?1?1?1?1?1?-1?-1?1?-1?-1?1];%a(n)=a(3)+a(2)+a(1)+a(-1)
for?i=1:N
????SS(i:)=(S1~=[S2(i:N)S2(1:i-1)]);
end
SS=SS*2-1;
S=SS(1:K:);
?
C(1:)=SS(1:);
C(2:N:)=rand(N-1N)*2-1;
for?i=2:N
????rou=C(i:)*C(1:i-1:).‘./dot(C(1:i-1:)C(1:i-1:)2).‘;
????C(i:)=C(i:)-rou*C(1:i-1:);
end
for?i=1:N
????C(i:)=C(i:)/sqrt(dot(C(i:)C(i:)));
end
C_null=C(2:N:);
SNR_db=[20303030303040404050];??%SNR?(in?dB)%
SNR=10.^(SNR_db./10);
A=sqrt(SNR./SNR(1));
uprls=zeros(1step);
downrls=zeros(1step);
repeat_time=60;?
for?repeat=1:repeat_time
????repeat;
????b=zeros(Kstep);
????b=sign(rand(Kstep)-0.5);
????noise=randn(Nstep);?
????noise=sqrt(10./SNR(1))*noise;%?Noise%
????for?i=1:K
????????Ab(i:)=A(i)*b(i:);
????end
????ystep=(Ab.‘*S).‘;
????ystep=ystep+noise;
????x=zeros(1N);
????sigma=1e-2;
????R1=1/sigma*eye(N);
????lamda=0.997;
????for?i=1:step
????????K1=R1*ystep(:i)/(lamda+ystep(:i)‘*R1*ystep(:i));
????????h=R1*S(1:).‘;
????????c=h/(S(1:)*h);
????????R1=1/lamda*(R1-K1*ystep(:i)‘*R1);
????????up2(i)=abs(?(c.‘*S(1:).‘)^2?);
????????down2(i)=abs(?(?c.‘*(ystep(:i)-b(1i)*S(1:).‘)?)^2?);
????????%SINR(i)=up2/down2;
????????y(i)=sign(real(c.‘*ystep(:i)));
????end
????uprls=uprls+up2;
????do
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????5541174??2018-12-05?09:52??RD_RLS_LMS\RD_RLS_LMS.bmp
?????文件???????3201??2018-12-05?09:51??RD_RLS_LMS\RD_RLS_LMS.m
?????目錄??????????0??2018-12-06?06:46??RD_RLS_LMS
-----------?---------??----------?-----??----
??????????????5544375????????????????????3
評論
共有 條評論