主题:[讨论]求助高手,感激万分!
T=[2,4,6,8];
R=[2,4,6,8];
N=[2,4,6,8];
SNRindB=0:2:14;
SNR=10.^(SNRindB/10);
Number=100;
d=0.4;
sum=0;
for i=1:length(R)
for a=1:R(i)
for b=1:R(i)
Rr(a,b)=besselj(0,2*pi*(a-b)*d);
end
end
for a=1:T(i)
for b=1:T(i)
Rt(a,b)=besselj(0,2*pi*(a-b)*d);
end
end
for s=1:length(SNR)
for n=1:Number
for o=1:R(i)
for p=1:T(i)
W(o,p)=normrnd(0,sqrt(0.5))+j*normrnd(0,sqrt(0.5));
end
end
H=sqrtm(Rr)*W*sqrtm(Rt);
S=H*H';
A=inv(S);
U=diag(A);
C=0;
for v=1:N(i)
B=U(v)
r=SNR(s)/(N(i)*B);
C=C+log2(1+r)
end
c(1,n)=C
m=real(c)
end
f(i,s)=sum(m)/100
end
end
plot(SNRindB,f)
运行上面代码,老是报错:???? Subscript indices must either be real positive integers or logicals
如果去掉sum(c)则不会出现这个错误,但是求和在这里是必须的,请高手指点,小弟感激万分!
R=[2,4,6,8];
N=[2,4,6,8];
SNRindB=0:2:14;
SNR=10.^(SNRindB/10);
Number=100;
d=0.4;
sum=0;
for i=1:length(R)
for a=1:R(i)
for b=1:R(i)
Rr(a,b)=besselj(0,2*pi*(a-b)*d);
end
end
for a=1:T(i)
for b=1:T(i)
Rt(a,b)=besselj(0,2*pi*(a-b)*d);
end
end
for s=1:length(SNR)
for n=1:Number
for o=1:R(i)
for p=1:T(i)
W(o,p)=normrnd(0,sqrt(0.5))+j*normrnd(0,sqrt(0.5));
end
end
H=sqrtm(Rr)*W*sqrtm(Rt);
S=H*H';
A=inv(S);
U=diag(A);
C=0;
for v=1:N(i)
B=U(v)
r=SNR(s)/(N(i)*B);
C=C+log2(1+r)
end
c(1,n)=C
m=real(c)
end
f(i,s)=sum(m)/100
end
end
plot(SNRindB,f)
运行上面代码,老是报错:???? Subscript indices must either be real positive integers or logicals
如果去掉sum(c)则不会出现这个错误,但是求和在这里是必须的,请高手指点,小弟感激万分!