0.50.450.40.350.30.250.20.150.10.050-20-15-10-505101520
Kalman滤波器在matlab仿真程序下的不同信噪比时的误码率: %multiuser_dectect.m clc; clear all; hold on
BER_sum=zeros(1,13);%设定求和误码率的零矩阵; BER_ave=zeros(1,13); %设定平均误码率的零矩阵; for m=1:10;%m的长度为1到10 间隔为1;
snr_in_db=-20:3:16;%定义信噪比的长度为-20到16 间隔为3;snr_in_db是信噪比用db表示
for i=1:length(snr_in_db);%i的长度为1到信噪比的长度 BER(i)= Kalman_S1(snr_in_db(i));%卡尔曼的误码率函数; end
BER_sum=BER_sum+BER;%误码率求和的算法 end;
BER_ave=0.1* BER_sum ; %误码率平均值的算法
semilogy( snr_in_db,BER_ave,'rd-');%y轴维数坐标图定义横坐标为信噪比,纵坐标为误码率; %Kalman_S1.m %Kalman algorithm
%synchronous CDMA同步cdma %channel: White Gaussis Noise function [p] = Kalman_S1(snr_in_dB)
SNR=10^(snr_in_dB/10); %信噪比由dB形式转化
sgma=1; % noise standard deviation is fixed 定义方差 Eb=sgma^2*SNR;
A=[sqrt(Eb),sqrt(Eb),sqrt(Eb),sqrt(Eb),sqrt(Eb),sqrt(Eb),sqrt(Eb),sqrt(Eb),sqrt(Eb),sqrt(Eb),sqrt(Eb),sqrt(Eb),sqrt(Eb),sqrt(Eb),sqrt(Eb)]; K=length(A);
step=1000;%阶跃响应指令迭代1000次 N=31;%扩频增益n=31
%**************************************************************************
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,:);%K*N 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,:);
%******************************************** b=zeros(K,step);
b=sign(rand(K,step)-0.5);
noiseN_step=randn(N,step); % Noise noiseN_step=sqrt(10./SNR)*noiseN_step; for i=1:K
Ab(i,:)=A(i)*b(i,:);
end
yN_step=(Ab.'*S).';
yN_step=yN_step+noiseN_step; %****************************** KK=eye(N-1); w=zeros(N-1,1); c=zeros(N,1);
%Kalman multiuser detection for i=1:step
d=C_null*yN_step(:,i); g=KK*d*(d'*KK*d+1)^(-1); KK=KK-g*d'*KK; yy=S(1,:)*yN_step(:,i); w=w+g*(yy-d'*w); c=S(1,:).'-C_null.'*w;
y(i)=sign(real(c.'*yN_step(:,i))); end
p= length(find(y - b(1,:)))/length(y);
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo2.com 版权所有 湘ICP备2023021991号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务