Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations TugboatEng on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Transfer Function Filter

Status
Not open for further replies.

phono

Automotive
Joined
May 3, 2005
Messages
6
Location
DE
Hello,

I like to develop a software-filter for compensating the frequency attenuation of an elctrodynamical-shaker.

My idea is to measure the transfer function from my system and to reverse it. With the reverse function and iFFT I get a response in time-domain. Then I do a convolution with the original signal (e.g. a sine-sweep) and the calculated response for compensating the attenuation of my system.

I receive a signal but it seems that the signal is modulated with another very-low-frequency and higher amplitude.
E.g. sweep from 200Hz to 20 Hz, amplitude 1 (V or g) - after the convolution with my filter I get a signal which contains big (increasing with lower frequency) pulse-peaks every 20-30 Hz.

Does anybody know this problem?
Perhaps it occurs from the phase-information, but i don't know how to integrate my phase-information in my filter...

I'm thankful for every tip!

Regards
phono
 
You have an estimate of the magnitude attenuation at each frequency. What I think you need as well is an estimate of the phase shift at each frequency to develop a full compensation.

Alternatively, maybe you need a time-domain representation of the effect you are trying to undo.

=====================================
Eng-tips forums: The best place on the web for engineering discussions.
 
Why do you need to do that? Isn't the amplitude loop closed with an accelerometer?

In fact, trying to run the shaker open loop will result in a different attenuation each time, since the unit under test (UUT) itself affects the behavior of the shaker.

Since the transfer function calculation of the UUT requires knowledge of the input stimulus, you have to have an accelerometer that measures the input anyway. By closing the loop on that accelerometer, there is no need for compensation and you know exactly what the stimulus is.

TTFN
 
Well,

(I logged in with my "home-login")

thanks for the fast replys - I will try to explain a little bit more about my system.
I want to simulate vibrations for further investigations.
My system contains a shaker and mechanical parts for offering the possibility for someone to feel the vibrations. I load this vibration-signal from a file and I want to simulate the signal at a specific point where a test-person is in touch with the system.
Because different persons will change some of my parameters, I have to do a calibration with every new person.
So I'll get a TransferFunction for every new test and I'm able to do a first filter on my output-signal before starting the test.
The Loop is closed (labview - shaker - system - acc-sensor - labview).
While outputting my signal I have to control it too - but I want to minimize the control-complexity with my first filter.
Unfortunately I'm still waiting for the mechanical parts - so I tried to test my filter only with the shaker and the sensor.



... tomorrow I'll try to get the phase-shift.
 
First, go to the "DSP Guide" website;


Download chapter 17 "Custom Filters." Then read all the applicable previous chapters.

FFT's / iFFT's contain or can contain phase information. But since it is often unknown it is simply set to zero.

1) Capture Amplitude-Phase of the transfer function by sine sweep (or possibly more eligantly by stimulating the system with white noise (PRNG) to get the same information).

2) Invert the amplitude and phase to obtain the equalizing transfer function.

3) iFFT, truncate and window to get the FIR coefficients.
 
Again, if you close the loop of the controller at the point at which you want the correct values, there would be no need to do any filtering whatsoever.

The whole point of closed-loop control is to eliminate some of the vagaries of the plant response.

If the plant is that wonky, that every run requires new calibration, then the odds are that even same person will produce different responses and your compensation curve will still be in error when you do a real run.

By closing the control loop at the point where the person "feels" the vibration, you can completely eliminate the variability from the plant and make it infinitely more repeatable.

TTFN
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top