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-1,N)*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=[20,30,30,30,30,30,40,40,40,50]; %SNR (in dB)%
SNR=10.^(SNR_db./10);
A=sqrt(SNR./SNR(1));
%lms盲自适应多用户检测%
uplms=zeros(1,step);
downlms=zeros(1,step);
repeat_time=60; %实验重复次数%
for repeat=1:repeat_time
repeat;
b=zeros(K,step);
b=sign(rand(K,step)-0.5);
noise=randn(N,step);
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(1,N);
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(1,i)*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-1,N)*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=[20,30,30,30,30,30,40,40,40,50]; %SNR (in dB)%
SNR=10.^(SNR_db./10);
A=sqrt(SNR./SNR(1));
uprls=zeros(1,step);
downrls=zeros(1,step);
repeat_time=60;
for repeat=1:repeat_time
repeat;
b=zeros(K,step);
b=sign(rand(K,step)-0.5);
noise=randn(N,step);
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(1,N);
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(1,i)*S(1,:).') )^2 );
%SINR(i)=up2/down2;
y(i)=sign(real(c.'*ystep(:,i)));
end
uprls=uprls+up2;
downrls=downrls+down2;
end
SINRrls=uprls./downrls;
SINR_dbrls=10*log10(SINRrls);
plot(SINR_dbrls,'g');
ylabel('SIR/db');
xlabel('迭代步数');
title('时间平均信干比');
海神之光
- 粉丝: 5w+
- 资源: 6476
最新资源
- 在MATLAB中用物理神经网络求解质量-弹簧-阻尼器系统.rar
- 展望汉密尔顿蒙特卡罗,matlab代码.rar
- 这是对移动自组网智能天线和全向天线进行比较Matlab代码.rar
- 直流电机控制器级联设计的有效性 matlab代码.rar
- Android Studio Ladybug(android-studio-2024.2.1.12-mac.zip.001)
- 西门子TIA FB285功能块使用手册
- ERP MES 两套系统源代码 WPF AGV C# WPF开发 A,WPF MES 上位机产线执行系统 1, 完整纯源代码; 2, AGV自动调度; 3, SQLSERVER数据库 带附加文件
- 大数据技术领域中hadoop分布式系统的架构与应用
- Unity简单UI动画制作
- tomcat安装及配置教程-跨平台Tomcat安装配置教程:从零开始部署Web服务器
- 微软常用运行库合集2019.03
- Android Studio Ladybug(android-studio-2024.2.1.12-mac-arm.zip.002)
- selenium在Web应用自动化测试中的应用与优势
- 121m 纯电动汽车Simulink仿真模型建模详细步骤 通过文档的形式,跟着文档一步一步操作,既可以提高自己的建模能力,又可以对整个建模思路进行借鉴,形成设计能力 附带模型 丶
- 沾锡机半自动上料机设备3D图纸和工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip
- TMC5160、TMC5130高性能步进电机驱动代码 代码都已长时间验证,稳定可靠运行 图里资料就是到手资料 简介: 德国TMC步进电机驱动代码 送你OrCAD或者AD版本原理图 自己整个重新写的
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈