Added Band Notch filter
authorTom <trondeau@vt.edu>
Mon, 24 Aug 2009 03:27:05 +0000 (23:27 -0400)
committerTom <trondeau@vt.edu>
Mon, 24 Aug 2009 03:27:05 +0000 (23:27 -0400)
gr-utils/src/python/gr_filter_design.py
gr-utils/src/python/pyqt_filter.py
gr-utils/src/python/pyqt_filter.ui

index c69fa26c7cb7be06b0b17842c22b300c9d57b67d..9ef12294d5bfc94da5fc8a632262a46bf7a45611 100755 (executable)
@@ -145,6 +145,8 @@ class gr_plot_filter(QtGui.QMainWindow):
             self.gui.filterTypeWidget.setCurrentWidget(self.gui.firbpfPage)
         elif(ftype == "Complex Band Pass"):
             self.gui.filterTypeWidget.setCurrentWidget(self.gui.firbpfPage)
+        elif(ftype == "Band Notch"):
+            self.gui.filterTypeWidget.setCurrentWidget(self.gui.firbnfPage)
         elif(ftype == "High Pass"):
             self.gui.filterTypeWidget.setCurrentWidget(self.gui.firhpfPage)
 
@@ -197,6 +199,7 @@ class gr_plot_filter(QtGui.QMainWindow):
                 designer = {"Low Pass" : self.design_win_lpf,
                             "Band Pass" : self.design_win_bpf,
                             "Complex Band Pass" : self.design_win_cbpf,
+                            "Band Notch" : self.design_win_bnf,
                             "High Pass" :  self.design_win_hpf}        
                 wintype = self.filterWindows[winstr]
                 taps,r = designer[ftype](fs, gain, wintype)
@@ -264,6 +267,24 @@ class gr_plot_filter(QtGui.QMainWindow):
         else:
             return ([],r)
 
+    def design_win_bnf(self, fs, gain, wintype):
+        ret = True
+        pb1,r = self.gui.startofBnfStopBandEdit.text().toDouble()
+        ret = r and ret
+        pb2,r = self.gui.endofBnfStopBandEdit.text().toDouble()
+        ret = r and ret
+        tb,r  = self.gui.bnfTransitionEdit.text().toDouble()
+        ret = r and ret
+        atten,r = self.gui.bnfStopBandAttenEdit.text().toDouble()
+        ret = r and ret
+
+        if(r):
+            taps = gr.firdes.band_reject_2(gain, fs, pb1, pb2, tb,
+                                           atten, wintype)
+            return (taps,r)
+        else:
+            return ([],r)
+
     def design_win_hpf(self, fs, gain, wintype):
         ret = True
         sb,r = self.gui.endofHpfStopBandEdit.text().toDouble()
index 6b95e03bbe5ec73bf9166382f7dbe78cc23258b1..5fa0979de60754c1746583e2420767c2335ae49d 100644 (file)
@@ -2,7 +2,7 @@
 
 # Form implementation generated from reading ui file 'pyqt_filter.ui'
 #
-# Created: Sun Aug 23 21:53:02 2009
+# Created: Sun Aug 23 23:26:14 2009
 #      by: PyQt4 UI code generator 4.4.4
 #
 # WARNING! All changes made in this file will be lost!
@@ -129,6 +129,35 @@ class Ui_MainWindow(object):
         self.bpfPassBandRippleLabel.setObjectName("bpfPassBandRippleLabel")
         self.formLayout_2.setWidget(4, QtGui.QFormLayout.LabelRole, self.bpfPassBandRippleLabel)
         self.filterTypeWidget.addWidget(self.firbpfPage)
+        self.firbnfPage = QtGui.QWidget()
+        self.firbnfPage.setObjectName("firbnfPage")
+        self.formLayout_5 = QtGui.QFormLayout(self.firbnfPage)
+        self.formLayout_5.setObjectName("formLayout_5")
+        self.startofBnfStopBandLabel = QtGui.QLabel(self.firbnfPage)
+        self.startofBnfStopBandLabel.setObjectName("startofBnfStopBandLabel")
+        self.formLayout_5.setWidget(0, QtGui.QFormLayout.LabelRole, self.startofBnfStopBandLabel)
+        self.startofBnfStopBandEdit = QtGui.QLineEdit(self.firbnfPage)
+        self.startofBnfStopBandEdit.setObjectName("startofBnfStopBandEdit")
+        self.formLayout_5.setWidget(0, QtGui.QFormLayout.FieldRole, self.startofBnfStopBandEdit)
+        self.endofBnfStopBandEdit = QtGui.QLineEdit(self.firbnfPage)
+        self.endofBnfStopBandEdit.setObjectName("endofBnfStopBandEdit")
+        self.formLayout_5.setWidget(1, QtGui.QFormLayout.FieldRole, self.endofBnfStopBandEdit)
+        self.bnfTransitionEdit = QtGui.QLineEdit(self.firbnfPage)
+        self.bnfTransitionEdit.setObjectName("bnfTransitionEdit")
+        self.formLayout_5.setWidget(2, QtGui.QFormLayout.FieldRole, self.bnfTransitionEdit)
+        self.bnfStopBandAttenEdit = QtGui.QLineEdit(self.firbnfPage)
+        self.bnfStopBandAttenEdit.setObjectName("bnfStopBandAttenEdit")
+        self.formLayout_5.setWidget(3, QtGui.QFormLayout.FieldRole, self.bnfStopBandAttenEdit)
+        self.endofBnfStopBandLabel = QtGui.QLabel(self.firbnfPage)
+        self.endofBnfStopBandLabel.setObjectName("endofBnfStopBandLabel")
+        self.formLayout_5.setWidget(1, QtGui.QFormLayout.LabelRole, self.endofBnfStopBandLabel)
+        self.bnfTransitionLabel = QtGui.QLabel(self.firbnfPage)
+        self.bnfTransitionLabel.setObjectName("bnfTransitionLabel")
+        self.formLayout_5.setWidget(2, QtGui.QFormLayout.LabelRole, self.bnfTransitionLabel)
+        self.bnfStopBandAttenLabel = QtGui.QLabel(self.firbnfPage)
+        self.bnfStopBandAttenLabel.setObjectName("bnfStopBandAttenLabel")
+        self.formLayout_5.setWidget(3, QtGui.QFormLayout.LabelRole, self.bnfStopBandAttenLabel)
+        self.filterTypeWidget.addWidget(self.firbnfPage)
         self.firhpfPage = QtGui.QWidget()
         self.firhpfPage.setObjectName("firhpfPage")
         self.formLayout_3 = QtGui.QFormLayout(self.firhpfPage)
@@ -283,6 +312,10 @@ class Ui_MainWindow(object):
         self.bpfStopBandAttenLabel.setText(QtGui.QApplication.translate("MainWindow", "Stop Band Attenuation (dB)", None, QtGui.QApplication.UnicodeUTF8))
         self.bpfTransitionLabel.setText(QtGui.QApplication.translate("MainWindow", "Transition Width (Hz)", None, QtGui.QApplication.UnicodeUTF8))
         self.bpfPassBandRippleLabel.setText(QtGui.QApplication.translate("MainWindow", "Pass Band Ripple (dB)", None, QtGui.QApplication.UnicodeUTF8))
+        self.startofBnfStopBandLabel.setText(QtGui.QApplication.translate("MainWindow", "Start of Stop Band (Hz)", None, QtGui.QApplication.UnicodeUTF8))
+        self.endofBnfStopBandLabel.setText(QtGui.QApplication.translate("MainWindow", "End of Stop Band (Hz)", None, QtGui.QApplication.UnicodeUTF8))
+        self.bnfTransitionLabel.setText(QtGui.QApplication.translate("MainWindow", "Transition Width (Hz)", None, QtGui.QApplication.UnicodeUTF8))
+        self.bnfStopBandAttenLabel.setText(QtGui.QApplication.translate("MainWindow", "Stop Band Attenuation (dB)", None, QtGui.QApplication.UnicodeUTF8))
         self.endofHpfStopBandLabel.setText(QtGui.QApplication.translate("MainWindow", "End of Stop Band (Hz)", None, QtGui.QApplication.UnicodeUTF8))
         self.startofHpfPassBandLabel.setText(QtGui.QApplication.translate("MainWindow", "Start of Pass Band (Hz)", None, QtGui.QApplication.UnicodeUTF8))
         self.hpfStopBandAttenLabel.setText(QtGui.QApplication.translate("MainWindow", "Stop Band Attenuation (dB)", None, QtGui.QApplication.UnicodeUTF8))
index 773b4cca92fb38f6a3558762682b3eb9d256833c..4e6c958a5f5c0d09beb2b3632f525a2b8613a581 100644 (file)
            </item>
           </layout>
          </widget>
+         <widget class="QWidget" name="firbnfPage">
+          <layout class="QFormLayout" name="formLayout_5">
+           <item row="0" column="0">
+            <widget class="QLabel" name="startofBnfStopBandLabel">
+             <property name="text">
+              <string>Start of Stop Band (Hz)</string>
+             </property>
+            </widget>
+           </item>
+           <item row="0" column="1">
+            <widget class="QLineEdit" name="startofBnfStopBandEdit"/>
+           </item>
+           <item row="1" column="1">
+            <widget class="QLineEdit" name="endofBnfStopBandEdit"/>
+           </item>
+           <item row="2" column="1">
+            <widget class="QLineEdit" name="bnfTransitionEdit"/>
+           </item>
+           <item row="3" column="1">
+            <widget class="QLineEdit" name="bnfStopBandAttenEdit"/>
+           </item>
+           <item row="1" column="0">
+            <widget class="QLabel" name="endofBnfStopBandLabel">
+             <property name="text">
+              <string>End of Stop Band (Hz)</string>
+             </property>
+            </widget>
+           </item>
+           <item row="2" column="0">
+            <widget class="QLabel" name="bnfTransitionLabel">
+             <property name="text">
+              <string>Transition Width (Hz)</string>
+             </property>
+            </widget>
+           </item>
+           <item row="3" column="0">
+            <widget class="QLabel" name="bnfStopBandAttenLabel">
+             <property name="text">
+              <string>Stop Band Attenuation (dB)</string>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </widget>
          <widget class="QWidget" name="firhpfPage">
           <layout class="QFormLayout" name="formLayout_3">
            <property name="fieldGrowthPolicy">