Hi. I have an equation below for which I need to calculate the average value for mu_o.
First, by calculating the sum of it, and secondly by dividing it with no of iterations, but I am unable to do it. Please help it's urgent!
I am doing for mu_o the same as I have calculated the average for EHH but I am not getting correct values.
rt=2;
NoB=1;
Pmax=100;
EHH(i)=0;
mu_o(i)=0[
for j=1:100000
mu_o(i)= mu_o(i)+ min((((exp(rt)-1)*NoB)./r),Pmax);
EHH(i)=EHH(i)+exp(ii*mu_o);
end
EHHH_avg(i)=(EHH(i))/100000;
mufix(i)=(1/ii)*log(EHHH_avg(i));
mu_o_avg(i)=(mu_o(i))/100000;
Epsilon=((mu_o_avg(i))/mufix(i));

 採用された回答

Image Analyst
Image Analyst 2019 年 7 月 10 日
編集済み: Image Analyst 2019 年 7 月 10 日

0 投票

Did you try using sum()?
EHHH_avg = sum(EHH) / 100000;

5 件のコメント

Dhawal Beohar
Dhawal Beohar 2019 年 7 月 10 日
Hi, thanks for your reply.
i need to calculate average of mu_o(i), EHHH is fine.
And i have tried using sum and mean both but not getting correct values
Image Analyst
Image Analyst 2019 年 7 月 10 日
Please show your code to show why
EHHH_avg = sum(EHH) / 100000
mu_o_avg = sum(mu_o)/100000
is not working. What do they report, and what do you expect?
Dhawal Beohar
Dhawal Beohar 2019 年 7 月 11 日
編集済み: Image Analyst 2019 年 7 月 11 日
clc
clear
NoB=1; % Noise Density
rt=0.5; % Rate in bits/sec
EH=0; % Initialising Energy Harvesting
Bmax= 50; % Threshold level of battery in Joules
Bslot= 3; % Energy threshold in Joules
Pout=[0.001:0.001:0.1];
QoS_Component_u=[0.001:0.001:0.1];
for i=1:length(QoS_Component_u)
u=QoS_Component_u(i);
Pmax=100;
EHH(i)=0;
muo_sum(i)=0;
for j=1:100000
hx=(1/sqrt(2))*randn(1,1);
hy=(1/sqrt(2))*randn(1,1);
ht_rayleigh=hx.^2+hy.^2;
muo=min((((exp(rt)-1)*NoB)./ht_rayleigh),Pmax);
muo_sum(i)=muo_sum(i)+muo;
EHH(i)=EHH(i)+exp(u*muo);
end
EHHH(i)=(EHH(i))/100000;
mufix(i)=(1/u)*log(EHHH(i));
mu_o_avg(i)=(muo_sum(i))/100000;
Epsilon(i)=((mu_o_avg(i))/mufix(i));
Pout(i)= (Epsilon(i)*(exp(-u*(mufix(i))*(Bmax-Bslot))));
end
plot(QoS_Component_u,Pout);
grid on;
hold on;
title('Comparison between Pout and QoS Component u');
xlabel('QoS Component u');
ylabel('Pout');
This is my complete code where i need to calculate the average of muo,and i am calculating it by calculating summation and then by dividing it by iterations.I want to do it this way and not by using sum function.
Also everytime it is giving me different values for muo,why?
Please Help.
Image Analyst
Image Analyst 2019 年 7 月 20 日
See if this works for you:
clc
clear
close all;
fprintf('Working...\n');
NoB=1; % Noise Density
rt=0.5; % Rate in bits/sec
EH=0; % Initialising Energy Harvesting
Bmax= 50; % Threshold level of battery in Joules
Bslot= 3; % Energy threshold in Joules
Pout=[0.001:0.001:0.1];
QoS_Component_u=[0.001:0.001:0.1];
maxj = 100000;
for i=1:length(QoS_Component_u)
u=QoS_Component_u(i);
Pmax=100;
muo = zeros(1, maxj);
EHH = zeros(1, maxj);
for j = 1 : maxj
hx=(1/sqrt(2))*randn(1,1);
hy=(1/sqrt(2))*randn(1,1);
ht_rayleigh = hx.^2 + hy.^2;
muo(i) = min((((exp(rt)-1)*NoB)./ht_rayleigh),Pmax);
EHH(i) = EHH(i)+exp(u*muo(i));
end
EHHH(i)= mean(EHH);
mufix(i)=(1/u)*log(EHHH(i));
mu_o_avg(i)= mean(muo);
Epsilon(i)=((mu_o_avg(i))/mufix(i));
Pout(i)= (Epsilon(i)*(exp(-u*(mufix(i))*(Bmax-Bslot))));
end
plot(QoS_Component_u, Pout, 'LineWidth', 2);
grid on;
hold on;
title('Comparison between Pout and QoS Component u', 'FontSize', 13);
xlabel('QoS Component u', 'FontSize', 13);
ylabel('Pout', 'FontSize', 13);
fprintf('Done!\n');
Dhawal Beohar
Dhawal Beohar 2019 年 7 月 21 日
Thank you ! it's being great help...

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by