diff options
author | jcorgan | 2009-01-27 16:10:28 +0000 |
---|---|---|
committer | jcorgan | 2009-01-27 16:10:28 +0000 |
commit | f0d8ab4f2f2cf681994e1ab9a2f5c7dbcd9419cd (patch) | |
tree | 96a7fb8129f5d6418dd3a96381d2130e4e4cfb5e /gnuradio-examples | |
parent | e4e520f0dbff5473993e33ad4a0237c461d2c212 (diff) | |
download | gnuradio-f0d8ab4f2f2cf681994e1ab9a2f5c7dbcd9419cd.tar.gz gnuradio-f0d8ab4f2f2cf681994e1ab9a2f5c7dbcd9419cd.tar.bz2 gnuradio-f0d8ab4f2f2cf681994e1ab9a2f5c7dbcd9419cd.zip |
Removed DECT Python example. Refer to DECT project in CGRAN for a more comprehensive example.
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@10313 221aa14e-8319-0410-a670-987f0aec2ac5
Diffstat (limited to 'gnuradio-examples')
-rw-r--r-- | gnuradio-examples/python/Makefile.am | 1 | ||||
-rw-r--r-- | gnuradio-examples/python/dect/Makefile.am | 33 | ||||
-rw-r--r-- | gnuradio-examples/python/dect/README | 46 | ||||
-rw-r--r-- | gnuradio-examples/python/dect/dect_receiver.py | 80 | ||||
-rwxr-xr-x | gnuradio-examples/python/dect/usrp_dect.py | 62 | ||||
-rw-r--r-- | gnuradio-examples/python/dect/usrp_source.py | 124 |
6 files changed, 0 insertions, 346 deletions
diff --git a/gnuradio-examples/python/Makefile.am b/gnuradio-examples/python/Makefile.am index 079d5da60..068bf560d 100644 --- a/gnuradio-examples/python/Makefile.am +++ b/gnuradio-examples/python/Makefile.am @@ -24,7 +24,6 @@ include $(top_srcdir)/Makefile.common SUBDIRS = \ apps \ audio \ - dect \ digital \ digital-bert \ digital_voice \ diff --git a/gnuradio-examples/python/dect/Makefile.am b/gnuradio-examples/python/dect/Makefile.am deleted file mode 100644 index c65bd4c42..000000000 --- a/gnuradio-examples/python/dect/Makefile.am +++ /dev/null @@ -1,33 +0,0 @@ -# -# Copyright 2007 Free Software Foundation, Inc. -# -# This file is part of GNU Radio -# -# GNU Radio is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GNU Radio is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Radio; see the file COPYING. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, -# Boston, MA 02110-1301, USA. -# - -include $(top_srcdir)/Makefile.common - -EXTRA_DIST = \ - README \ - dect_receiver.py \ - usrp_source.py \ - usrp_dect.py - -ourdatadir = $(exampledir)/dect -ourdata_DATA = $(EXTRA_DIST) - -MOSTLYCLEANFILES = *.pyc *~ diff --git a/gnuradio-examples/python/dect/README b/gnuradio-examples/python/dect/README deleted file mode 100644 index c8853f185..000000000 --- a/gnuradio-examples/python/dect/README +++ /dev/null @@ -1,46 +0,0 @@ -This directory contains a work in progress service monitor for DECT -digital cordless phone base stations and handsets. - - -Status ------- - -2007 Apr 27 - Converted to new hier_block2 format -2007 Apr 03 - Development on hold. -2007 Feb 11 - Added GMSK demodulation and option to log to file -2007 Feb 10 - Able to tune and log filtered baseband to file - - -Files ------ - -usrp_dect.py - DECT receiver application - -dect_receiver.py - Top-level hierarchical block (new type) implementing - receiver - -usrp_source.py - Hierarchical block (new type) implementing a USRP - complex source, with convenience functions for tuning, - gain, decimation, etc. - -gmsk2.py - Hierarchical block (new type) implementing GMSK - modulation and demodulation. This will eventually go - into the core blksimpl directory - -DECT Modulation Details ------------------------ - -In the US, the FCC has allocated four carrier frequencies for DECT usage: - -Channel Frequency -------- --------- - 1 1921.536 MHz - 2 1923.264 MHz - 3 1924.992 MHz - 4 1926.720 MHz - -These are spaced at 1.728 MHz intervals. - -The DECT PHY uses GMSK with a 0.5 bandwidth-time product at 1.152 Msym/sec, -for an occupied bandwidth (99% power) of 1.186 MHz (1.03 x symbol rate.) - diff --git a/gnuradio-examples/python/dect/dect_receiver.py b/gnuradio-examples/python/dect/dect_receiver.py deleted file mode 100644 index 89e60c949..000000000 --- a/gnuradio-examples/python/dect/dect_receiver.py +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2007 Free Software Foundation, Inc. -# -# This file is part of GNU Radio -# -# GNU Radio is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GNU Radio is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Radio; see the file COPYING. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, -# Boston, MA 02110-1301, USA. -# - -from gnuradio import gr, optfir, blks2 -from usrp_source import usrp_source_c - -_dect_symbol_rate = 1.152e6 -_dect_occupied_bandwidth = _dect_symbol_rate * 1.03 # BT=0.5 -_dect_channel_bandwidth = 1.728e6 - -# Top-level hierarchical block that implements DECT demodulation and -# decoding. -class dect_receiver(gr.top_block): - def __init__(self, options): - gr.top_block.__init__(self, "dect_receiver") - self._options = options - - # Need greater than 2 samples per symbol. This makes a decimation - # rate of 26 and a samples per symbol of 2.136752 - if_rate = 2.461538e6 - self._usrp = usrp_source_c(which=0, - subdev_spec=options.rx_subdev_spec, - if_rate=if_rate, - gain=options.gain, - freq=options.freq, - calibration=options.calibration, - verbose=options.verbose) - - # Filter baseband to 1.186 MHz passband, 1.728 MHz stopband - chan_taps = optfir.low_pass(1.0, # Gain - if_rate, # Sample rate - _dect_occupied_bandwidth/2, # One sided modulation bandwidth - _dect_channel_bandwidth/2, # One sided channel bandwidth - 1.0, # Passband ripple (db) - 60) # Stopband attenuation (db) - if self._options.verbose: - print "Channel filter has", len(chan_taps), "taps" - self._channel_filter = gr.freq_xlating_fir_filter_ccf(1, # Decimation rate - chan_taps, # Filter taps - 0.0, # Offset frequency - if_rate) # Sample rate - - self._demod = blks2.gmsk_demod(samples_per_symbol=if_rate/_dect_symbol_rate, - verbose=options.verbose) - - self._sink = gr.null_sink(gr.sizeof_char) - self.connect(self._usrp, self._channel_filter, self._demod, self._sink) - - # Log baseband to file if requested - if options.log_baseband is not None: - if options.verbose: - print "Logging baseband to file", options.log_baseband - self.baseband_log = gr.file_sink(gr.sizeof_gr_complex, options.log_baseband) - self.connect(self._channel_filter, self.baseband_log) - - # Log demodulator output to file if requested - if options.log_demod is not None: - if options.verbose: - print "Logging demodulator to file", options.log_demod - self.demod_log = gr.file_sink(gr.sizeof_char, options.log_demod) - self.connect(self._demod, self.demod_log) diff --git a/gnuradio-examples/python/dect/usrp_dect.py b/gnuradio-examples/python/dect/usrp_dect.py deleted file mode 100755 index 27259d812..000000000 --- a/gnuradio-examples/python/dect/usrp_dect.py +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2007 Free Software Foundation, Inc. -# -# This file is part of GNU Radio -# -# GNU Radio is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GNU Radio is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Radio; see the file COPYING. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, -# Boston, MA 02110-1301, USA. -# - -from gnuradio import gr, eng_notation -from gnuradio.eng_option import eng_option -from optparse import OptionParser -from dect_receiver import dect_receiver -import sys - -def main(): - parser = OptionParser(option_class=eng_option) - parser.add_option("-R", "--rx-subdev-spec", type="subdev", default=None, - help="select USRP Rx side A or B (default=first one with a daughterboard)") - parser.add_option("-f", "--freq", type="eng_float", default=None, - help="set frequency to FREQ", metavar="FREQ") - parser.add_option("", "--calibration", type="eng_float", default=0.0, - help="set frequency calibration offset to FREQ") - parser.add_option("-g", "--gain", type="eng_float", default=None, - help="set gain in dB (default is midpoint)") - parser.add_option("-v", "--verbose", action="store_true", default=False, - help="print extra debugging info") - parser.add_option("", "--log-baseband", default=None, - help="log filtered baseband to file") - parser.add_option("", "--log-demod", default=None, - help="log demodulator output to file") - (options, args) = parser.parse_args() - - if len(sys.argv) == 1 or len(args) != 0: - parser.print_help() - sys.exit(1) - - # Create an instance of a hierarchical block - top_block = dect_receiver(options) - - try: - # Run forever - top_block.run() - except KeyboardInterrupt: - # Ctrl-C exits - pass - -if __name__ == '__main__': - main () diff --git a/gnuradio-examples/python/dect/usrp_source.py b/gnuradio-examples/python/dect/usrp_source.py deleted file mode 100644 index df19ff278..000000000 --- a/gnuradio-examples/python/dect/usrp_source.py +++ /dev/null @@ -1,124 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2007 Free Software Foundation, Inc. -# -# This file is part of GNU Radio -# -# GNU Radio is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GNU Radio is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Radio; see the file COPYING. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, -# Boston, MA 02110-1301, USA. -# - -from gnuradio import gr, usrp, eng_notation -n2s = eng_notation.num_to_str - -# Hierarchical block implementing a USRP source for complex floats, -# with convenience functions for gain, tune, decimation, etc. -# -class usrp_source_c(gr.hier_block2): - """ - Create a USRP source object supplying complex floats. - """ - def __init__(self, which=0, subdev_spec=None, gain=None, if_rate=None, - freq=0.0, calibration=0.0, verbose=False): - # Call hierarchical block constructor - gr.hier_block2.__init__(self, - "usrp_source_c", # Block typename - gr.io_signature(0,0,0), # Input signature - gr.io_signature(1,1,gr.sizeof_gr_complex)) # Output signature - - self._verbose = verbose - self._u = usrp.source_c(which) - if self._verbose: - print 'ADC sample rate is', n2s(self._u.adc_rate()), "sps" - self.set_subdev(subdev_spec) - self.set_if_rate(if_rate) - self.set_gain(gain) - self.set_calibration(calibration) - self.tune(freq) - self.connect(self._u, self) - - def set_subdev(self, subdev_spec): - if subdev_spec is None: - subdev_spec = self.pick_subdevice() - self._subdev = usrp.selected_subdev(self._u, subdev_spec) - self._u.set_mux(usrp.determine_rx_mux_value(self._u, subdev_spec)) - if self._verbose: - print 'RX using', self._subdev.name(), 'daughterboard' - - def pick_subdevice(self): - """ - The user didn't specify a subdevice. - If there's a daughterboard on A, select A. - If there's a daughterboard on B, select B. - Otherwise, select A. - """ - if self._u.db(0, 0).dbid() >= 0: # dbid is < 0 if there's no d'board or a problem - return (0, 0) - if self._u.db(1, 0).dbid() >= 0: - return (1, 0) - return (0, 0) - - def set_if_rate(self, if_rate): - # If no IF rate specified, set to maximum decimation - if if_rate is None: - self._decim = 256 - else: - self._decim = int(self._u.adc_rate()/if_rate) - - self._u.set_decim_rate(self._decim) - self._if_rate = self._u.adc_rate()/self._decim - - if self._verbose: - print "USRP decimation rate is", self._decim - print "USRP IF rate is", n2s(self._if_rate), "sps" - - def set_gain(self, gain): - # If no gain specified, set to midrange - if gain is None: - g = self._subdev.gain_range() - gain = (g[0]+g[1])/2.0 - self._gain = gain - self._subdev.set_gain(self._gain) - - def set_calibration(self, calibration): - self._cal = calibration - if self._verbose: - print "Using frequency calibration offset of", n2s(calibration), "Hz" - - def tune(self, freq): - """ - Set the center frequency we're interested in. - - @param target_freq: frequency in Hz - @type: bool - - Tuning is a two step process. First we ask the front-end to - tune as close to the desired frequency as it can. Then we use - the result of that operation and our target_frequency to - determine the value for the digital down converter. - """ - self._tune_result = usrp.tune(self._u, 0, self._subdev, freq+self._cal) - if self._tune_result: - if self._verbose: - print "Baseband frequency is", n2s(self._tune_result.baseband_freq), "Hz" - print "DXC frequency is", n2s(self._tune_result.dxc_freq), "Hz" - print "Center frequency is", n2s(freq), "Hz" - print "Residual frequency is", n2s(self._tune_result.residual_freq), "Hz" - return True - - return False - -if __name__ == '__main__': - src = usrp_source_c(verbose=True) |