08-10-2005 12:16 AM
08-17-2005 02:52 AM
08-29-2005 09:59 AM
Hello robert,
thank you very much for your reply and sorry for the late reaction.
My application runs 24 hours a day an acquires data with a sample rate of 50kHz.
This data will be transfered in blocks of about 10k every 200ms to a low pass filter and then to a display to present intermediate results. But the settling time of the filter is longer than the update frequency of the display.
In that case I need the possibility to give the filter an initial value. But I couldn't find any related method.
regards,
heinz
08-30-2005 07:57 AM
08-31-2005 07:35 AM - edited 08-31-2005 07:35 AM
hello robert,
I think I found the problem. I used the filter as a traditional function.
Private IStream() As Double
Private QStream() As Double
Private Filter As Filters.ButterworthBandpassFilter
....
Filter = New Filters.ButterworthLowpassFilter(cFilterOrder, nSampleRate, nCutOffFreq)
....
IStream = Filter.FilterData(IStream)
QStream = Filter.FilterData(QStream)
I used the same filter for 2 different data streams
But the filter is an object with its own history, so
Private Filter1 As Filters.ButterworthBandpassFilter
Private Filter2 As Filters.ButterworthBandpassFilter
....
Filter1 = New Filters.ButterworthLowpassFilter(cFilterOrder, nSampleRate, nCutOffFreq)
Filter2 = New Filters.ButterworthLowpassFilter(cFilterOrder, nSampleRate, nCutOffFreq)
....
IStream = Filter1.FilterData(IStream)
QStream = Filter2.FilterData(QStream)
Now it seems to work!
Thank you very much
Heinz
Message Edited by heinzS on 08-31-2005 07:44 AM