clc;close all;clear all;nt=2; %No. of Transmitting antenna
nr=1; %No. of Receiving antenna
Rc=1; %OSTBC code rate (for Alamouti code G2)
N0=10^-9; %
Es=10^4; %Energy of symbol
T=0.2; %adjuster between proportional faieness and throughput
k=[1 2 4 8 16 32];%no. of users
for i1=1:1:kK=length(i1) %Kth user
end%m %best user i.e user with the largest channel SNR
N=1:1:128; %frequency (1:1:128)
L=8; %mode of modulation(Discrete rate mode)
BERt=10^-4;y=Es/N0;for n=1:1:128 for m=1:1:6 h1=abs(sqrt(0.5)*(randn(k,n)+sqrt(-1).*randn(k,n))); %Channel
h2=abs(sqrt(0.5)*(randn(k,n)+sqrt(-1).*randn(k,n))); H=[h1 h2]; %channel matrix
for j=1:1:nr for i=1:1:nt Rt(k,n)=Rc.*(log2(1+((1.6.*y.*(norm(H(k,n))).^2)/(2.*log(0.2./BERt))))); Rt1(k,n)=mean(Rt(K,n)); for k=m Rt2(k,n)=((1-(1./T)).*Rt1(k,n))+((1./T).*Rt(k,n)); end for k=~m Rt2(k,n)=(1-(1./T)).*Rt1(k,n); end m(k,n)=arg(max(Rt(k,n)./Rt1(k,n))); bl(m,n)=randi([0 8],m,n); gl=1.6/(nt.*Rc.*((2^bl(m,n))-1)); z=(((i+1).*nt.*Rc)/y)+gl; snr(k,n)=(Es/(N0*nt*Rc)).*((norm(H(k,n))).^2); %instantaneous SNR
snrdb(k,n)=10.*log10(snr(k,n)); end end for l=1:8 for i=1:33 for t=1:i+1 if t==0 a_ti=1; elseif t==1 a_ti=i; elseif 2<=t && t<i for k=1:min(t,1) a_ti=(1/t)*(((k*(i+1)-t)/factorial(k)).*(a_t-ki)); end else t=i; a_ti=(factorial(1))^(-i); end end if l==1 rl=0.5.*(qfuncinv(qfunc(10^-4))^2); elseif l==2:L rl=-((2^l-1)/1.5)*log(5*10^-4); else l==L+1 rl=1/0; end if l==1 rlj=0.5.*(qfuncinv(qfunc(10^-4)).^(2.*j)); elseif l==2:1:L rlj=(-((2^l-1)/1.5)*log(5*10^-4)).^j; else l==L+1 rlj=1/0; end if (l+1)==1 rl1=0.5.*(qfuncinv(qfunc(10^-4)).^2); elseif l+1==2:1:L rl1=-((2^(l+1)-1)/1.5)*log(5*10^-4); else l+1==L+1; rl1=1/0; end if (l+1)==1 rl1j=0.5.*(qfuncinv(qfunc(10^-4))^(2.*j)); elseif l+1==2:L rl1j=(-((2^(l+1)-1)/1.5)*log(5*10^-4))^j; else l+1==L+1; rl1j=1/0; end for j=1:t+2 BERl(m,n)=(0.2.*K).*(((factorial(K-1))./(factorial(K-1-i).*factorial(i))).*((-1).^i)).*(a_ti).*((2./y)^(t+2)).*(exp((-z).*rl)).*((factorial(t+1).*rlj)./((factorial(j)).*(z^(t+2-j))))-(exp(-z.*rl1)).*(((factorial(t+1)).*rl1j)/((factorial(j)).*(z^(t+2-1)))); end ASE(m,n)=(Rc/N).*(bl(m,n)).*(factorial(K)/(factorial(K-i).*factotial(i))).*((-1).^i).*(((a_ti).*((nt.*Rc.*rl1/y).^t).*(exp(-i.*nt.*Rc.*rl1/y)))-(((nt.*Rc.*rl/y).^t).*(exp(-i.*nt.*Rc.*rl/y)))); BER(m,n)=1/(N.*ASE(m,n)).*bl(m,n).*BERl(m,n); end end endendplot(snrdb,ASE);xlabel('Average SNR');ylabel('Average Spectral Efficiency(b/s/Hz)');title('ASE versus Average SNR');
MATLAB: Given below in this code,the error is; Index exceeds matrix dimensions in line 27. Error (Rt(k,n)=Rc.*(log2(1+((1.6.*y.*(norm(H(k,n))).^2)/(2.*log(0.2./BERt)))));.Please help me to remove this error.
please check my loops.my paper is "performance analysis of scheduling schemes for rate-adaptive mimo osfbc-ofdm systems."
Best Answer