Attached here is the GaussianPDF function
Deconvolution of two different Gaussians
3 ビュー (過去 30 日間)
古いコメントを表示
Hi all
I'm convolving two different Gaussians: straggling and espread. But when I deconvolve the resultant I see either straggling or "nonsense". Is it possible to deconvolve the resultant in such a way that I see espread? My code is attached.
Sorry, bit of a noob question.
Regards
Tim
採用された回答
Matt J
2025 年 1 月 16 日
編集済み: Matt J
2025 年 1 月 16 日
If you know a priori that all the signals are Gaussians, then deconvolution would not be the best way to recover espread. You know that the mean and variance of Gaussian signals add under convolution, so just fit a Gaussian (e.g. with this Download) to the output y and subtract its mean and variance from the known mean and variance of 'straggling'.
x1 = linspace(0, 20, 512);
dt=(x1(2)-x1(1));
straggling = GaussianPDF(x1, 7.7, 0.1);
figure; hold on;
plot(x1, straggling);
espread = GaussianPDF(x1, 7.7, 1);
% espread = espread/max(espread);
plot(x1, espread);
y = conv(straggling, espread)*dt;
x2 = (0:numel(y)-1)*dt;
plot(x2, y);
grid on;
legend('Straggling', 'E-Spread', 'Convolution');
p=gaussfitn(x2',y',[],{0,[],[]},{0,[],[]} );
espreadRec=GaussianPDF(x1,p{3}-7.7, sqrt(p{4}-0.1^2));
figure;
plot(x1,espread,'o',x1,espreadRec,'-');
legend Original Recovered
grid on;
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!