[SciPy-User] FFT Filter

Christophe Grimault christophe.grimault@novagrid....
Mon Sep 26 11:32:17 CDT 2011


Hi Anders,

Use : scipy.signals.lfilter(b, a, x)

Where x is your signal (complex or real, it doesn't matter). As a filter
in the Fourier domain is basically FIR filter, you only need to pass the
b array (the response of the filter) and set a = [1.0].

Chris

On Sat, 2011-09-24 at 09:33 +0200, Anders Harrysson wrote:
> Dear all,
> 
> I am kind of new to scipy and also new to the signal processing field 
> that this question relates to.
> I am trying to do a bandpass FFT filter using python. The filter shape 
> is symmetric around 11 Hz and is defined by the parameters ff and Hz below.
> 
> x=loadtxt('file')
> 
> sr = 250                    # [samples/s]
> nf = sr/2.0                # Nyquist frequence
> Ns = len(tr[:,0])       # Total number of samples
> N=float(8192)          # Fourier settings
> 
> # Fourier transform
> X1 = fft(x,n=int(N))
> X1 = fftshift(X1)
> F1 = arange(-N/2.0,N/2.0)/N*sr
> 
> # Filter
> ff=[0,1,1,0]
> Hz = [9.5, 10, 12, 12.5]
> k1=interp(-F1,Hz,ff)+interp(F1,Hz,ff)
> X1_f=X1*k1
> X1_f=ifftshift(X1_f)
> x1_f=ifft(X1_f,n=int(N))
> 
> My question is now:
> Are ther built in functionallity for filtering in scioy and, if so, how 
> would a similar filter looks like.
> 
> Regards,
> Anders Harrysson
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user


-- 
Christophe Grimault
NovaGrid SAS
Les jardins de la Teillais
3, allée de la grande égalonne
35740 Pacé
France

tel : (33)2 23 41 37 97
web : www.novagrid.com



More information about the SciPy-User mailing list