summaryrefslogtreecommitdiff
path: root/gnuradio-examples/python/usrp/test_dft_analysis.py
diff options
context:
space:
mode:
authorjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>2008-01-19 19:16:31 +0000
committerjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>2008-01-19 19:16:31 +0000
commitd830a4547256be3096db83118f6e9ffe299f8ecf (patch)
treeaff290e911ce0350c9e56f6197538bed2d9dd496 /gnuradio-examples/python/usrp/test_dft_analysis.py
parent0e47d4d37249d01d3b15684b95c941731c0505e4 (diff)
Fixes ticket:229. Fixed code in synthesis filterbank, restored test programs from limbo and upgraded to use blks2.
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@7476 221aa14e-8319-0410-a670-987f0aec2ac5
Diffstat (limited to 'gnuradio-examples/python/usrp/test_dft_analysis.py')
-rwxr-xr-xgnuradio-examples/python/usrp/test_dft_analysis.py72
1 files changed, 72 insertions, 0 deletions
diff --git a/gnuradio-examples/python/usrp/test_dft_analysis.py b/gnuradio-examples/python/usrp/test_dft_analysis.py
new file mode 100755
index 0000000000..49db6bf2a7
--- /dev/null
+++ b/gnuradio-examples/python/usrp/test_dft_analysis.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python
+
+from gnuradio import gr, gru, blks2
+from gnuradio.wxgui import stdgui2, fftsink2, slider
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+import wx
+
+class test_graph (stdgui2.std_top_block):
+ def __init__(self, frame, panel, vbox, argv):
+ stdgui2.std_top_block.__init__(self, frame, panel, vbox, argv)
+
+ parser = OptionParser (option_class=eng_option)
+ (options, args) = parser.parse_args ()
+
+ sample_rate = 16e3
+ mpoints = 4
+ ampl = 1000
+ freq = 0
+
+ lo_freq = 1e6
+ lo_ampl = 1
+
+ vbox.Add(slider.slider(panel,
+ -sample_rate/2, sample_rate/2,
+ self.set_lo_freq), 0, wx.ALIGN_CENTER)
+
+
+ src = gr.sig_source_c(sample_rate, gr.GR_CONST_WAVE,
+ freq, ampl, 0)
+
+ self.lo = gr.sig_source_c(sample_rate, gr.GR_SIN_WAVE,
+ lo_freq, lo_ampl, 0)
+
+ mixer = gr.multiply_cc()
+ self.connect(src, (mixer, 0))
+ self.connect(self.lo, (mixer, 1))
+
+ # We add these throttle blocks so that this demo doesn't
+ # suck down all the CPU available. Normally you wouldn't use these.
+ thr = gr.throttle(gr.sizeof_gr_complex, sample_rate)
+
+ taps = gr.firdes.low_pass(1, # gain
+ 1, # rate
+ 1.0/mpoints * 0.4, # cutoff
+ 1.0/mpoints * 0.1, # trans width
+ gr.firdes.WIN_HANN)
+ print len(taps)
+ analysis = blks2.analysis_filterbank(mpoints, taps)
+
+ self.connect(mixer, thr)
+ self.connect(thr, analysis)
+
+ for i in range(mpoints):
+ fft = fftsink2.fft_sink_c(frame, fft_size=128,
+ sample_rate=sample_rate/mpoints,
+ fft_rate=5,
+ title="Ch %d" % (i,))
+ self.connect((analysis, i), fft)
+ vbox.Add(fft.win, 1, wx.EXPAND)
+
+ def set_lo_freq(self, freq):
+ self.lo.set_frequency(freq)
+
+
+
+def main ():
+ app = stdgui2.stdapp (test_graph, "Test DFT filterbank")
+ app.MainLoop ()
+
+if __name__ == '__main__':
+ main ()