MATLAB Answers

Fitting curve with an exponential function

12 views (last 30 days)
aurc89
aurc89 on 18 Nov 2016
Answered: Petorr on 18 Nov 2016
If I have a function y=f(x), where x and y are two vectors, which presents an exponential decay together with an oscillatory component, how can I remove the exponential "continuous" component in order to have only the oscillations with zero offset? Can you suggest me a code to do this? thanks

  0 Comments

Sign in to comment.

Answers (3)

John D'Errico
John D'Errico on 18 Nov 2016
You can't do this well, at least as you have posed the problem. Conversely, you CAN do this, but you will do a poor job of it. For example, you COULD use the curvefitting toolbox, with a pure simple exponential model. That would lump any noise together with the oscillatory component. Unless the oscillatory component is perfectly orthogonal to the exponential decay component, then the decay will be measured incorrectly.
What you need to do to do this well is to choose a model for the oscillatory component, as well as the exponential component. Then fit the complete model together. Again, the CFT can do this, but only after you have chosen an intelligent model for the complete process.

Star Strider
Star Strider on 18 Nov 2016
I would fit your exponentially decaying sine function (I’m guessing a sine function) with How to filter noise from time-frequency data and find natural frequency of a cantilever? That will give you the frequency of the sine function (frequency and phase). You can then plot the sine function alone using the estimated parameters for it.

  0 Comments

Sign in to comment.


Petorr
Petorr on 18 Nov 2016
You might try the Hilbert Transform (see this). Then, divide your signal by the envelope. - Peter

  0 Comments

Sign in to comment.


Translated by