Hi all, my problem is this: i have a function F composed by Noise(gaussian distribution) + Value(lognormal distribution). The function F is the convolution of the two distributions. In my first script i have the function convolution.
function f = convol(mus,sis) x=(1:16384); mur=1643.7; %Mean
sir=93.94; %Sigma
%****Noise Normal****
frum = exp( (-(x-mur).^2)./(2*sir*sir) ); frum = frum / sum(frum); %Normalized
%****SignalLognormal****
fsig = exp( (-(log(x)-mus).^2)./(2*sis*sis) ); fsig = fsig / sum(fsig); %Normalized f = conv(fsig,frum,'full'); f = f(1:16384); f = f / sum(f); %Normalized
In this second script i calculate the ols error, fitting this distribution F with one that i have (called mySignal)
function diff = errorconv(PAR) f2 = mySignal./ sum(mySignal); %Normalized mus = PAR(1); sis = PAR(2); f = convol( mus, sis ); %Call the first script
diff = sum( (f- f2 ).^2 ); %Calculate the ols
My question is: is there a method to use fminsearch to make this calculation automatically? Something like fminsearch(diff, PAR); beacause my target is find the mu and sigma of function fsig such that convolution f is the best fit of f2 (my signal) starting from PAR = [value,value]; Thanks for help Luca
Best Answer