# [SciPy-Dev] SciPy Goal

josef.pktd@gmai... josef.pktd@gmai...
Thu Jan 5 10:48:39 CST 2012

```On Thu, Jan 5, 2012 at 11:14 AM, Travis Oliphant <travis@continuum.io> 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?
>
> 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"

maybe I'm interpreting things wrongly since I'm not so familiar with
the signal processing terminology

as far as I understand fftconvolve(in1, in2)  applies a FIR filter in2
to  in1, however it is possible to divide by the fft of an in3, that
would have both IIR filter terms as in lfilter.
(I tried out different versions of fft based time series analysis in
the statsmodels sandbox.)

I never looked very closely at filter design itself, because that is
very different from the estimation procedures we use in time series
analysis.

Josef

>
> -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
>
> _______________________________________________
> SciPy-Dev mailing list
> SciPy-Dev@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-dev
```