Deconvolution of a polynomial and exponential function
22 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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
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.
Antworten (3)
Aku Forsström
am 30 Sep. 2020
1 Kommentar
Jon
am 30 Sep. 2020
Your attachments should probably be moved to a comment as they are not yet an answer
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
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
Siehe auch
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!