Permalink
Browse files

DOC: add parameters, returns and an example to fftpack.rfftfreq docst…

…ring.

Also some style fixes and code clean-up.

Reviewed at #321
  • Loading branch information...
1 parent 13f5f02 commit 217067dfad3e3e04f390113d769210874f28bb8b @endolith endolith committed with rgommers Sep 21, 2012
Showing with 29 additions and 4 deletions.
  1. +29 −4 scipy/fftpack/helper.py
View
33 scipy/fftpack/helper.py
@@ -1,18 +1,43 @@
__all__ = ['fftshift', 'ifftshift', 'fftfreq', 'rfftfreq']
-from numpy import array
+from numpy import arange
from numpy.fft.helper import fftshift, ifftshift, fftfreq
def rfftfreq(n, d=1.0):
"""DFT sample frequencies (for usage with rfft, irfft).
The returned float array contains the frequency bins in
- cycles/unit (with zero at the start) given a window length n and a
- sample spacing d::
+ cycles/unit (with zero at the start) given a window length `n` and a
+ sample spacing `d`::
f = [0,1,1,2,2,...,n/2-1,n/2-1,n/2]/(d*n) if n is even
f = [0,1,1,2,2,...,n/2-1,n/2-1,n/2,n/2]/(d*n) if n is odd
+
+ Parameters
+ ----------
+ n : int
+ Window length.
+ d : scalar, optional
+ Sample spacing. Default is 1.
+
+ Returns
+ -------
+ out : ndarray
+ The array of length `n`, containing the sample frequencies.
+
+ Examples
+ --------
+ >>> from scipy import fftpack
+ >>> sig = np.array([-2, 8, 6, 4, 1, 0, 3, 5], dtype=float)
+ >>> sig_fft = fftpack.rfft(sig)
+ >>> n = sig_fft.size
+ >>> timestep = 0.1
+ >>> freq = fftpack.rfftfreq(n, d=timestep)
+ >>> freq
+ array([ 0. , 1.25, 1.25, 2.5 , 2.5 , 3.75, 3.75, 5. ])
+
"""
if not isinstance(n, int) or n < 0:
raise ValueError("n = %s is not valid. n must be a nonnegative integer." % n)
- return (array(range(1,n+1),dtype=int)//2)/float(n*d)
+
+ return (arange(1, n + 1, dtype=int) // 2) / float(n * d)

0 comments on commit 217067d

Please sign in to comment.