clear all
clc
R1_T = 0.512;
R2_T = 0.512;
R_T=[R1_T,R2_T];
ini_power1 = 0;
ini_power2 = 0;
ini_power3 = [ini_power1,ini_power2];
h11 = 1e-6;
h12 = 1.1e-6;
h21 = 0.9e-6;
h22 = 1.3e-6;
gamma = 2;
alpha1 = gamma *(h11)^2/(h22)^2;
alpha2 = gamma *(h21)^2/(h11)^2;
noiseDensity = 1e-11;
N1 = gamma*noiseDensity/(h11)^2;
N2 = gamma*noiseDensity/(h22)^2;
R1 = log2(1 + (ini_power1)/(N1+alpha2*ini_power2));
R2 = log2(1 + (ini_power2)/(N2+alpha1*ini_power1));
R=[R1,R2];
increasedB=1.9952;
increase=10^(increasedB/10);
for i=1:2
if R(i)>(R_T(i)+(R_T(i))/100)
ini_power3(i)=ini_power3(i)-increase;
end
if R(i)<R_T(i)
ini_power3(i)=ini_power3(i)+(increase);
end
end
R3 = log2(1 + (ini_power3(1))/(N1+alpha2*ini_power3(2)));
R4 = log2(1 + (ini_power3(2))/(N2+alpha1*ini_power3(1)));
R = [R3,R4];
ini_power4=[ini_power3(1),ini_power3(2)];
for i=1:2
if R(i)>(R_T(i)+(R_T(i))/100)
ini_power4(i)=ini_power4(i)-increase;
end
if R(i)<R_T(i)
ini_power4(i)=ini_power4(i)+(increase);
end
end
R5 = log2(1 + (ini_power4(1))/(N1+alpha2*ini_power4(2)));
R6 = log2(1 + (ini_power4(2))/(N2+alpha1*ini_power4(1)));
R = [R5,R6];
ini_power5=[ini_power4(1),ini_power4(2)];
for i=1:2
if R(i)>(R_T(i)+(R_T(i))/100)
ini_power5(i)=ini_power5(i)-increase;
end
if R(i)<R_T(i)
ini_power5(i)=ini_power5(i)+(increase);
end
end
R7 = log2(1 + (ini_power5(1))/(N1+alpha2*ini_power5(2)));
R8 = log2(1 + (ini_power5(2))/(N2+alpha1*ini_power5(1)));
R = [R7,R8];
ini_power6=[ini_power5(1),ini_power5(2)];
for i=1:2
if R(i)>(R_T(i)+(R_T(i))/100)
ini_power6(i)=ini_power6(i)-increase;
end
if R(i)<R_T(i)
ini_power6(i)=ini_power6(i)+(increase);
end
end
R9 = log2(1 + (ini_power6(1))/(N1+alpha2*ini_power6(2)));
R10 = log2(1 + (ini_power6(2))/(N2+alpha1*ini_power6(1)));
R = [R9,R10];
ini_power7=[ini_power6(1),ini_power6(2)];
for i=1:2
if R(i)>(R_T(i)+(R_T(i))/100)
ini_power7(i)=ini_power7(i)-increase;
end
if R(i)<R_T(i)
ini_power7(i)=ini_power7(i)+(increase);
end
end
R11 = log2(1 + (ini_power7(1))/(N1+alpha2*ini_power7(2)));
R12 = log2(1 + (ini_power7(2))/(N2+alpha1*ini_power7(1)));
R = [R11,R12];
ini_power8=[ini_power7(1),ini_power7(2)];
for i=1:2
if R(i)>(R_T(i)+(R_T(i))/100)
ini_power8(i)=ini_power8(i)-increase;
end
if R(i)<R_T(i)
ini_power8(i)=ini_power8(i)+(increase);
end
end
R13 = log2(1 + (ini_power8(1))/(N1+alpha2*ini_power8(2)));
R14 = log2(1 + (ini_power8(2))/(N2+alpha1*ini_power8(1)));
R = [R13,R14];
ini_power9=[ini_power8(1),ini_power8(2)];
for i=1:2
if R(i)>(R_T(i)+(R_T(i))/100)
ini_power9(i)=ini_power9(i)-increase;
end
if R(i)<R_T(i)
ini_power9(i)=ini_power9(i)+(increase);
end
end
R15 = log2(1 + (ini_power9(1))/(N1+alpha2*ini_power9(2)));
R16 = log2(1 + (ini_power9(2))/(N2+alpha1*ini_power9(1)));
R = [R15,R16];
ini_power10=[ini_power9(1),ini_power9(2)];
for i=1:2
if R(i)>(R_T(i)+(R_T(i))/100)
ini_power10(i)=ini_power10(i)-increase;
end
if R(i)<R_T(i)
ini_power10(i)=ini_power10(i)+(increase);
end
end
R17 = log2(1 + (ini_power10(1))/(N1+alpha2*ini_power10(2)));
R18 = log2(1 + (ini_power10(2))/(N2+alpha1*ini_power10(1)));
R = [R17,R18];
ini_power11=[ini_power10(1),ini_power10(2)];
for i=1:2
if R(i)>(R_T(i)+(R_T(i))/100)
ini_power11(i)=ini_power11(i)-increase;
end
if R(i)<R_T(i)
ini_power11(i)=ini_power11(i)+(increase);
end
end
R19 = log2(1 + (ini_power11(1))/(N1+alpha2*ini_power11(2)));
R20 = log2(1 + (ini_power11(2))/(N2+alpha1*ini_power11(1)));
R = [R19,R20];
ini_power12=[ini_power11(1),ini_power11(2)];
for i=1:2
if R(i)>(R_T(i)+(R_T(i))/100)
ini_power12(i)=ini_power12(i)-increase;
end
if R(i)<R_T(i)
ini_power12(i)=ini_power12(i)+(increase);
end
end
R21 = log2(1 + (ini_power12(1))/(N1+alpha2*ini_power12(2)));
R22 = log2(1 + (ini_power12(2))/(N2+alpha1*ini_power12(1)));
R = [R21,R22];
ini_power13=[ini_power12(1),ini_power12(2)];
for i=1:2
if R(i)>(R_T(i)+(R_T(i))/100)
ini_power13(i)=ini_power13(i)-increase;
end
if R(i)<R_T(i)
ini_power13(i)=ini_power13(i)+(increase);
end
end
R21 = log2(1 + (ini_power13(1))/(N1+alpha2*ini_power13(2)));
R22 = log2(1 + (ini_power13(2))/(N2+alpha1*ini_power13(1)));
R = [R21,R22];
ini_power14=[ini_power13(1),ini_power13(2)];
for i=1:2
if R(i)>(R_T(i)+(R_T(i))/100)
ini_power14(i)=ini_power14(i)-increase;
end
if R(i)<R_T(i)
ini_power14(i)=ini_power14(i)+(increase);
end
end
2 Comments
Direct link to this comment
https://de.mathworks.com/matlabcentral/answers/13707-help-with-water-filling-code-revised-question#comment_30204
Direct link to this comment
https://de.mathworks.com/matlabcentral/answers/13707-help-with-water-filling-code-revised-question#comment_30204
Direct link to this comment
https://de.mathworks.com/matlabcentral/answers/13707-help-with-water-filling-code-revised-question#comment_30287
Direct link to this comment
https://de.mathworks.com/matlabcentral/answers/13707-help-with-water-filling-code-revised-question#comment_30287
Sign in to comment.