Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2011-05-31, 12:49   #1
lyfxdh2011
初级会员
 
注册日期: 2011-05-31
帖子: 2
声望力: 0
lyfxdh2011 正向着好的方向发展
默认 程序运行不出来,求大手们指点

解相关检测算法的误码率计算程序
function [p]=JXG(snr_in_dB)
Lc=31;
snr=10^(snr_in_dB/10);
snr=exp(snr_in_dB*log(10)/10)
sgma=1;
Eb=sgma^2*snr;
E_chip=Eb/Lc;
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)];
N=1000;
K=length(A);
connections1=[10100];
connections2=[11101];
gold_seq=get_gold(conections1,connections2);
user1code=(1/sqrt(Lc))*gold_seq(:,31);
num_of_err=0;
S=zeros(31,K+1);
S(:,K+1)=user1code;
w=[A,sqrt(Eb)];
W=diag(w);
for i=1:N,
b=zeros(K+1,1);
y=zeros(K+1,1);
temp=rand;
if(temp<0.5),
data=-1;
else
data=1;
end;
trans_sig=sqrt(Eb)*data*user1code;
noise=sgma*randn(Lc,1);
inter_sig=zeros(31,1);
for k=1:K,
temp=rand;
if(temp<0.5),
dat=-1;
else
dat=1;
end;
inter_sig=inter_sig+A(k)*dat*(1/sqrt(Lc))*gold_seq(:,k);
S(:,k)=(1/sqrt(Lc))*gold_seq(:,k);
b(k)=dat;
end;
b(K+1)=data;
R=corrcoef(S);
rec_sig=trans_sig+noise+inter_sig;
for k=1:K+1,
y(k)=rec_sig'*S(:,k);
end
M=inv(R)*y;
dec=sign(M(K+1));
if (dec<=0),
bit=-1;
else
bit=1;
end;
if(bit~=data),
num_of_err=num_of_err+1;
end;
end;
p=num_of_err/N;
lyfxdh2011 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 10:59


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.