资源简介
分析并研究了DS-CDMA (直扩码分多址) 通信系统中的两种盲多用户检测算法,即最小均方(LMS) 算法和递推最小二乘(RL S)。仿真实验了在平稳信道下、同步DS-CDMA系统中接收机应用这两种盲多用户检测算法抑制多址干扰(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; %实验重复次数%
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
- 上一篇:数值分析每章编程题matlab实现
- 下一篇:Fisher判别matlab实现
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论