# [Scipy-svn] r2240 - in trunk/Lib: sandbox signal

scipy-svn at scipy.org scipy-svn at scipy.org
Thu Oct 5 00:55:20 CDT 2006

```Author: oliphant
Date: 2006-10-05 00:55:13 -0500 (Thu, 05 Oct 2006)
New Revision: 2240

trunk/Lib/sandbox/oliphant/
Modified:
trunk/Lib/signal/signaltools.py
Log:

Modified: trunk/Lib/signal/signaltools.py
===================================================================
--- trunk/Lib/signal/signaltools.py	2006-10-02 08:17:40 UTC (rev 2239)
+++ trunk/Lib/signal/signaltools.py	2006-10-05 05:55:13 UTC (rev 2240)
@@ -668,7 +668,25 @@
w = w[:-1]
return w

+def flattop(M,sym=1):
+    """The M-point Flat top window.
+    """
+    if M < 1:
+        return array([])
+    if M == 1:
+        return ones(1,'d')
+    odd = M % 2
+    if not sym and not odd:
+        M = M+1
+    a = [0.2156, 0.4160, 0.2781, 0.0836, 0.0069]
+    n = arange(0,M)
+    fac = n*2*pi/(M-1.0)
+    w = a[0] - a[1]*cos(fac) + a[2]*cos(2*fac) - a[3]*cos(3*fac) + a[4]*cos(4*fac)
+    if not sym and not odd:
+        w = w[:-1]
+    return w

+
def bartlett(M,sym=1):
"""The M-point Bartlett window.
"""
@@ -734,6 +752,8 @@
w = w[:-1]
return w

+
+
def kaiser(M,beta,sym=1):
"""Returns a Kaiser window of length M with shape parameter beta.
"""
@@ -1214,7 +1234,8 @@
winfunc = nuttall
elif winstr in ['barthann', 'brthan', 'bth']:
winfunc = barthann
-
+        elif winstr in ['flattop', 'flat', 'flt']:
+            winfunc = flattop
elif winstr in ['kaiser', 'ksr']:
winfunc = kaiser
elif winstr in ['gaussian', 'gauss', 'gss']:

```