MATLAB lsqcurvefit采用高斯卷积模型

时间:2014-09-15 06:34:57

标签: matlab distribution curve-fitting gaussian

我正在尝试拟合由卷积指数的高斯分布描述的数据。一些完美模拟数据的例子来说明我的观点:

clc; clear all

modeValue = 40;          % mode value of our simulated gaussian
sig = 4;                 % variance
values = [1:0.5:100];    % vector for gaussian to be evaluated at

gauss=(1/(sqrt(2*pi)*sig)).*exp(-(values-modeValue).^2/(2*sig^2))'; % create our gaussian
gauss=gauss./max(gauss); % normalize

tau = logspace(-6,2,256); % generate our simulated x-data

for ii = 1:1:length(values)
data(:,ii) = exp(-tau.*values(ii)); % generated a data set
end

dataConv = data*gauss; % Multiply each data set by the corresponding gaussian weight
dataConv = dataConv./max(dataConv); % This is our final simulated data
semilogx(tau,dataConv,'ro');

如果此代码在MATLAB中运行,则会创建完美生成的数据集dataConv

我现在的目标是通过对生成的数据执行gauss来恢复我们的lsqcurvefit图。我们的想法是为modeValuesigvalues提供一个起始值,让MATLAB自动选择它们,生成所有衰减曲线,将所有衰变曲线卷入1个数据集,检查拟合,然后返回并调整输入值。

我可以使用lsqcurvefit来拟合单个指数,但不知道如何做我想要做的事情。任何帮助是极大的赞赏。感谢

0 个答案:

没有答案