[med-svn] [python-mne] 14/353: ENH : raise warning with n_fft is not a power of 2
Yaroslav Halchenko
debian at onerussian.com
Fri Nov 27 17:24:24 UTC 2015
This is an automated email from the git hooks/post-receive script.
yoh pushed a commit to tag 0.4
in repository python-mne.
commit c15907c224577a4110b1711e4a29e780e13bdf76
Author: Alexandre Gramfort <alexandre.gramfort at inria.fr>
Date: Sat Nov 12 16:16:37 2011 -0500
ENH : raise warning with n_fft is not a power of 2
---
mne/filter.py | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/mne/filter.py b/mne/filter.py
index c21c05c..44dda4f 100644
--- a/mne/filter.py
+++ b/mne/filter.py
@@ -1,8 +1,33 @@
+import warnings
import numpy as np
from scipy import signal
from scipy.fftpack import fft, ifft
+def is_power2(num):
+ """Test if number is a power of 2
+
+ Parameters
+ ----------
+ num : int
+ Number
+
+ Returns
+ -------
+ b : bool
+ True if is power of 2
+
+ Example
+ -------
+ >>> is_power2(2 ** 3)
+ True
+ >>> is_power2(5)
+ False
+ """
+ num = int(num)
+ return num != 0 and ((num & (num - 1)) == 0)
+
+
def _overlap_add_filter(x, h, n_fft=None, zero_phase=True):
""" Filter using overlap-add FFTs.
@@ -55,6 +80,9 @@ def _overlap_add_filter(x, h, n_fft=None, zero_phase=True):
if n_fft <= 0:
raise ValueError('n_fft is too short, has to be at least len(h)')
+ if not is_power2(n_fft):
+ warnings.warn("FFT length is not a power of 2. Can be slower.")
+
# Filter in frequency domain
h_fft = fft(np.r_[h, np.zeros(n_fft - n_h, dtype=h.dtype)])
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/python-mne.git
More information about the debian-med-commit
mailing list