Deconvolution of two different Gaussians

17 vues (au cours des 30 derniers jours)
Tim
Tim le 14 Jan 2025
Commenté : Tim le 20 Jan 2025
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
  1 commentaire
Tim
Tim le 14 Jan 2025
Attached here is the GaussianPDF function

Connectez-vous pour commenter.

Réponse acceptée

Matt J
Matt J le 16 Jan 2025
Modifié(e) : Matt J le 16 Jan 2025
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;
  1 commentaire
Tim
Tim le 20 Jan 2025
Thanks Matt.
This was the clue I was looking for:
"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'."
Regards
Tim

Connectez-vous pour commenter.

Plus de réponses (1)

Catalytic
Catalytic le 16 Jan 2025
Modifié(e) : Catalytic le 16 Jan 2025
Is it possible to deconvolve the resultant in such a way that I see espread?
Since you deconvolve y by espread, of course you will get straggling. Presumably you meant to deconvolve by straggling -
a=deconv(y,straggling);
  1 commentaire
Tim
Tim le 20 Jan 2025
Hi Catalytic,
I tried that and got "nonsense". See attched.
Regards
Tim

Connectez-vous pour commenter.

Produits


Version

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by