From ef44b1afa410d77dbf84ba79119c16bb4fd02606 Mon Sep 17 00:00:00 2001
From: Tom Rondeau <trondeau@molly.home>
Date: Mon, 24 Aug 2009 17:44:43 -0400
Subject: Added routine for optfir equiripple filter design code to create
 complex bandpass filters. Also adds this ability to the filter designer.

---
 gr-utils/src/python/gr_filter_design.py | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

(limited to 'gr-utils/src')

diff --git a/gr-utils/src/python/gr_filter_design.py b/gr-utils/src/python/gr_filter_design.py
index 0579d0fe23..4aa59360f5 100755
--- a/gr-utils/src/python/gr_filter_design.py
+++ b/gr-utils/src/python/gr_filter_design.py
@@ -15,8 +15,6 @@ from gnuradio import gr, blks2, eng_notation
 from scipy import fftpack
 
 from pyqt_filter import Ui_MainWindow
-from pyqt_filter_firlpf import Ui_firlpfForm
-from pyqt_filter_firhpf import Ui_firhpfForm
 
 class gr_plot_filter(QtGui.QMainWindow):
     def __init__(self, qapp, options):
@@ -196,7 +194,8 @@ class gr_plot_filter(QtGui.QMainWindow):
             if(winstr == "Equiripple"):
                 designer = {"Low Pass" : self.design_opt_lpf,
                             "Band Pass" : self.design_opt_bpf,
-                            "High Pass" :  self.design_opt_hpf}        
+                            "Complex Band Pass" : self.design_opt_cbpf,
+                            "High Pass" :  self.design_opt_hpf}
                 taps,r = designer[ftype](fs, gain)
 
             else:
@@ -381,6 +380,28 @@ class gr_plot_filter(QtGui.QMainWindow):
         else:
             return ([],r)
 
+    def design_opt_cbpf(self, fs, gain, wintype=None):
+        ret = True
+        pb1,r = self.gui.startofBpfPassBandEdit.text().toDouble()
+        ret = r and ret
+        pb2,r = self.gui.endofBpfPassBandEdit.text().toDouble()
+        ret = r and ret
+        tb,r  = self.gui.bpfTransitionEdit.text().toDouble()
+        ret = r and ret
+        atten,r = self.gui.bpfStopBandAttenEdit.text().toDouble()
+        ret = r and ret
+        ripple,r = self.gui.bpfPassBandRippleEdit.text().toDouble()
+        ret = r and ret
+
+        if(r):
+            sb1 = pb1 - tb
+            sb2 = pb2 + tb
+            taps = blks2.optfir.complex_band_pass(gain, fs, sb1, pb1, pb2, sb2,
+                                                  ripple, atten)
+            return (taps,r)
+        else:
+            return ([],r)
+
     def design_opt_hpf(self, fs, gain, wintype=None):
         ret = True
         sb,r = self.gui.endofHpfStopBandEdit.text().toDouble()
-- 
cgit v1.2.3