The Origin Forum
File Exchange
Try Origin for Free
The Origin Forum
Home | Profile | Register | Active Topics | Members | Search | FAQ | Send File to Tech support
 All Forums
 Origin Forum
 Origin Forum
 Deconvolve?

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

Screensize:
UserName:
Password:
Anti-Spam Code:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkUpload FileInsert Image Insert CodeInsert QuoteInsert List
   
Message:

* HTML is OFF
* Forum Code is ON
Smilies
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Clown [:o)]
Black Eye [B)] Eight Ball [8] Frown [:(] Shy [8)]
Shocked [:0] Angry [:(!] Dead [xx(] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
Check here to subscribe to this topic.
   

T O P I C    R E V I E W
jj45 Posted - 06/10/2004 : 1:16:17 PM
I have a signal and a convolved data set and I am trying to get the response data by using the deconvolve function, but the two data sets are the same lengths so the the function is not working. Any ideas on how I can get the response data?
7   L A T E S T    R E P L I E S    (Newest First)
easwar Posted - 06/15/2004 : 11:13:57 AM
Hello,

Deconvolution is not a very "reliable" procedure - the deconvolution is performed by dividing the FFT of signal1 by FFT of signal2, and then performing inverse FFT on the divided values. This can lead to unreliable results due to division by very small numbers, fluctuation in data from noise etc. So there are inherent mathematical limitations.

Easwar
OriginLab

jj45 Posted - 06/14/2004 : 8:08:12 PM
Thanks so much, yes, now it is working. The only thing is that using the the sample data in FFT Deconvolution, the deconvolute Data1_Conv Data1_Signal Data1_A; does not give me the Resp data which is what I am trying to get.

Mike Buess Posted - 06/14/2004 : 2:43:22 PM
You need to use the full dataset names. For example, if the columns are in wks Data1...

deconvolute Data1_Conv Data1_Signal Data1_A;

Mike Buess
Origin WebRing Member
jj45 Posted - 06/14/2004 : 1:49:06 PM
Thanks again, I still can't figure out why I get the invalid data sets, so I tried to see if my data was the problem so I changed and used the sample FFT Deconvolution and I added a new column, A(Y) and made sure it has the properties of being Text & Numeric, and in the Script menu, I wrote
deconvolute Conv Signal A;
and the Invalid dataset(s) message still comes up.
easwar Posted - 06/12/2004 : 08:51:51 AM
Hi,

If the data columns all exist, and are of type Text&Numeric or Numeric, and are set as Y columns, this should not happen. Make sure you are specifying the correct column names, such as:
deconvolute data1_c data1_b data1_d

If you need further assistance, please contact tech support, or post here.

Easwar
OriginLab

jj45 Posted - 06/11/2004 : 5:34:33 PM
Thanks for the code!
When I run it, the Invalid dataset(s)! message pops up. I have my signal data in a column, my convoluted data in a column, and I created a column for the result. All the columns are the same length. Is that the problem?

easwar Posted - 06/11/2004 : 1:46:51 PM
Hello,

The Deconvolution option from the menu has the restriction that the second signal that you specify (which typically is the response and the user is trying to remove the response from the measured signal to get the true signal) needs to be less than half in size of the first signal, and also has to be perfectly symmetric with odd number of points.

So in your case this does not work from the menu.

However, if you have version 7.5, there is a solution using Orign C programming. You can do the following:

1> create a new Origin C file in Code Builder, and place the code shown here in that file
2> add the fft_utils.c file (found in \Origin C\OriginLab subfolder) to your workspace
3> Compile and build

Then you can go to the script window and type a command such as:

deconvolute data1_c data1_b data1_d

where data1_c contains your convoluted signal, data1_b contains your true signal, and data1_d will then receive the result of the deconvolution, which will then be your response function.

Easwar
OriginLab


// Code starts here-----------
#include <Origin.h>
#include <fft_utils.h>


void deconvolute(string strSignal1, string strSignal2, string strResult)
{
// Declare datasets and check validity
Dataset ds1(strSignal1);
Dataset ds2(strSignal2);
Dataset ds3(strResult);
if(!ds1 || !ds2 || !ds3)
{
printf("Invalid dataset(s)!\n");
return;
}

// Copy datsets to vectors to pass to fft_deconvolute function
vector vec1, vec2, vec3;
vec1 = ds1;
vec2 = ds2;

int iRet = fft_deconvolute(vec1, vec2, vec3);
if(0 != iRet)
{
printf ("FFT Deconvolution call returned error. Error code: %d\n", iRet);
return;
}

// Copy result vector to result dataset
ds3 = vec3;
}
// Code ends here-----------



Edited by - easwar on 06/11/2004 1:50:52 PM

The Origin Forum © 2020 Originlab Corporation Go To Top Of Page
Snitz Forums 2000