📄 blind_dec.m
字号:
function brate=blind_dec()
%%%新新 %PN2=[0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0] 51,45
PN2=[-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 ];
%PN4 =[ 0 0 0 0 0 1 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0] 51,67
PN4=[-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 ];
%PN3=[ 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 1 1 1]51,76
PN3=[-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];
%PN1 =[0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 0 0 1 0 1 0 1]76,67
PN1=[-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 ];
%PN4=[ -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];
%PN3=[ -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];
%PN2=[ -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];
%PN1=[ -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];
%gold码归一化
goldseq1 = 1/sqrt(31)*PN1;
goldseq2 = 1/sqrt(31)*PN2;
goldseq3 = 1/sqrt(31)*PN3;
goldseq4 = 1/sqrt(31)*PN4;
N=10000;
%产生第一个用户数据
temp=rand;
if (temp<0.5),
data1=-1;
else
data1=1;
end;
%重复产生的比特
for j=1:N,
b1(j)=data1;
end;
%产生第二个用户数据
temp=rand;
if (temp<0.5),
data2=-1;
else
data2=1;
end;
%重复产生的比特
for j=1:N,
b2(j)=data2;
end;
%产生第三个用户数据
temp=rand;
if (temp<0.5),
data3=-1;
else
data3=1;
end;
%重复产生的比特
for j=1:N,
b3(j)=data3;
end;
%产生第四个用户数据
temp=rand;
if (temp<0.5),
data4=-1;
else
data4=1;
end;
%重复产生的比特
for j=1:N,
b4(j)=data4;
end;
%4个信号解相关检测
S=[goldseq1' goldseq2' goldseq3' goldseq4'];
%S=goldseq(1:4,:)';
R=S'*S;
iR=inv(R);
e1 =zeros(4,1);
e1(1) =1;
d1 =S*iR*e1;
for SNR =0:16
%r1 =goldseq(1,:)'*b(1,:);
r1 =goldseq1'*b1;
r1=awgn(r1,SNR);
%r2 =goldseq(2,:)'*b(2,:);
r2 =goldseq2'*b2;
r2=awgn(r2,SNR);
% r3 =goldseq(3,:)'*b(3,:);
r3 =goldseq3'*b3;
r3=awgn(r3,SNR);
%r4 =goldseq(4,:)'*b(4,:);
r4 =goldseq4'*b4;
r4=awgn(r4,SNR);
r =r1+r2+r3+r4;
y1 =d1'*r;
y1 =sign(y1);
[bnum(SNR+1),brate(SNR+1)] = symerr(y1,b1);
end;
SNR = 0:16;
semilogy(SNR,brate,'-r');
title('盲多用户解相关检测');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -