How to perform convolution with a dataset?

7 visualizaciones (últimos 30 días)
Bourbon
Bourbon el 22 de Sept. de 2019
Comentada: Bjorn Gustavsson el 23 de Sept. de 2019
I have a dataset from an experiment and want to utilize it with the following equation that I have derived analytically
assume A , C, and D as any arbitraty numbers as their derivation is too long to put here along with beta and alpha (not of a concern now as i just want to understand how to implement convolution). while G is the values obtained from experiment as function of time. you do not have to demonstrate this particular one, you may supply your own example but I want to understand how to implement this in matlab with a dataset

Respuestas (1)

Bjorn Gustavsson
Bjorn Gustavsson el 22 de Sept. de 2019
In matlab this should be as simple as
f = A*(C*exp(alpha*t + D*exp(beta*t))); % or whatever you have for that part.
G = psf; % Also given it seems
y = conv(f,G,'full'); % or 'same' or 'valid'
HTH
  2 comentarios
Bourbon
Bourbon el 22 de Sept. de 2019
Editada: Bourbon el 22 de Sept. de 2019
Yes G is a given, however, psf function is for point spread fuction of image system. In this case, I have G as a function of t in form of table (t, G). should I integrate G utilizing trapezoidal method prior to implementing convolution instead of psf? the data is quadratic in nature
Bjorn Gustavsson
Bjorn Gustavsson el 23 de Sept. de 2019
conv (and conv2, convn) does discrete convolution and not a analytical/symbolic. If you have your G on a much finer grid than f, then it makes sense to recalculate G to the same discretization - that is: make sure that your dt is the same for G and f. After that everything is the same. (Also: psf is used for 1-D systems like spectrographs too...)
HTH

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by