[SciPy-user] filtering without phase shift

Jeff Lyon jeff.lyon@cox....
Thu Jul 26 09:31:39 CDT 2007


Another way to filter your data is with an finite impulse response  
(FIR) filter. One of the nice properties of FIR filters is that they  
can have linear phase, or constant group delay. This means that all  
the frequencies in the filtered signal are delayed uniformly, and you  
can simply subtract out the delay.

On Jul 25, 2007, at 8:36 AM, Anne Archibald wrote:

> On 24/07/07, Stef Mientki <s.mientki@ru.nl> wrote:
>>
>>
>> Bryan Cole wrote:
>>> The easiest way to do non-phase-shifted filtering is to use FFTs  
>>> i.e.
>>>
>>> FFT -> Low Pass -> iFFT
>>>
>>> The only reason to move to time-domain filters is if you must do
>>> filtering in real-time where the complete dataset is (yet)  
>>> unknown and
>>> you must obey the laws of causality.
>>>
>>> Using a frequency domain filter, you can have whatever cutoff you  
>>> like.
>>>
>> I'm a bit rusty, but isn't there a real danger by filtering in the
>> frequency domain,
>> creating a rectangle cutoff in the frequency domain,
>> leads to an infinite ringing signal in the time-domain.
>
> There is a concern with ringing if you just use a brick-wall cutoff
> (though often with an FFT you have so much frequency resolution the
> ringing isn't actually a problem). The easiest way to do this is to
> use a softer edge - there are standard filter shapes (Butterworth and
> so on) which will minimize ringing, but any relatively smooth falloff
> will help.
>
> It sounds like this is not quite your issue, but if what you need is a
> filter that preserves peak height, Kalman filtering is what you need.
>
> Anne
> _______________________________________________
> SciPy-user mailing list
> SciPy-user@scipy.org
> http://projects.scipy.org/mailman/listinfo/scipy-user



More information about the SciPy-user mailing list