LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Moving bandpass filter with Sine Sweep

I am creating a sine sweep (.1 Hz to 100 Hz) with the 5421, running it through a system, then reading it back in with the 4472. The 4472 reads in an analog signal from accelerometers, and another device reads in a digital signal from another device measuring acceleration. I convert the digital signal to analog data, then perform the transfer function for the digital system undertest in comparison to the accelerometer data. This allows me to find the latency of other device measuring acceleration. Unfortunately, the system has an inherent 60 Hz sine signal from a hydrolic pump which is creating interference to the system, and rendering the transfer function results useless. I need to take this signal out, yet still be able to
measure 60 Hz when I am at the 60 Hz portion of the sweep. My idea is to create a running/moving bandpass filter that follows the frequency of the sine sweep. In other words, when the ARB is creating a 15 Hz sinewave, perform a bandpass filter around 15 Hz. At other frequencies do the same thing, so I only obtain a signal at the relevant frequency.

I am asking for help on how to implement such a filter, as I am not exactly sure as to the best way to do it, whether during the actual data collection or post process, or even if such a filter is possible.
0 Kudos
Message 1 of 6
(3,587 Views)
Can you obtain or generate a 60 Hz signal that is in phase with the interfering signal and subtract it from the corrupted signal? Perhaps an additional accelerometer on the pump would be a good source. Using the pump signal would allow measurement of the system even at 60 Hz. A moving filter would likely have variable delay and would confound your latency measurements.
0 Kudos
Message 2 of 6
(3,587 Views)
To do the moving filter you would use a bandpass filter vi and dynamically change the coefficients of the filter in a loop. To synchronise this properly you would probably have to make your sweeping sine wave source change in steps rather than continuously. This shouldn't be a problem because in the end your graph is a set of points. You would have to dwell at each frequency to make sure that the filter has settled. The time you have to wait would depend on the number of taps in the filter.

A simple way might also be to use the FFT to do the filtering for you. Change your frequency sweep to coincide with FFT bin frequencies. You FFT on blocks of data in synchronisation with the source signal and pull out the appropriate value. The 60Hz won't
affect you at all this way. The only problem will be if the 60Hz signal uses up the dynamic range of the data acquisition system so you can't apply much gain on the other frequency components.

cheers andrew@madry.com.au
Message 3 of 6
(3,587 Views)
Thanks. I am the same person as the one who first posted. I think I want to implement the second suggestion you have. It seems very similar to how the HP Dynamic Signal Analyzer we use currently runs. How would one go about synchronizing the FFT with the source signal? Currently, I have the transfer function being run in post-process manner. Thanks for all the help in advance.
0 Kudos
Message 4 of 6
(3,587 Views)
Curtis, Can you split the signal from the signal generator so you simultaneously record the stimulus signal with the response on the 4472 card?

If you start your recording from the initiation of the first frequency of the sweep you just have to keep track of how many samples are generated for each frequency of the sweep ie from the generator and by the signal acquisition.

It would be simple if the sample rate of the signal generator could be made exactly the same as the rate of the 4472 sampling so you knew how many samples to take in the recording. But generally you need to use more samples to generate a waveform than the minimum sampling rate for recording according to the Nyquist theorem.

The easiest way to do the synchronis
ation required is to first start the signal generator at the frequency of the sweep, then start recording the stimulus and response signals to a file keeping track of how many samples are saved to file. Then stop recording. Then stop the signal generator and change to the next frequency and start the new frequency stimulus. Then start recording and so on....

The main thing is that the stimulus is started before the recording starts and you track how many samples are in the simultaneously recorded stimulus and response for each frequency.

Hope that makes sense. There will be several other ways to do it.
0 Kudos
Message 5 of 6
(3,587 Views)
Thanks, it does. I think I will end up getting DIAdem to make it work, but doing it this way will make my measurements a lot more accurate.
0 Kudos
Message 6 of 6
(3,587 Views)