08-13-2020 04:04 AM
Hello.
I am trying to implement a deconvolution operation into my program where I deconvolute an array of size ~29k against another array of the same size.
I have tried the two deconvolution blocks available on labview: Deconvolution PtByPt.vi and Deconvolution.vi.
The PtByPt takes forever (maybe 30minutes) to go through the 29k values but returns an array that looks to be correct. The deconvolution.vi is not returning anything for some reason...
I'm sure I dont need to use the point by point program. I dont even understand what it is doing and why it takes so long... Why is my deconvolution.vi not returning anything?
Figures of my problem and input functions included. I dont include VI because it is filled with other things and figures present the problem well enough.
08-13-2020 05:21 AM
Hi Akuaku,
@Akuaku wrote:
I have tried the two deconvolution blocks available on labview: Deconvolution PtByPt.vi and Deconvolution.vi.
The PtByPt takes forever (maybe 30minutes) to go through the 29k values but returns an array that looks to be correct. The deconvolution.vi is not returning anything for some reason...
Why is my deconvolution.vi not returning anything?
Figures of my problem and input functions included. I dont include VI because it is filled with other things and figures present the problem well enough.
We cannot debug images using LabVIEW.
Please attach a VI, containing the two methods you already tried together with two array constants containing your "29k values" used for this operation… (No need to present the full VI, just the data and the functions you want to employ!)
08-13-2020 06:45 AM
Hello Gerd!
I dont know how to import arrays from another vi so this VI reads the values from an XLS and generates other array in situ. Just download the xls and open it from the dialog box when running. The xls is lighter version of what I have been using but the problem remains that the deconvolution.vi is not working.
The interesting parts here are inside the case structures. I made them separate so I could disable them while testing.
08-13-2020 06:52 AM
Hi Akuaku,
the subVIs are missing.
And your "XLS" file is a plain text file (or "delimited spreadsheet file"), so don't call and label it as file.xls!
@Akuaku wrote:
I dont know how to import arrays from another vi so this VI reads the values from an XLS and generates other array in situ.
Run your VI, then choose "set current values as default" from edit menu. Then save the VI again - it now contains all values in those "X" and "Y" indicators!
Attach this new VI with embedded data again…
08-13-2020 12:05 PM
We don't have any of your subVIs, so we cannot run your VI. Please attach main VI (saved with typical defaults in all controls!), all subVIs, a properly named datafile, and put everything in one zip file.
Mathematically, deconvolution is often numerically unstable (as the help already explains). Your Y array contains many zeroes and almost no high frequencies, resulting in an FFT that is very close to zero for many elements. A division by zero is not a good thing and will result in values that are close to infinity, drowning out all interesting parts!
Can you explain the experiment, what the data represents, and what you are trying to get out if it?
Have you tried with smaller simulated datasets that contain noise where you first do a convolution, then a deconvolution of that result, to see how well you can reverse the convolution?