[SciPy-user] scipy.signal.firwin
Tom K.
tpk at kraussfamily.org
Sat Mar 21 13:46:14 EDT 2009
Bugzilla from ndbecker2 at gmail.com wrote:
>
> Jan Rauberg wrote:
>
>> Lev Givon <lev <at> columbia.edu> writes:
>>
>>>
>
>>> If you want to create a high-pass filter, just specify the cutoff to
>>> firwin and flip the signs of the obtained coefficients, i.e.,
>>>
>>> b = -firwin(N,cutoff)
>>>
>>> L.G.
>>>
>>
>>
>> Thank you for the fast response. But in the way as you described I get an
>> inverted low pass figure. That's not a high pass and no solution for my
>> problem too. Perhaps there is another solution? J.R.
>
> A trivial (not ideal) solution is G(z) = 1-H(z)
>
>
Simple inversion won't do the trick - you can invert the spectrum as Jan
suggests, or shift the entire spectrum by pi radians.
Example:
from scipy import signal
import numpy as np
N=11
h=signal.firwin(11, .3)
n=np.arange(-(N/2), (N/2)+1)
1) spectrum inversion G(z) = 1-H(z)
How: Subtract original filter from a kronecker delta function.
g=(n==1)-h
2) shift entire spectrum by pi radians
How: Elementwise multiply by (-1)**n
g1=(-1)**n*h
The resulting highpass filters will have different characteristics:
g is complementary filter to h (bandwidth is pi-bandwidth(h))
g1 has same bandwidth as h
These techniques won't work for even length filters, but you probably won't
want an even length highpass filter anyway because of the null at pi
radians.
- Tom K.
--
View this message in context: http://www.nabble.com/scipy.signal.firwin-tp22587139p22638541.html
Sent from the Scipy-User mailing list archive at Nabble.com.
More information about the SciPy-User
mailing list