[SciPy-dev] typo in signal.kaiserord()
Travis Oliphant
oliphant.travis at ieee.org
Tue Jan 24 16:00:51 CST 2006
iCy-fLaME wrote:
>kaiserord(ripple, width) in filter_design.py,
>
>----------------------------------------------------------
>beta = select([A>50, A>21],
> [0.1102*(A-8.7), 0.5842*(A-21)**(0.4) + 0.07866*(A-21)],
> 0.0)
>----------------------------------------------------------
>
>=> 0.7866 should be 0.7886 instead
>
>
>
Good catch...
>=====================================
>
>Also in my system at lest it complain about pi, ceil and select are not defined.
> from scipy import select
> from scipy import ceil
> from scipy import pi
>will fix that.
>
>
>
select was indeed missing in the transition to numpy but that should be
all (pi is imported and ceil should be obtained from numpy.core.umath).
>but then:
>----------------------------------------------------------
>
>
>>>>A = 20
>>>>beta = select([A>50, A>21], [0.1102*(A-8.7), 0.5842*(A-21)**(0.4)
>>>>
>>>>
>+ 0.07886*(A-21)], 0.0)
>
>ValueError: negative number cannot be raised to a fractional power
>----------------------------------------------------------
>
>Looks like the else part is not performed correctly
>
>I fixed it with:
>----------------------------------------------------------
> if A> 50:
> beta = 0.1102 * (A-8.7)
> elif A>= 21:
> beta = (0.5842 * (A-21))**0.4 + 0.07886 * (A-21)
> else:
> beta = 0
>----------------------------------------------------------
>
>
>
Thanks again. The select usage was intended to support array inputs and
array outputs, but it doesn't work as advertised anyway and is
documented only for scalar inputs, and so I used your simpler code.
-Travis
More information about the Scipy-dev
mailing list