
能帮我看下这个MATLAB程序么?怎么定义函数的变量?谢谢!
clc;clear;A=1;SIRidea=-10;SIRtarget=-11;R=200;mobiles=10;Pmin=-24;Pmax=50;P=-103;nr_d...
clc;
clear;
A=1;
SIRidea=-10;
SIRtarget=-11;
R=200;
mobiles=10;
Pmin=-24;
Pmax=50;
P=-103;
nr_data_bits=1000;
nr_symbols=nr_data_bits/2;
SNR=0:100;
k=3;
n=4;
iterations=60;
%interrupt=zeros(1,60);
counterinit('interrupt');
counterset('interrupt', 0);
for SNR=0:length(SNR);
sigma = sqrt(10.0^(-SNR/10.0));
sigma=sigma/2;
x=randn(1,nr_symbols);
y=randn(1,nr_symbols);
ray=sqrt(0.5*(x.^2+y.^2));
end
figure(1)
plot(200*log10(abs(ray)));
grid on;
axis([1 60 -200 100]);
title('Rayleigh Fading ');
xlabel('symbols');ylabel('Amplitude/RMS(dB)');
distance=-abs(300*log10(abs(ray)));
%power_initial = -12 ;
%i=1;
power (1) =3*(distance (1)/R)^2;
power (2) =3*(distance (2)/R)^2;
for i=1:iterations;
forj=1:mobiles;
SIR_observed (i) =(10*log10 (power (i)));
SIR_observed (i+1) =(10*log10 (power (i+1)));
if SIR_observed (i)> SIRidea;
P(i)=1;
else
P(i)=0;
end
if SIR_observed (i+1)> SIRidea;
P(i+1)=1;
else
P(i+1)=0;
end
if SIR_observed (i+1)<SIRtarget;
%interrupt(i+1)=interrupt(i)+1;
counterinc('interrupt');
end
A=1;
u=3;
Y=3;
V=3;
if SIR_observed (i+1)>SIRidea;
if P(i)==P(i+1);
power(i+2)=power(i+1)-u*A;
A=u*A;
else
power(i+2)= power(i+1)-A/Y;
A=A/Y;
end
else
if P(i)==P(i+1);
power(i+2)=power(i+1)+V*A;
A=V*A;
else
power(i+2)= power(i+1)+A/Y;
A=A/Y;
end
end
disp(counterval('interrupt'));
end
outage_percentage =((counterval('interrupt')/i));
plot(iterations,outpage_percentage); 展开
clear;
A=1;
SIRidea=-10;
SIRtarget=-11;
R=200;
mobiles=10;
Pmin=-24;
Pmax=50;
P=-103;
nr_data_bits=1000;
nr_symbols=nr_data_bits/2;
SNR=0:100;
k=3;
n=4;
iterations=60;
%interrupt=zeros(1,60);
counterinit('interrupt');
counterset('interrupt', 0);
for SNR=0:length(SNR);
sigma = sqrt(10.0^(-SNR/10.0));
sigma=sigma/2;
x=randn(1,nr_symbols);
y=randn(1,nr_symbols);
ray=sqrt(0.5*(x.^2+y.^2));
end
figure(1)
plot(200*log10(abs(ray)));
grid on;
axis([1 60 -200 100]);
title('Rayleigh Fading ');
xlabel('symbols');ylabel('Amplitude/RMS(dB)');
distance=-abs(300*log10(abs(ray)));
%power_initial = -12 ;
%i=1;
power (1) =3*(distance (1)/R)^2;
power (2) =3*(distance (2)/R)^2;
for i=1:iterations;
forj=1:mobiles;
SIR_observed (i) =(10*log10 (power (i)));
SIR_observed (i+1) =(10*log10 (power (i+1)));
if SIR_observed (i)> SIRidea;
P(i)=1;
else
P(i)=0;
end
if SIR_observed (i+1)> SIRidea;
P(i+1)=1;
else
P(i+1)=0;
end
if SIR_observed (i+1)<SIRtarget;
%interrupt(i+1)=interrupt(i)+1;
counterinc('interrupt');
end
A=1;
u=3;
Y=3;
V=3;
if SIR_observed (i+1)>SIRidea;
if P(i)==P(i+1);
power(i+2)=power(i+1)-u*A;
A=u*A;
else
power(i+2)= power(i+1)-A/Y;
A=A/Y;
end
else
if P(i)==P(i+1);
power(i+2)=power(i+1)+V*A;
A=V*A;
else
power(i+2)= power(i+1)+A/Y;
A=A/Y;
end
end
disp(counterval('interrupt'));
end
outage_percentage =((counterval('interrupt')/i));
plot(iterations,outpage_percentage); 展开
2010-05-08
展开全部
counterinit是初始化它里面的函数,counterset是将该函数赋值, counterinc是将其函数加一,并返回新的值。我希望这个函数达到的目标是SIR_observed (i+1)<SIRtarget;时,interrupt加一,最后能绘出
plot(iterations,outpage_percentage); 的图,请高手指导一下,谢谢!
plot(iterations,outpage_percentage); 的图,请高手指导一下,谢谢!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询