# [SciPy-Dev] SciPy Goal

Neal Becker ndbecker2@gmail....
Thu Jan 5 13:19:33 CST 2012

```Travis Oliphant wrote:

>
> On Jan 5, 2012, at 10:00 AM, josef.pktd@gmail.com wrote:
>
>> On Thu, Jan 5, 2012 at 10:32 AM, Neal Becker <ndbecker2@gmail.com> wrote:
>>> Some comments on signal processing:
>>>
>>> Correct me if I'm wrong, but I think scipy signal (like matlab) implement
>>> only a
>>> general purpose filter, which is an IIR filter, single rate.  Efficiency is
>>> very important in my work, so I implement many optimized variations.
>>>
>>> Most of the time, FIR filters are used.  These then come in variations for
>>> single rate, interpolation, and decimation (there is also another design for
>>> rational rate conversion).  Then these have variants for scalar/complex
>>> input/output, as well as complex in/out with scalar coefficients.
>>>
>>> IIR filters are seperate.
>>>
>>> FFT based FIR filters are another type, and include both complex in/out as
>>> well as scalar in/out (taking advantage of the 'two channel' trick for fft).
>>
>> just out of curiosity: why no FFT base IIR filter?
>>
>> It looks like a small change in the implementation, but it is slower
>> than lfilter for shorter time series so I mostly dropped fft based
>> filtering.
>
> I think he is talking about filter design, correct?
>

filter design.

About FFT-based IIR filter, I never heard of it.  I was talking about the fact
that fft can be used to efficiently implement a linear convolution exactly (for
the case of convolution of a finite or short sequence - the impulse response of
the filter - with a long or infinite sequence, the overlap-add or overlap-save
techniques are used).

> lfilter can be used to implement FIR and IIR filters -- although an FIR filter
> is easily computed with convolve/correlate as well.
>
> FIR filter design is usually done in the FFT-domain.   But, this picks the
> coefficients for the actual filtering itself done with something like convolve
>
> If you *do* filtering in the FFT-domain than it's usually going to be IIR.
> What are you referring to when you say "small change in the implementation"
>
> -Travis
>
>
>
>
>
>>
>> Josef
>>
>>
>>>
>>> _______________________________________________
>>> SciPy-Dev mailing list
>>> SciPy-Dev@scipy.org
>>> http://mail.scipy.org/mailman/listinfo/scipy-dev
>> _______________________________________________
>> SciPy-Dev mailing list
>> SciPy-Dev@scipy.org
>> http://mail.scipy.org/mailman/listinfo/scipy-dev

```