LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

apply transfer function on signal data

Solved!
Go to solution

Hi

I am working on a problem that I cannot solve by myself. 

Where I work, we recorded some current data. Due to some measurement disturbances the current data is distorted. The manufacturer of the measuring device provided me with the transfer function. Now my job is to work out a way to find the undistorted data.

 

In theory I could apply the inverse of the transfer function to the data I have got, right? But how can I do that? How can I apply a transfer function on a series of data points?

 

Thanks for your help!

0 Kudos
Message 1 of 5
(3,527 Views)

Hi,

 

Firsly,

Which kind of sensor do you use ?

Is there a conditioning system for your measure ?

Which materials are you used for acquire data ?

What are the specifications of these materials ?

 

Secondly,

When you are measuring data and your signal is distorted, you must use a filter depending of the nature of the disturbances.

what is the transfer function ? ratio between output of the signal and input of the signal in the domain (L,F,Z). This provide you information about the conversion to have a good signal from your sensor in your computer.

If you apply the inverse of the transfer function to the data, you will have the relation between output and input of your signal in the frequency domain. And you have some blocks function for it in LabVIEW.

 

Regards,

Fred.

 

Kudos are welcome!Smiley Wink

0 Kudos
Message 2 of 5
(3,518 Views)

Thanks for the reply.

 

I am using CWT Ultra-Mini 06/B/1/80  current probe and Teledyne LeCroy HDO6104A oscilloscope. I attached a picture of the measurement I took. The green trace is the measured current, as you can see the measurement is somehow distorted. I asked the manufacturer of the current probe if there was a way to calculate back to a non-distorted signal. He told me, that the probe wasn't suited for this kind of measurement but then gave me a second order transfer function (which I cannot disclose) and told me that I should be able to apply the inverse transfer function to my measurement data to get the corrected current signal.

 

My idea was to: 

transform my data to the frequency domain, apply the inverse transfer function, transform the data to the time domain.

This should then lead to the original signal without the distortion.

 

If this is the correct approach, how can I implement this in labview. I am struggling to find the correct blocks.

0 Kudos
Message 3 of 5
(3,482 Views)
Solution
Accepted by topic author mi.chi.sa

What you are suggesting is conceptually possible but there are several pitfalls you have to understand and possibly work around depending on your actual signal and the characteristics of your correction response.

 

The steps to follow are:

- Convert your current signal to the frequency domain (FFT). The result is a complex array A(f)

- Calculate the complex frequency response of your correction signal B(f). Depending on how your sensor response is defined by the vendor you'll have to do different operations.

 

** If your response is defined as an impulse response you can directly calculate the FFT of that signal. Make sure to process the exact (!) same signal length (duration) as your current signal in order to get the exact same frequency resolution. Depending on the used sample rate you'll have to either truncate or zero-pad your FFT result. To do that you need to split your result in two array of same length, reverse the order of the second half array, do your truncation or zero-padding and re-assemble your signal (so again reverse the second half array order and concatenate to the first half).

 

** If your response is defined as 'analog' poles/zeros (s-domain), you'll have to calculate the complex response at the exact same frequencies as your current signal FFT (n*frequency resolution up to Nyquist frequency). Refer to the literature for the needed Maths.

** Simiar operation if your response is defined as 'digital' poles/zeros (z-domain).

- In all cases you have to make sure that the resulting array is complex, has the exact same frequency resolution as your current signal response, the same number of array elements and (important) the second half of your array is a mirrored and complex conjugated version of the first half. In other words if your array has N elements (N being an even number) then B(k) = B*(N-k). This is a characteristic of the FFT calculation and you can verify it is actually the case for your current FFT array.

 

Once your sensor frequency domain array is ready you can calculate the complex ratio A(f)/B(f) and then calculate the Inverse FFT (real) of the resulting complex array. This is (in theory) your corrected real time doamin current signal.

 

Now one thing is theory, another the real world. Here is a short list of challenges to deal with.

 

1 - If your sensor response is a lowpass filter (likely the case) it will roll off at high frequencies so the response can be very low. When you then perform the division in the frequency domain you are going to boost your current signal. Any noise will therefore be significantly amplified/emphasized and may end being dominant in your result. The method only works for a limited dynamic range and you may have to restrict your correction range to frequencies that are not attenuated more than 20-30 dB. In other words flatten your sensor response so attenuation never gets bigger than 20-30 dB (experiment to find an appropriate limit).

 

2 - Depending on how your sensor response was generated your result may be advanced or delayed in the time domain. Due to the finite nature of the FFT you may see wrapping in your result waveform. In other words you may see interferences at the beginning and the end of your signal. There are work arounds to minimize this issue, like pre- and post-append zeros to your current signal. This will increase the length of your FFT, thus your frequency resolution, so affect the calculation of your sensor response as well.

 

3 - The sensor response at Nyquist (array element N/2 in your complex response) may require special attention and you may have to tweak its value manually if your time domain result looks like it is overlaid with alternative values +v, -v, +v, -v...

 

Long story to say that you may be able to succeed in improving your signal but... it's not an easy task.

 

Hope this helps and good luck!

 

Message 4 of 5
(3,446 Views)

Thaaanks a lot. This is what I was looking for! I will try that first thing tomorrow morning!

 

0 Kudos
Message 5 of 5
(3,435 Views)