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