[med-svn] [python-mne] 221/353: low and high trans_bandwidth

Yaroslav Halchenko debian at onerussian.com
Fri Nov 27 17:25:01 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 60d61a8d9f923b5c2d9f08d5e0cfafe180b3f095
Author: mluessi at nmr.mgh.harvard.edu <mluessi at nmr.mgh.harvard.edu>
Date:   Sun Jun 24 02:37:16 2012 -0400

    low and high trans_bandwidth
---
 mne/fiff/raw.py | 18 +++++++++++-------
 mne/filter.py   | 44 ++++++++++++++++++++++++--------------------
 2 files changed, 35 insertions(+), 27 deletions(-)

diff --git a/mne/fiff/raw.py b/mne/fiff/raw.py
index b55068f..5c5ee3e 100644
--- a/mne/fiff/raw.py
+++ b/mne/fiff/raw.py
@@ -363,7 +363,8 @@ class Raw(object):
             self.apply_function(hilbert, picks, np.complex64, n_jobs, verbose)
 
     def filter(self, l_freq, h_freq, picks=None, filter_length=None,
-               trans_bw=0.5, n_jobs=1, verbose=5):
+               l_trans_bandwidth=0.5, h_trans_bandwidth=0.5, n_jobs=1,
+               verbose=5):
         """Filter a subset of channels.
 
         Applies a zero-phase band-pass filter to the channels selected by
@@ -392,11 +393,12 @@ class Raw(object):
             (n_times: number of timepoints in Raw object) the filter length
             used is n_times. Otherwise, overlap-add filtering with a
             filter of the specified length is used (faster for long signals).
-        trans_bw : float
-            Width of the transition band in Hz.
+        l_trans_bandwidth : float
+            Width of the transition band at the low cut-off frequency in Hz.
+        h_trans_bandwidth : float
+            Width of the transition band at the high cut-off frequency in Hz.
         n_jobs: int (default: 1)
             Number of jobs to run in parallel.
-
         verbose: int (default: 5)
             Verbosity level.
         """
@@ -410,15 +412,17 @@ class Raw(object):
         if l_freq is None and h_freq is not None:
             self.apply_function(low_pass_filter, picks, None, n_jobs, verbose,
                                 fs, h_freq, filter_length=filter_length,
-                                trans_bw=trans_bw)
+                                trans_bandwidth=l_trans_bandwidth)
         if l_freq is not None and h_freq is None:
             self.apply_function(high_pass_filter, picks, None, n_jobs, verbose,
                                 fs, l_freq, filter_length=filter_length,
-                                trans_bw=trans_bw)
+                                trans_bandwidth=h_trans_bandwidth)
         if l_freq is not None and h_freq is not None:
             self.apply_function(band_pass_filter, picks, None, n_jobs, verbose,
                                 fs, l_freq, h_freq,
-                                filter_length=filter_length, trans_bw=trans_bw)
+                                filter_length=filter_length,
+                                l_trans_bandwidth=l_trans_bandwidth,
+                                h_trans_bandwidth=h_trans_bandwidth)
 
     @deprecated('band_pass_filter is deprecated please use raw.filter instead')
     def band_pass_filter(self, picks, l_freq, h_freq, filter_length=None,
diff --git a/mne/filter.py b/mne/filter.py
index 0246fab..55f82a4 100644
--- a/mne/filter.py
+++ b/mne/filter.py
@@ -235,7 +235,8 @@ def _filter(x, Fs, freq, gain, filter_length=None):
     return xf
 
 
-def band_pass_filter(x, Fs, Fp1, Fp2, filter_length=None, trans_bw=0.5):
+def band_pass_filter(x, Fs, Fp1, Fp2, filter_length=None,
+                     l_trans_bandwidth=0.5, h_trans_bandwidth=0.5):
     """Bandpass filter for the signal x.
 
     Applies a zero-phase bandpass filter to the signal x.
@@ -254,8 +255,10 @@ def band_pass_filter(x, Fs, Fp1, Fp2, filter_length=None, trans_bw=0.5):
         Length of the filter to use. If None or "len(x) < filter_length", the
         filter length used is len(x). Otherwise, overlap-add filtering with a
         filter of the specified length is used (faster for long signals).
-    trans_bw : float
-        Width of the transition band in Hz.
+    l_trans_bandwidth : float
+        Width of the transition band at the low cut-off frequency in Hz.
+    h_trans_bandwidth : float
+        Width of the transition band at the high cut-off frequency in Hz.
 
     Returns
     -------
@@ -264,7 +267,7 @@ def band_pass_filter(x, Fs, Fp1, Fp2, filter_length=None, trans_bw=0.5):
 
     Notes
     -----
-    The passbands (Fp1 Fp2) frequencies are defined in Hz as
+    The frequency response is (approximately) given by
                      ----------
                    /|         | \
                   / |         |  \
@@ -275,20 +278,20 @@ def band_pass_filter(x, Fs, Fp1, Fp2, filter_length=None, trans_bw=0.5):
               Fs1  Fp1       Fp2   Fs2
 
     Where
-    Fs1 = Fp1 - trans_bw in Hz
-    Fs2 = Fp2 + trans_bw in Hz
+    Fs1 = Fp1 - l_trans_bandwidth in Hz
+    Fs2 = Fp2 + h_trans_bandwidth in Hz
     """
     Fs = float(Fs)
     Fp1 = float(Fp1)
     Fp2 = float(Fp2)
 
-    Fs1 = Fp1 - trans_bw
-    Fs2 = Fp2 + trans_bw
+    Fs1 = Fp1 - l_trans_bandwidth
+    Fs2 = Fp2 + h_trans_bandwidth
 
     if Fs1 <= 0:
         raise ValueError('Filter specification invalid: Lower stop frequency '
                          'too low (%0.1fHz). Increase Fp1 or reduce '
-                         'transition bandwidth (trans_bw)' % Fs1)
+                         'transition bandwidth (l_trans_bandwidth)' % Fs1)
 
     xf = _filter(x, Fs, [0, Fs1, Fp1, Fp2, Fs2, Fs / 2], [0, 0, 1, 1, 0, 0],
                  filter_length)
@@ -296,7 +299,7 @@ def band_pass_filter(x, Fs, Fp1, Fp2, filter_length=None, trans_bw=0.5):
     return xf
 
 
-def low_pass_filter(x, Fs, Fp, filter_length=None, trans_bw=0.5):
+def low_pass_filter(x, Fs, Fp, filter_length=None, trans_bandwidth=0.5):
     """Lowpass filter for the signal x.
 
     Applies a zero-phase lowpass filter to the signal x.
@@ -313,7 +316,7 @@ def low_pass_filter(x, Fs, Fp, filter_length=None, trans_bw=0.5):
         Length of the filter to use. If None or "len(x) < filter_length", the
         filter length used is len(x). Otherwise, overlap-add filtering with a
         filter of the specified length is used (faster for long signals).
-    trans_bw : float
+    trans_bandwidth : float
         Width of the transition band in Hz.
 
     Returns
@@ -323,7 +326,7 @@ def low_pass_filter(x, Fs, Fp, filter_length=None, trans_bw=0.5):
 
     Notes
     -----
-    The passbands (Fp1 Fp2) frequencies are defined in Hz as
+    The frequency response is (approximately) given by
       -------------------------
                               | \
                               |  \
@@ -331,20 +334,20 @@ def low_pass_filter(x, Fs, Fp, filter_length=None, trans_bw=0.5):
                               |    \
                               |     -----------------
                               |
-                              Fp  Fp+trans_bw
+                              Fp  Fp+trans_bandwidth
 
     """
     Fs = float(Fs)
     Fp = float(Fp)
 
-    Fstop = Fp + trans_bw
+    Fstop = Fp + trans_bandwidth
 
     xf = _filter(x, Fs, [0, Fp, Fstop, Fs / 2], [1, 1, 0, 0], filter_length)
 
     return xf
 
 
-def high_pass_filter(x, Fs, Fp, filter_length=None, trans_bw=0.5):
+def high_pass_filter(x, Fs, Fp, filter_length=None, trans_bandwidth=0.5):
     """Highpass filter for the signal x.
 
     Applies a zero-phase highpass filter to the signal x.
@@ -361,7 +364,7 @@ def high_pass_filter(x, Fs, Fp, filter_length=None, trans_bw=0.5):
         Length of the filter to use. If None or "len(x) < filter_length", the
         filter length used is len(x). Otherwise, overlap-add filtering with a
         filter of the specified length is used (faster for long signals).
-    trans_bw : float
+    trans_bandwidth : float
         Width of the transition band in Hz.
 
     Returns
@@ -371,7 +374,7 @@ def high_pass_filter(x, Fs, Fp, filter_length=None, trans_bw=0.5):
 
     Notes
     -----
-    The passbands (Fp1 Fp2) frequencies are defined in Hz as
+    The frequency response is (approximately) given by
                    -----------------------
                  /|
                 / |
@@ -379,18 +382,19 @@ def high_pass_filter(x, Fs, Fp, filter_length=None, trans_bw=0.5):
               /   |
     ----------    |
                   |
-      Fp-trans_bw Fp
+           Fstop  Fp
 
+    where Fstop = Fp - trans_bandwidth
     """
 
     Fs = float(Fs)
     Fp = float(Fp)
 
-    Fstop = Fp - trans_bw
+    Fstop = Fp - trans_bandwidth
     if Fstop <= 0:
         raise ValueError('Filter specification invalid: Stop frequency too low'
                          '(%0.1fHz). Increase Fp or reduce transition '
-                         'bandwidth (trans_bw)' % Fstop)
+                         'bandwidth (trans_bandwidth)' % Fstop)
 
     xf = _filter(x, Fs, [0, Fstop, Fp, Fs / 2], [0, 0, 1, 1], filter_length)
 

-- 
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