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()
"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)
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):
# 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!
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")
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)
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))
<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">
</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>