How to implement Gaussian Approximation

3 次查看(过去 30 天)
I'm having some trouble trying to implement the following function:
To express the inverse function of rho I have used a numerical approximation for the second equality of the piecewise defined function, as it does not have an analytical solution.
I have the impression that something must have been done wrongly, as the result should be more 'positive' (greater than 0) for each iteration.
I will leave here my code:
l = [0 0.3078 0.27287 0 0 0 0.41933];
r = [0 0 0 0 0 0.4 0.6];
sigma = 0.8747;
mu0 = 2/sigma;
iterations = 50;
% Density evolution algorithm depiction for finding the treshold of irregular LDPC codes
syms x;
l_idle = zeros(1,length(l));
r_idle = zeros(1,length(r));
Q_1 = exp(-0.4527*x^0.86 + 0.0218);
Q_2 = sqrt(pi/x)*exp(-x/4)*(1-20/(7*x));
mu = zeros(1,iterations+1);
for k=2:1:iterations+1
for i = 1:length(l_idle)
if ((mu0 + (i-1)*mu(k-1)) < 10)
l_idle(i) = subs(Q_1,x,(mu0 + (i-1)*mu(k-1)));
else
l_idle(i) = subs(Q_2,x,(mu0 + (i-1)*mu(k-1)));
end
end
lambda = l*transpose(l_idle);
for j = 1:length(r_idle)
b = 1-(1-lambda)^(j-1);
g = subs(Q_1,x,b);
if or(subs(Q_1,x,10) < g, subs(Q_1,x,0) >= g)
r_idle(j) = (1/0.4527*(0.0218-log(g)))^(1/0.86);
else
xx = linspace(0, subs(Q_2,x,10), 10000);
yy = f(xx);
r_idle(j) = interp1(yy,xx,b);
end
end
mu(k) = r*transpose(r_idle);
end
If anyone has any question, I will be pleased to answer you.
Thank you in advance, and may you have a nice week!

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Mathematics 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by