Added design for Guassian filters.
[debian/gnuradio] / gr-utils / src / python / gr_filter_design.py
index 2d0c72c7621e73dd16ad83db52ddcadb6ba24d7f..0579d0fe2313d4e792e5c32b4ca8362ee3974c5b 100755 (executable)
@@ -151,6 +151,8 @@ class gr_plot_filter(QtGui.QMainWindow):
             self.gui.filterTypeWidget.setCurrentWidget(self.gui.firhpfPage)
         elif(ftype == "Root Raised Cosine"):
             self.gui.filterTypeWidget.setCurrentWidget(self.gui.rrcPage)
+        elif(ftype == "Gaussian"):
+            self.gui.filterTypeWidget.setCurrentWidget(self.gui.gausPage)
 
         self.design()
         
@@ -203,7 +205,8 @@ class gr_plot_filter(QtGui.QMainWindow):
                             "Complex Band Pass" : self.design_win_cbpf,
                             "Band Notch" : self.design_win_bnf,
                             "High Pass" :  self.design_win_hpf,
-                            "Root Raised Cosine" :  self.design_win_rrc}
+                            "Root Raised Cosine" :  self.design_win_rrc,
+                            "Gaussian" :  self.design_win_gaus}
                 wintype = self.filterWindows[winstr]
                 taps,r = designer[ftype](fs, gain, wintype)
 
@@ -321,6 +324,22 @@ class gr_plot_filter(QtGui.QMainWindow):
         else:
             return ([],r)
 
+    def design_win_gaus(self, fs, gain, wintype):
+        ret = True
+        sr,r = self.gui.gausSymbolRateEdit.text().toDouble()
+        ret = r and ret
+        bt,r = self.gui.gausBTEdit.text().toDouble()
+        ret = r and ret
+        ntaps,r = self.gui.gausNumTapsEdit.text().toInt()
+        ret = r and ret
+
+        if(r):
+            spb = fs / sr
+            taps = gr.firdes.gaussian(gain, spb, bt, ntaps)
+            return (taps,r)
+        else:
+            return ([],r)
+
     # Design Functions for Equiripple Filters
     def design_opt_lpf(self, fs, gain, wintype=None):
         ret = True