"Emile" <
[email protected]> wrote in message
news:grHxd.5744$
[email protected]..
>I asked about the same question a few days back, so if someone can explain
>this well, or point to some place with good explanation on time-varying
>filters, please do !
>
> Shafik wrote:
>> Hello folks,
>>
>> I know this topic has been discussed many times here, but I cannot
>> seem to get a clear picture of what method should be used when doing a
>> time varying filter using an FFT.
>>
>> I have to use an FFT since I have to do signal analysis as well. Some
>> discussions say that using the overlap-save method with a rectangular
>> window is best, while others say that's the worst for a time varying
>> filter, suggesting overlap-add instead.
>>
>> Is there an actual "preferred" method or does it completely depend on
>> the application?
We should start with the fundamentals:
1) An FFT requires that you grab a chunk of temporal data in order to
compute the FFT, right?
2) If you are going to do filtering by multiplication in the frequency
domain and if the filter you're using is time-varying then:
- the time chunk of data that you FFT better be short relative to the time
it takes the filter to change very much
or
- the filter variation better be slow compared to the chunk of time data
that the FFT uses.
This should make inherent sense to you.
Compare this to what happens if you convolve in time and the filter
coefficients vary.
3) Note that the (FIR) filter has an impulse response. The data that comes
out of the filter prior to the time equivalent to the length of the filter
is transient data and not "filtered" as you might expect.
Corollary: if the filter changes one coefficient by a large amount in the
space of one time sample then there will be a transient at the output of the
filter (unless the input is zero) that lasts for a time that is equivalent
to the position of the coefficient in the filter. (So, if the filter is
full of data and the first coefficient is changed, then it only takes one
sample time for the transient to be done. But, if the last coefficient is
change, then it takes the full length of the filter for the transient to be
done).
Corollary: if the filter changes by small amounts (which is equivalent to
"slowly") then the transients will be small and not as noticeable. In fact,
big changes to the filter - even if widely spaced in time - are equivalent
to "fast" changes. So, slow changes imply that the changes in filter
coefficients happen gradually. One may decide to lowpass filter the inputs
to the coefficients to achieve this.
4) Consider what happens if you aren't convolving in time but, rather, are
multiplying in frequency. Then the temporal constraints above become more
limiting because you have to take chunks (epochs) of data - not one sample
at a time.... Now a "slow" changing filter is relative to the length of the
chunk and not the length of the filter.
5) Consider the temporal length of the data that you will input to the
filter. If it's long, then the filter has to change even more slowly. So
this becomes a system trade: FFT length vs. rate of change of the filter
coefficients.
Fred