clear all;
close all;
Ts=1;
N=4;
randn('state',sum(100*clock));
use0=sign(randn(1,100000));
use1=sign(randn(1,100000));
use2=sign(randn(1,100000));
use3=sign(randn(1,100000));
dd=[use0;use1;use2;use3]';
%产生 4 阶 walsh 码
w=hadamard(4);
w=w/2; %能量归一化
%用户数据复合
s=[use0;use1;use2;use3]'*w;
ss=reshape(s',1,4*100000);
EsN0dB=0:8;
%经过信道
for k=1:length(EsN0dB)
sigma(k)=sqrt(10.^(-EsN0dB(k)/10)/2);
r=s+sigma(k)*randn(100000,4);
%用户分开
y=r*w;
d=sign(y);
error(k)=sum(sum(abs(d-dd)/2));
ber(k)=error(k)/400000;
end
semilogy(EsN0dB,ber)