Deconvolution of a polynomial and exponential function

22 Ansichten (letzte 30 Tage)
Aku Forsström
Aku Forsström am 30 Sep. 2020
Kommentiert: Jon am 7 Jun. 2023
Hello,
Its been a while since I've been using matlab so I am having trouble with the input parameters of deconv() function.
I would like to deconvolute a function I have gained with polyfit from set of data with a function W=exp(x-exp(x)). If the inputs for deconv() should be coefficients of polynomials, then how am I to input W(x)?
The other function D(x) is already in that format.
Polyfit function is not making much sense for the exponential function.
  2 Kommentare
Jon
Jon am 30 Sep. 2020
Bearbeitet: Jon am 30 Sep. 2020
In general the process of deconvolution can be thought of as an inverse problem in which we wish to recover some original input signal, from the output signal of a system where we have a model of how the input is transformed into the output
The MATLAB decconv function is useful for linear discrete time filtering problems (Please see details below) It sounds like you are trying to perform some other type of inverse problem, which can not be handled using deconv. If you further describe exactly what problem you are trying solve what is your input signal, how is it transformed to an output and how do you propose to "invert" this process then you may be able to get further suggestion for how to proceed.
The MATLAB deconv function (I think this is what you are referring to by "deconvolute") simply does polynomial long division. It can be applied in the above sense to solve an inverse problem in the case of FIR (finite impulse response) discrete time filters. The response of the FIR filter to a finite length input signal can be found in the time domain by convolving the signal with the FIR filter's impulse response. Equivalently we can find the z-transforms of the input signal and the filter impulse response. These are both polynomials in z. Since multiplication in the z-domain is equivalent to convolution in the time domain the filter response, in the z domain can be found by multiplying the inputs signal's z transform polynomial representation and the filter's z-transform polynomial representation. The inverse, deconvolution, problem can then be solved by dividing the z-transform polynomial representation of the output by the z-transform of the filters impulse response. Thus we use MATLAB's deconv function to perform the necessary polynomial long division.
Aku Forsström
Aku Forsström am 30 Sep. 2020
Thank you Jon.
I am trying to analyze temperature data set that I have measured according to a research paper that describes how to gain structure of a material from its thermal step excitation response. In the paper the derivative of this response is deconvoluted with a "smoothing function" W. The idea is to gain time-constant spectra for the response.
In the paper the actual method for deconvolution is not described however. I was hoping that it would be simple matlab function that could do this for me. I dont remember much of my Fourier analysis but I remember that convolution could be considered by two signals slid ontop of each other. So deconvolution would be just the opposite function.
The paper just ends up in a solution that the response function can be described with a convolution-type integral. Then from that it gets the convolution equation
D(x)=R(x) * W(x),
where D(x) and W(x) are known and R(x) is the wanted time-constant spectra.
Do you have ideas on how I could achieve this time-constant spectra using matlab?

Melden Sie sich an, um zu kommentieren.

Antworten (3)

Aku Forsström
Aku Forsström am 30 Sep. 2020
Here are the figures I'm trying to deconvolve.
  1 Kommentar
Jon
Jon am 30 Sep. 2020
Your attachments should probably be moved to a comment as they are not yet an answer

Melden Sie sich an, um zu kommentieren.


Jon
Jon am 30 Sep. 2020
Your overview of what you are trying to do is helpful, but I think a lot more details are needed to help with the MATLAB implementation.
I poked around a little just to learn more about this problem. The problem looks quite involved. In case it helpful here is reference which I think addresses your problem
Manueal Carmona et al, A Time-Domain Method for the Analysis of Thermal Impedance Response Preserving the Convolution Form, IEEE Transactions on Components and Packaging Technology, Vol 22 No. 2. pp 238-244, June 1999
It further references specific discrete time algorithms in:
S. Marco, et al,Improved multi-exponential transient spectroscopy by iterative deconvolution, Proc. IMTC98 Instrum Meas. Tech. Conf, St Paul MN, MAy 1998, pp. 670-674
S.Marco, et al,A novel time-domain method to analyze multicomponent exponential transients meas Sci Technol, vol 6, pp 135-142, 1995
Using these references or some others if you find something (perhaps more recent) that is better,I would suggest you try implementing the algorithm in MATLAB. If you get stuck, then please post what you have tried and what problems your are having (error messages, how to implement a specific step)
  6 Kommentare
Savas Kaya
Savas Kaya am 7 Jun. 2023
Aku, Jon and Larry,
Did you ever get a solution/closure on this deconvolution problem?
We are also dealing with the exact same problem and our 1D Richardson deconvolution cannot resolve the expected peaks. I do get the 3 peaks on both real space and Transform approaches, but neither the two approaches agree (they should) nor the peaks are on right places (should have three peaks at ln(10) = 2.3026, ln(1)=,0 and ln(0.1)=-2.3026.
Any ideas and feedback are welcome.
for my MAtlab code and other useful bits see my comemnt below:
https://www.mathworks.com/matlabcentral/answers/1669824-fast-fourier-transform-to-perform-deconvolution-with-log-time#comment_2772489
Jon
Jon am 7 Jun. 2023
Sorry, I think the thread above is as far as I got with this.

Melden Sie sich an, um zu kommentieren.


larry liu
larry liu am 11 Mär. 2022
I got the same trouble as you, have you solved it?

Kategorien

Mehr zu Signal Generation and Preprocessing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by