summaryrefslogtreecommitdiff
path: root/gr-utils
diff options
context:
space:
mode:
authorTom <trondeau@vt.edu>2009-08-24 00:24:26 -0400
committerTom <trondeau@vt.edu>2009-08-24 00:24:26 -0400
commit22a68fa5fab3307cd0ea3c4f3ba4270936fead6a (patch)
treea6d6e5e23950ec0cfb7b4f91dfd4f6693ce0fe7f /gr-utils
parenta297059a8c5169edf8ef39d66ac556229dcfe640 (diff)
Added design for RRC filters.
Diffstat (limited to 'gr-utils')
-rwxr-xr-xgr-utils/src/python/gr_filter_design.py19
-rw-r--r--gr-utils/src/python/pyqt_filter.py30
-rw-r--r--gr-utils/src/python/pyqt_filter.ui36
3 files changed, 81 insertions, 4 deletions
diff --git a/gr-utils/src/python/gr_filter_design.py b/gr-utils/src/python/gr_filter_design.py
index 9ef12294d5..2d0c72c762 100755
--- a/gr-utils/src/python/gr_filter_design.py
+++ b/gr-utils/src/python/gr_filter_design.py
@@ -149,6 +149,8 @@ class gr_plot_filter(QtGui.QMainWindow):
self.gui.filterTypeWidget.setCurrentWidget(self.gui.firbnfPage)
elif(ftype == "High Pass"):
self.gui.filterTypeWidget.setCurrentWidget(self.gui.firhpfPage)
+ elif(ftype == "Root Raised Cosine"):
+ self.gui.filterTypeWidget.setCurrentWidget(self.gui.rrcPage)
self.design()
@@ -200,7 +202,8 @@ class gr_plot_filter(QtGui.QMainWindow):
"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}
+ "High Pass" : self.design_win_hpf,
+ "Root Raised Cosine" : self.design_win_rrc}
wintype = self.filterWindows[winstr]
taps,r = designer[ftype](fs, gain, wintype)
@@ -302,7 +305,21 @@ class gr_plot_filter(QtGui.QMainWindow):
else:
return ([],r)
+ def design_win_rrc(self, fs, gain, wintype):
+ ret = True
+ sr,r = self.gui.rrcSymbolRateEdit.text().toDouble()
+ ret = r and ret
+ alpha,r = self.gui.rrcAlphaEdit.text().toDouble()
+ ret = r and ret
+ ntaps,r = self.gui.rrcNumTapsEdit.text().toInt()
+ ret = r and ret
+ if(r):
+ taps = gr.firdes.root_raised_cosine(gain, fs, sr,
+ alpha, ntaps)
+ return (taps,r)
+ else:
+ return ([],r)
# Design Functions for Equiripple Filters
def design_opt_lpf(self, fs, gain, wintype=None):
diff --git a/gr-utils/src/python/pyqt_filter.py b/gr-utils/src/python/pyqt_filter.py
index 5fa0979de6..15fccd27a3 100644
--- a/gr-utils/src/python/pyqt_filter.py
+++ b/gr-utils/src/python/pyqt_filter.py
@@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'pyqt_filter.ui'
#
-# Created: Sun Aug 23 23:26:14 2009
+# Created: Mon Aug 24 00:20:11 2009
# by: PyQt4 UI code generator 4.4.4
#
# WARNING! All changes made in this file will be lost!
@@ -188,6 +188,29 @@ class Ui_MainWindow(object):
self.hpfPassBandRippleEdit.setObjectName("hpfPassBandRippleEdit")
self.formLayout_3.setWidget(3, QtGui.QFormLayout.FieldRole, self.hpfPassBandRippleEdit)
self.filterTypeWidget.addWidget(self.firhpfPage)
+ self.rrcPage = QtGui.QWidget()
+ self.rrcPage.setObjectName("rrcPage")
+ self.formLayout_6 = QtGui.QFormLayout(self.rrcPage)
+ self.formLayout_6.setObjectName("formLayout_6")
+ self.rrcSymbolRateLabel = QtGui.QLabel(self.rrcPage)
+ self.rrcSymbolRateLabel.setObjectName("rrcSymbolRateLabel")
+ self.formLayout_6.setWidget(0, QtGui.QFormLayout.LabelRole, self.rrcSymbolRateLabel)
+ self.rrcAlphaLabel = QtGui.QLabel(self.rrcPage)
+ self.rrcAlphaLabel.setObjectName("rrcAlphaLabel")
+ self.formLayout_6.setWidget(1, QtGui.QFormLayout.LabelRole, self.rrcAlphaLabel)
+ self.rrcNumTapsLabel = QtGui.QLabel(self.rrcPage)
+ self.rrcNumTapsLabel.setObjectName("rrcNumTapsLabel")
+ self.formLayout_6.setWidget(2, QtGui.QFormLayout.LabelRole, self.rrcNumTapsLabel)
+ self.rrcSymbolRateEdit = QtGui.QLineEdit(self.rrcPage)
+ self.rrcSymbolRateEdit.setObjectName("rrcSymbolRateEdit")
+ self.formLayout_6.setWidget(0, QtGui.QFormLayout.FieldRole, self.rrcSymbolRateEdit)
+ self.rrcAlphaEdit = QtGui.QLineEdit(self.rrcPage)
+ self.rrcAlphaEdit.setObjectName("rrcAlphaEdit")
+ self.formLayout_6.setWidget(1, QtGui.QFormLayout.FieldRole, self.rrcAlphaEdit)
+ self.rrcNumTapsEdit = QtGui.QLineEdit(self.rrcPage)
+ self.rrcNumTapsEdit.setObjectName("rrcNumTapsEdit")
+ self.formLayout_6.setWidget(2, QtGui.QFormLayout.FieldRole, self.rrcNumTapsEdit)
+ self.filterTypeWidget.addWidget(self.rrcPage)
self.verticalLayout.addWidget(self.filterTypeWidget)
self.sysParamsBox = QtGui.QGroupBox(self.filterFrame)
self.sysParamsBox.setObjectName("sysParamsBox")
@@ -262,7 +285,7 @@ class Ui_MainWindow(object):
self.menubar.addAction(self.menu_File.menuAction())
self.retranslateUi(MainWindow)
- self.filterTypeWidget.setCurrentIndex(2)
+ self.filterTypeWidget.setCurrentIndex(4)
self.tabGroup.setCurrentIndex(0)
QtCore.QObject.connect(self.action_exit, QtCore.SIGNAL("activated()"), MainWindow.close)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
@@ -320,6 +343,9 @@ class Ui_MainWindow(object):
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))
self.hpfPassBandRippleLabel.setText(QtGui.QApplication.translate("MainWindow", "Pass Band Ripple (dB)", None, QtGui.QApplication.UnicodeUTF8))
+ self.rrcSymbolRateLabel.setText(QtGui.QApplication.translate("MainWindow", "Symbol Rate (sps)", None, QtGui.QApplication.UnicodeUTF8))
+ self.rrcAlphaLabel.setText(QtGui.QApplication.translate("MainWindow", "Roll-off Factor", None, QtGui.QApplication.UnicodeUTF8))
+ self.rrcNumTapsLabel.setText(QtGui.QApplication.translate("MainWindow", "Number of Taps", None, QtGui.QApplication.UnicodeUTF8))
self.sysParamsBox.setTitle(QtGui.QApplication.translate("MainWindow", "System Parameters", None, QtGui.QApplication.UnicodeUTF8))
self.nfftLabel.setText(QtGui.QApplication.translate("MainWindow", "Num FFT points", None, QtGui.QApplication.UnicodeUTF8))
self.designButton.setText(QtGui.QApplication.translate("MainWindow", "Design", None, QtGui.QApplication.UnicodeUTF8))
diff --git a/gr-utils/src/python/pyqt_filter.ui b/gr-utils/src/python/pyqt_filter.ui
index 4e6c958a5f..199e339a5c 100644
--- a/gr-utils/src/python/pyqt_filter.ui
+++ b/gr-utils/src/python/pyqt_filter.ui
@@ -157,7 +157,7 @@
<item>
<widget class="QStackedWidget" name="filterTypeWidget">
<property name="currentIndex">
- <number>2</number>
+ <number>4</number>
</property>
<widget class="QWidget" name="firlpfPage">
<layout class="QFormLayout" name="formLayout">
@@ -348,6 +348,40 @@
</item>
</layout>
</widget>
+ <widget class="QWidget" name="rrcPage">
+ <layout class="QFormLayout" name="formLayout_6">
+ <item row="0" column="0">
+ <widget class="QLabel" name="rrcSymbolRateLabel">
+ <property name="text">
+ <string>Symbol Rate (sps)</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="rrcAlphaLabel">
+ <property name="text">
+ <string>Roll-off Factor</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="rrcNumTapsLabel">
+ <property name="text">
+ <string>Number of Taps</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="rrcSymbolRateEdit"/>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="rrcAlphaEdit"/>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLineEdit" name="rrcNumTapsEdit"/>
+ </item>
+ </layout>
+ </widget>
</widget>
</item>
<item>