commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] [gnuradio] 02/03: digital: Delete deprecated OFDM bloc


From: git
Subject: [Commit-gnuradio] [gnuradio] 02/03: digital: Delete deprecated OFDM blocks and related examples
Date: Tue, 15 Nov 2016 19:18:50 +0000 (UTC)

This is an automated email from the git hooks/post-receive script.

jcorgan pushed a commit to branch next
in repository gnuradio.

commit bcc215389989b0a4589a9efe8ce807004bb7f2d4
Author: Martin Braun <address@hidden>
Date:   Fri Nov 4 09:43:04 2016 -0700

    digital: Delete deprecated OFDM blocks and related examples
---
 gr-digital/examples/ofdm/benchmark_rx.py           | 124 ---------
 gr-digital/examples/ofdm/benchmark_tx.py           | 124 ---------
 gr-digital/examples/ofdm/gr_plot_ofdm.py           | 278 ---------------------
 gr-digital/examples/ofdm/tunnel.py                 | 271 --------------------
 gr-digital/grc/digital_ofdm_demod.xml              | 144 -----------
 gr-digital/grc/digital_ofdm_frame_acquisition.xml  |  78 ------
 gr-digital/grc/digital_ofdm_frame_sink.xml         |  80 ------
 gr-digital/grc/digital_ofdm_insert_preamble.xml    |  64 -----
 gr-digital/grc/digital_ofdm_mod.xml                | 157 ------------
 gr-digital/grc/digital_ofdm_sampler.xml            |  68 -----
 gr-digital/grc/digital_ofdm_sync_pn.xml            |  62 -----
 .../gnuradio/digital/ofdm_frame_acquisition.h      |  83 ------
 .../include/gnuradio/digital/ofdm_frame_sink.h     |  72 ------
 .../gnuradio/digital/ofdm_insert_preamble.h        |  80 ------
 .../include/gnuradio/digital/ofdm_mapper_bcv.h     |  68 -----
 gr-digital/include/gnuradio/digital/ofdm_sampler.h |  58 -----
 16 files changed, 1811 deletions(-)

diff --git a/gr-digital/examples/ofdm/benchmark_rx.py 
b/gr-digital/examples/ofdm/benchmark_rx.py
deleted file mode 100755
index fdf8117..0000000
--- a/gr-digital/examples/ofdm/benchmark_rx.py
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2006,2007,2011,2013 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
-from gnuradio import eng_notation
-from gnuradio.eng_option import eng_option
-from optparse import OptionParser
-
-from gnuradio import blocks
-from gnuradio import digital
-
-# from current dir
-from receive_path import receive_path
-from uhd_interface import uhd_receiver
-
-import struct, sys
-
-class my_top_block(gr.top_block):
-    def __init__(self, callback, options):
-        gr.top_block.__init__(self)
-
-        if(options.rx_freq is not None):
-            self.source = uhd_receiver(options.args,
-                                       options.bandwidth, options.rx_freq, 
-                                       options.lo_offset, options.rx_gain,
-                                       options.spec, options.antenna,
-                                       options.clock_source, options.verbose)
-        elif(options.from_file is not None):
-            self.source = blocks.file_source(gr.sizeof_gr_complex, 
options.from_file)
-        else:
-            self.source = blocks.null_source(gr.sizeof_gr_complex)
-
-        # Set up receive path
-        # do this after for any adjustments to the options that may
-        # occur in the sinks (specifically the UHD sink)
-        self.rxpath = receive_path(callback, options)
-
-        self.connect(self.source, self.rxpath)
-        
-
-# /////////////////////////////////////////////////////////////////////////////
-#                                   main
-# /////////////////////////////////////////////////////////////////////////////
-
-def main():
-
-    global n_rcvd, n_right
-        
-    n_rcvd = 0
-    n_right = 0
-
-    def rx_callback(ok, payload):
-        global n_rcvd, n_right
-        n_rcvd += 1
-        (pktno,) = struct.unpack('!H', payload[0:2])
-        if ok:
-            n_right += 1
-        print "ok: %r \t pktno: %d \t n_rcvd: %d \t n_right: %d" % (ok, pktno, 
n_rcvd, n_right)
-
-        if 0:
-            printlst = list()
-            for x in payload[2:]:
-                t = hex(ord(x)).replace('0x', '')
-                if(len(t) == 1):
-                    t = '0' + t
-                printlst.append(t)
-            printable = ''.join(printlst)
-
-            print printable
-            print "\n"
-
-    parser = OptionParser(option_class=eng_option, conflict_handler="resolve")
-    expert_grp = parser.add_option_group("Expert")
-    parser.add_option("","--discontinuous", action="store_true", default=False,
-                      help="enable discontinuous")
-    parser.add_option("","--from-file", default=None,
-                      help="input file of samples to demod")
-
-    receive_path.add_options(parser, expert_grp)
-    uhd_receiver.add_options(parser)
-    digital.ofdm_demod.add_options(parser, expert_grp)
-
-    (options, args) = parser.parse_args ()
-
-    if options.from_file is None:
-        if options.rx_freq is None:
-            sys.stderr.write("You must specify -f FREQ or --freq FREQ\n")
-            parser.print_help(sys.stderr)
-            sys.exit(1)
-
-    # build the graph
-    tb = my_top_block(rx_callback, options)
-
-    r = gr.enable_realtime_scheduling()
-    if r != gr.RT_OK:
-        print "Warning: failed to enable realtime scheduling"
-
-    tb.start()                      # start flow graph
-    tb.wait()                       # wait for it to finish
-
-if __name__ == '__main__':
-    try:
-        main()
-    except KeyboardInterrupt:
-        pass
diff --git a/gr-digital/examples/ofdm/benchmark_tx.py 
b/gr-digital/examples/ofdm/benchmark_tx.py
deleted file mode 100755
index 47dc809..0000000
--- a/gr-digital/examples/ofdm/benchmark_tx.py
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2005,2006,2011,2013 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
-from gnuradio import eng_notation
-from gnuradio.eng_option import eng_option
-from optparse import OptionParser
-import time, struct, sys
-
-from gnuradio import digital
-from gnuradio import blocks
-
-# from current dir
-from transmit_path import transmit_path
-from uhd_interface import uhd_transmitter
-
-class my_top_block(gr.top_block):
-    def __init__(self, options):
-        gr.top_block.__init__(self)
-
-        if(options.tx_freq is not None):
-            self.sink = uhd_transmitter(options.args,
-                                        options.bandwidth, options.tx_freq, 
-                                        options.lo_offset, options.tx_gain,
-                                        options.spec, options.antenna,
-                                        options.clock_source, options.verbose)
-        elif(options.to_file is not None):
-            self.sink = blocks.file_sink(gr.sizeof_gr_complex, options.to_file)
-        else:
-            self.sink = blocks.null_sink(gr.sizeof_gr_complex)
-
-        # do this after for any adjustments to the options that may
-        # occur in the sinks (specifically the UHD sink)
-        self.txpath = transmit_path(options)
-
-        self.connect(self.txpath, self.sink)
-        
-# /////////////////////////////////////////////////////////////////////////////
-#                                   main
-# /////////////////////////////////////////////////////////////////////////////
-
-def main():
-
-    def send_pkt(payload='', eof=False):
-        return tb.txpath.send_pkt(payload, eof)
-
-    parser = OptionParser(option_class=eng_option, conflict_handler="resolve")
-    expert_grp = parser.add_option_group("Expert")
-    parser.add_option("-s", "--size", type="eng_float", default=400,
-                      help="set packet size [default=%default]")
-    parser.add_option("-M", "--megabytes", type="eng_float", default=1.0,
-                      help="set megabytes to transmit [default=%default]")
-    parser.add_option("","--discontinuous", action="store_true", default=False,
-                      help="enable discontinuous mode")
-    parser.add_option("","--from-file", default=None,
-                      help="use intput file for packet contents")
-    parser.add_option("","--to-file", default=None,
-                      help="Output file for modulated samples")
-
-    transmit_path.add_options(parser, expert_grp)
-    digital.ofdm_mod.add_options(parser, expert_grp)
-    uhd_transmitter.add_options(parser)
-
-    (options, args) = parser.parse_args ()
-
-    # build the graph
-    tb = my_top_block(options)
-    
-    r = gr.enable_realtime_scheduling()
-    if r != gr.RT_OK:
-        print "Warning: failed to enable realtime scheduling"
-
-    tb.start()                       # start flow graph
-    
-    # generate and send packets
-    nbytes = int(1e6 * options.megabytes)
-    n = 0
-    pktno = 0
-    pkt_size = int(options.size)
-
-    while n < nbytes:
-        if options.from_file is None:
-            data = (pkt_size - 2) * chr(pktno & 0xff) 
-        else:
-            data = source_file.read(pkt_size - 2)
-            if data == '':
-                break;
-
-        payload = struct.pack('!H', pktno & 0xffff) + data
-        send_pkt(payload)
-        n += len(payload)
-        sys.stderr.write('.')
-        if options.discontinuous and pktno % 5 == 4:
-            time.sleep(1)
-        pktno += 1
-        
-    send_pkt(eof=True)
-    time.sleep(2)               # allow time for queued packets to be sent
-    tb.wait()                   # wait for it to finish
-
-if __name__ == '__main__':
-    try:
-        main()
-    except KeyboardInterrupt:
-        pass
diff --git a/gr-digital/examples/ofdm/gr_plot_ofdm.py 
b/gr-digital/examples/ofdm/gr_plot_ofdm.py
deleted file mode 100755
index b248551..0000000
--- a/gr-digital/examples/ofdm/gr_plot_ofdm.py
+++ /dev/null
@@ -1,278 +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.
-# 
-
-import math, struct, sys
-from optparse import OptionParser
-from math import log10
-
-try:
-    import scipy
-    from scipy import fftpack
-except ImportError:
-    print "Error: Program requires scipy (see: www.scipy.org)."
-    sys.exit(1)
-
-try:
-    from pylab import *
-    from matplotlib.font_manager import fontManager, FontProperties
-except ImportError:
-    print "Error: Program requires matplotlib (see: 
matplotlib.sourceforge.net)."
-    sys.exit(1)
-
-matplotlib.interactive(True)
-matplotlib.use('TkAgg')
-
-class draw_constellation:
-    def __init__(self, options):
-        derot_file = "ofdm_frame_sink_c.dat"
-        acq_file = "ofdm_frame_acq_c.dat"
-        fft_file = "ofdm_receiver-fft_out_c.dat"
-
-        self.h_derot_file = open(derot_file, "r")
-        self.h_acq_file = open(acq_file, "r")
-        self.h_fft_file = open(fft_file, "r")
-
-        self.occ_tones = options.occ_tones
-        self.fft_size  = options.fft_size
-        self.symbol = options.start
-        self.sample_rate = options.sample_rate
-        
-        self.axis_font_size = 16
-        self.label_font_size = 18
-        self.title_font_size = 20
-        self.text_size = 22
-        
-        # Setup PLOT
-        self.fig = figure(1, figsize=(14, 9), facecolor='w')
-        rcParams['xtick.labelsize'] = self.axis_font_size
-        rcParams['ytick.labelsize'] = self.axis_font_size
-
-        self.text_sym = figtext(0.05, 0.95, ("Symbol: %s" % self.symbol), 
weight="heavy", size=self.text_size)
-
-        self.make_plots()
-
-        self.button_left_axes = self.fig.add_axes([0.45, 0.01, 0.05, 0.05], 
frameon=True)
-        self.button_left = Button(self.button_left_axes, "<")
-        self.button_left_callback = 
self.button_left.on_clicked(self.button_left_click)
-
-        self.button_right_axes = self.fig.add_axes([0.50, 0.01, 0.05, 0.05], 
frameon=True)
-        self.button_right = Button(self.button_right_axes, ">")
-        self.button_right_callback = 
self.button_right.on_clicked(self.button_right_click)
-
-        self.xlim = self.sp_eq.get_xlim()
-
-        self.manager = get_current_fig_manager()
-        #connect('draw_event', self.zoom)
-        connect('key_press_event', self.click)
-        show()
-
-    def get_data(self):
-        self.text_sym.set_text("Symbol: %d" % (self.symbol))
-
-        derot_data = scipy.fromfile(self.h_derot_file, dtype=scipy.complex64, 
count=self.occ_tones)
-        acq_data = scipy.fromfile(self.h_acq_file, dtype=scipy.complex64, 
count=self.occ_tones)
-        fft_data = scipy.fromfile(self.h_fft_file, dtype=scipy.complex64, 
count=self.fft_size)
-        if(len(acq_data) == 0):
-            print "End of File"
-        else:
-            self.acq_data_reals = [r.real for r in acq_data]
-            self.acq_data_imags = [i.imag for i in acq_data]
-            self.derot_data_reals = [r.real for r in derot_data]
-            self.derot_data_imags = [i.imag for i in derot_data]
-
-            self.unequalized_angle = [math.atan2(x.imag, x.real) for x in 
fft_data]
-            self.equalized_angle = [math.atan2(x.imag, x.real) for x in 
acq_data]
-            self.derot_equalized_angle = [math.atan2(x.imag, x.real) for x in 
derot_data]
-
-            self.time = [i*(1/self.sample_rate) for i in range(len(acq_data))]
-            ffttime = [i*(1/self.sample_rate) for i in range(len(fft_data))]
-
-            self.freq = self.get_freq(ffttime, self.sample_rate)
-
-            for i in range(len(fft_data)):
-                if(abs(fft_data[i]) == 0.0):
-                    fft_data[i] = complex(1e-6,1e-6)
-            self.fft_data = [20*log10(abs(f)) for f in fft_data]
-              
-    def get_freq(self, time, sample_rate, T=1):
-        N = len(time)
-        Fs = 1.0 / (max(time) - min(time))
-        Fn = 0.5 * sample_rate
-        freq = [-Fn + i*Fs for i in range(N)]
-        return freq
-
-    def make_plots(self):
-        self.h_acq_file.seek(8*self.symbol*self.occ_tones, 0)
-        self.h_fft_file.seek(8*self.symbol*self.fft_size, 0)
-        self.h_derot_file.seek(8*self.symbol*self.occ_tones, 0)
-
-        self.get_data()
-        
-        # Subplot:  constellation of rotated symbols
-        self.sp_const = self.fig.add_subplot(4,1,1, position=[0.15, 0.55, 0.3, 
0.35])
-        self.sp_const.set_title(("Constellation"), 
fontsize=self.title_font_size, fontweight="bold")
-        self.sp_const.set_xlabel("Inphase", fontsize=self.label_font_size, 
fontweight="bold")
-        self.sp_const.set_ylabel("Qaudrature", fontsize=self.label_font_size, 
fontweight="bold")
-        self.plot_const = plot(self.acq_data_reals, self.acq_data_imags, 'bo')
-        self.plot_const += plot(self.derot_data_reals, self.derot_data_imags, 
'ro')
-        self.sp_const.axis([-2, 2, -2, 2])
-
-        # Subplot: unequalized angle
-        self.sp_uneq = self.fig.add_subplot(4,2,1, position=[0.575, 0.55, 0.3, 
0.35])
-        self.sp_uneq.set_title(("Unequalized Angle"), 
fontsize=self.title_font_size, fontweight="bold")
-        self.sp_uneq.set_xlabel("Time (s)", fontsize=self.label_font_size, 
fontweight="bold")
-        self.sp_uneq.set_ylabel("Angle", fontsize=self.label_font_size, 
fontweight="bold")
-        uneqscale = range(len(self.unequalized_angle))
-        self.plot_uneq = plot(uneqscale, self.unequalized_angle, 'bo')
-
-        # Subplot: equalized angle
-        self.sp_eq = self.fig.add_subplot(4,1,2, position=[0.15, 0.1, 0.3, 
0.35])
-        self.sp_eq.set_title(("Equalized Angle"), 
fontsize=self.title_font_size, fontweight="bold")
-        self.sp_eq.set_xlabel("Time (s)", fontsize=self.label_font_size, 
fontweight="bold")
-        self.sp_eq.set_ylabel("Angle", fontsize=self.label_font_size, 
fontweight="bold")
-        eqscale = range(len(self.equalized_angle))
-        self.plot_eq = plot(eqscale, self.equalized_angle, 'bo')
-        self.plot_eq += plot(eqscale, self.derot_equalized_angle, 'ro', 
markersize=4)
-
-        # Subplot: FFT
-        self.sp_fft = self.fig.add_subplot(4,2,2, position=[0.575, 0.1, 0.3, 
0.35])
-        self.sp_fft.set_title(("FFT"), fontsize=self.title_font_size, 
fontweight="bold")
-        self.sp_fft.set_xlabel("Frequency (MHz)", 
fontsize=self.label_font_size, fontweight="bold")
-        self.sp_fft.set_ylabel("Power (dBm)", fontsize=self.label_font_size, 
fontweight="bold")
-        self.plot_fft = plot(self.freq, self.fft_data, '-bo')
-
-        draw()
-
-    def update_plots(self):
-        eqscale = range(len(self.equalized_angle))
-        uneqscale = range(len(self.unequalized_angle))
-        self.plot_eq[0].set_data([eqscale, self.equalized_angle])
-        self.plot_eq[1].set_data([eqscale, self.derot_equalized_angle])
-        self.plot_uneq[0].set_data([uneqscale, self.unequalized_angle])
-        self.sp_eq.set_ylim([-4, 4])
-        self.sp_uneq.set_ylim([-4, 4])
-
-        #self.sp_iq.axis([min(self.time), max(self.time),
-        #                 1.5*min([min(self.acq_data_reals), 
min(self.acq_data_imags)]),
-        #                 1.5*max([max(self.acq_data_reals), 
max(self.acq_data_imags)])])
-
-        self.plot_const[0].set_data([self.acq_data_reals, self.acq_data_imags])
-        self.plot_const[1].set_data([self.derot_data_reals, 
self.derot_data_imags])
-        self.sp_const.axis([-2, 2, -2, 2])
-
-        self.plot_fft[0].set_data([self.freq, self.fft_data])
-
-        draw()
-        
-    def zoom(self, event):
-        newxlim = self.sp_eq.get_xlim()
-        if(newxlim != self.xlim):
-            self.xlim = newxlim
-            r = self.reals[int(ceil(self.xlim[0])) : int(ceil(self.xlim[1]))]
-            i = self.imags[int(ceil(self.xlim[0])) : int(ceil(self.xlim[1]))]
-
-            self.plot_const[0].set_data(r, i)
-            self.sp_const.axis([-2, 2, -2, 2])
-            self.manager.canvas.draw()
-            draw()
-
-    def click(self, event):
-        forward_valid_keys = [" ", "down", "right"]
-        backward_valid_keys = ["up", "left"]
-
-        if(find(event.key, forward_valid_keys)):
-            self.step_forward()
-            
-        elif(find(event.key, backward_valid_keys)):
-            self.step_backward()
-
-    def button_left_click(self, event):
-        self.step_backward()
-
-    def button_right_click(self, event):
-        self.step_forward()
-
-    def step_forward(self):
-        self.symbol += 1
-        self.get_data()
-        self.update_plots()
-
-    def step_backward(self):
-        # Step back in file position
-        self.symbol -= 1
-        if(self.h_acq_file.tell() >= 16*self.occ_tones):
-            self.h_acq_file.seek(-16*self.occ_tones, 1)
-        else:
-            self.symbol = 0
-            self.h_acq_file.seek(-self.h_acq_file.tell(),1)
-
-
-        if(self.h_derot_file.tell() >= 16*self.occ_tones):
-            self.h_derot_file.seek(-16*self.occ_tones, 1)
-        else:
-            self.symbol = 0
-            self.h_derot_file.seek(-self.h_derot_file.tell(),1)
-
-
-        if(self.h_fft_file.tell() >= 16*self.fft_size):
-            self.h_fft_file.seek(-16*self.fft_size, 1)
-        else:
-            self.symbol = 0
-            self.h_fft_file.seek(-self.h_fft_file.tell(),1)
-
-        self.get_data()
-        self.update_plots()
-        
-            
-
-#FIXME: there must be a way to do this with a Python builtin
-def find(item_in, list_search):
-    for l in list_search:
-        if item_in == l:
-            return True
-    return False
-
-def main():
-    usage="%prog: [options]"
-
-    parser = OptionParser(conflict_handler="resolve", usage=usage)
-    parser.add_option("", "--fft-size", type="int", default=512,
-                      help="Specify the size of the FFT [default=%default]")
-    parser.add_option("", "--occ-tones", type="int", default=200,
-                      help="Specify the number of occupied tones 
[default=%default]")
-    parser.add_option("-s", "--start", type="int", default=0,
-                      help="Specify the starting symbol to plot 
[default=%default]")
-    parser.add_option("-R", "--sample-rate", type="float", default=1.0,
-                      help="Set the sampler rate of the data 
[default=%default]")
-    
-    (options, args) = parser.parse_args ()
-
-    dc = draw_constellation(options)
-
-if __name__ == "__main__":
-    try:
-        main()
-    except KeyboardInterrupt:
-        pass
-    
-
-
diff --git a/gr-digital/examples/ofdm/tunnel.py 
b/gr-digital/examples/ofdm/tunnel.py
deleted file mode 100755
index 17b31db..0000000
--- a/gr-digital/examples/ofdm/tunnel.py
+++ /dev/null
@@ -1,271 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2005,2006,2011 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 2, 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.
-# 
-
-
-# /////////////////////////////////////////////////////////////////////////////
-#
-#    This code sets up up a virtual ethernet interface (typically gr0),
-#    and relays packets between the interface and the GNU Radio PHY+MAC
-#
-#    What this means in plain language, is that if you've got a couple
-#    of USRPs on different machines, and if you run this code on those
-#    machines, you can talk between them using normal TCP/IP networking.
-#
-# /////////////////////////////////////////////////////////////////////////////
-
-
-from gnuradio import gr, digital
-from gnuradio import eng_notation
-from gnuradio.eng_option import eng_option
-from optparse import OptionParser
-
-# from current dir
-from receive_path import receive_path
-from transmit_path import transmit_path
-from uhd_interface import uhd_transmitter
-from uhd_interface import uhd_receiver
-
-import os, sys
-import random, time, struct
-
-#print os.getpid()
-#raw_input('Attach and press enter')
-
-
-# /////////////////////////////////////////////////////////////////////////////
-#
-#   Use the Universal TUN/TAP device driver to move packets to/from kernel
-#
-#   See /usr/src/linux/Documentation/networking/tuntap.txt
-#
-# /////////////////////////////////////////////////////////////////////////////
-
-# Linux specific...
-# TUNSETIFF ifr flags from <linux/tun_if.h>
-
-IFF_TUN                = 0x0001   # tunnel IP packets
-IFF_TAP                = 0x0002   # tunnel ethernet frames
-IFF_NO_PI      = 0x1000   # don't pass extra packet info
-IFF_ONE_QUEUE  = 0x2000   # beats me ;)
-
-def open_tun_interface(tun_device_filename):
-    from fcntl import ioctl
-    
-    mode = IFF_TAP | IFF_NO_PI
-    TUNSETIFF = 0x400454ca
-
-    tun = os.open(tun_device_filename, os.O_RDWR)
-    ifs = ioctl(tun, TUNSETIFF, struct.pack("16sH", "gr%d", mode))
-    ifname = ifs[:16].strip("\x00")
-    return (tun, ifname)
-    
-
-# /////////////////////////////////////////////////////////////////////////////
-#                             the flow graph
-# /////////////////////////////////////////////////////////////////////////////
-
-class my_top_block(gr.top_block):
-    def __init__(self, callback, options):
-        gr.top_block.__init__(self)
-
-        self.source = uhd_receiver(options.args,
-                                   options.bandwidth,
-                                   options.rx_freq,
-                                   options.lo_offset, options.rx_gain,
-                                   options.spec, options.antenna,
-                                   options.clock_source, options.verbose)
-
-        self.sink = uhd_transmitter(options.args,
-                                    options.bandwidth, options.tx_freq,
-                                    options.lo_offset, options.tx_gain,
-                                    options.spec, options.antenna,
-                                    options.clock_source, options.verbose)
-
-        self.txpath = transmit_path(options)
-        self.rxpath = receive_path(callback, options)
-
-        self.connect(self.txpath, self.sink)
-        self.connect(self.source, self.rxpath)
-
-    def carrier_sensed(self):
-        """
-        Return True if the receive path thinks there's carrier
-        """
-        return self.rxpath.carrier_sensed()
-
-    def set_freq(self, target_freq):
-        """
-        Set the center frequency we're interested in.
-        """
-        self.u_snk.set_freq(target_freq)
-        self.u_src.set_freq(target_freq)
-        
-
-# /////////////////////////////////////////////////////////////////////////////
-#                           Carrier Sense MAC
-# /////////////////////////////////////////////////////////////////////////////
-
-class cs_mac(object):
-    """
-    Prototype carrier sense MAC
-
-    Reads packets from the TUN/TAP interface, and sends them to the PHY.
-    Receives packets from the PHY via phy_rx_callback, and sends them
-    into the TUN/TAP interface.
-
-    Of course, we're not restricted to getting packets via TUN/TAP, this
-    is just an example.
-    """
-    def __init__(self, tun_fd, verbose=False):
-        self.tun_fd = tun_fd       # file descriptor for TUN/TAP interface
-        self.verbose = verbose
-        self.tb = None             # top block (access to PHY)
-
-    def set_flow_graph(self, tb):
-        self.tb = tb
-
-    def phy_rx_callback(self, ok, payload):
-        """
-        Invoked by thread associated with PHY to pass received packet up.
-
-        Args:
-            ok: bool indicating whether payload CRC was OK
-            payload: contents of the packet (string)
-        """
-        if self.verbose:
-            print "Rx: ok = %r  len(payload) = %4d" % (ok, len(payload))
-        if ok:
-            os.write(self.tun_fd, payload)
-
-    def main_loop(self):
-        """
-        Main loop for MAC.
-        Only returns if we get an error reading from TUN.
-
-        FIXME: may want to check for EINTR and EAGAIN and reissue read
-        """
-        min_delay = 0.001               # seconds
-
-        while 1:
-            payload = os.read(self.tun_fd, 10*1024)
-            if not payload:
-                self.tb.txpath.send_pkt(eof=True)
-                break
-
-            if self.verbose:
-                print "Tx: len(payload) = %4d" % (len(payload),)
-
-            delay = min_delay
-            while self.tb.carrier_sensed():
-                sys.stderr.write('B')
-                time.sleep(delay)
-                if delay < 0.050:
-                    delay = delay * 2       # exponential back-off
-
-            self.tb.txpath.send_pkt(payload)
-
-
-# /////////////////////////////////////////////////////////////////////////////
-#                                   main
-# /////////////////////////////////////////////////////////////////////////////
-
-def main():
-
-    parser = OptionParser (option_class=eng_option, conflict_handler="resolve")
-    expert_grp = parser.add_option_group("Expert")
-
-    parser.add_option("-m", "--modulation", type="choice", choices=['bpsk', 
'qpsk'],
-                      default='bpsk',
-                      help="Select modulation from: bpsk, qpsk 
[default=%%default]")
-    
-    parser.add_option("-v","--verbose", action="store_true", default=False)
-    expert_grp.add_option("-c", "--carrier-threshold", type="eng_float", 
default=30,
-                          help="set carrier detect threshold (dB) 
[default=%default]")
-    expert_grp.add_option("","--tun-device-filename", default="/dev/net/tun",
-                          help="path to tun device file [default=%default]")
-
-    digital.ofdm_mod.add_options(parser, expert_grp)
-    digital.ofdm_demod.add_options(parser, expert_grp)
-    transmit_path.add_options(parser, expert_grp)
-    receive_path.add_options(parser, expert_grp)
-    uhd_receiver.add_options(parser)
-    uhd_transmitter.add_options(parser)
-
-    (options, args) = parser.parse_args ()
-    if len(args) != 0:
-        parser.print_help(sys.stderr)
-        sys.exit(1)
-
-    if options.rx_freq is None or options.tx_freq is None:
-        sys.stderr.write("You must specify -f FREQ or --freq FREQ\n")
-        parser.print_help(sys.stderr)
-        sys.exit(1)
-
-    # open the TUN/TAP interface
-    (tun_fd, tun_ifname) = open_tun_interface(options.tun_device_filename)
-
-    # Attempt to enable realtime scheduling
-    r = gr.enable_realtime_scheduling()
-    if r == gr.RT_OK:
-        realtime = True
-    else:
-        realtime = False
-        print "Note: failed to enable realtime scheduling"
-
-    # instantiate the MAC
-    mac = cs_mac(tun_fd, verbose=True)
-
-
-    # build the graph (PHY)
-    tb = my_top_block(mac.phy_rx_callback, options)
-
-    mac.set_flow_graph(tb)    # give the MAC a handle for the PHY
-
-    print "modulation:     %s"   % (options.modulation,)
-    print "freq:           %s"      % 
(eng_notation.num_to_str(options.tx_freq))
-
-    tb.rxpath.set_carrier_threshold(options.carrier_threshold)
-    print "Carrier sense threshold:", options.carrier_threshold, "dB"
-    
-    print
-    print "Allocated virtual ethernet interface: %s" % (tun_ifname,)
-    print "You must now use ifconfig to set its IP address. E.g.,"
-    print
-    print "  $ sudo ifconfig %s 192.168.200.1" % (tun_ifname,)
-    print
-    print "Be sure to use a different address in the same subnet for each 
machine."
-    print
-
-
-    tb.start()    # Start executing the flow graph (runs in separate threads)
-
-    mac.main_loop()    # don't expect this to return...
-
-    tb.stop()     # but if it does, tell flow graph to stop.
-    tb.wait()     # wait for it to finish
-                
-
-if __name__ == '__main__':
-    try:
-        main()
-    except KeyboardInterrupt:
-        pass
diff --git a/gr-digital/grc/digital_ofdm_demod.xml 
b/gr-digital/grc/digital_ofdm_demod.xml
deleted file mode 100644
index 1a7ce24..0000000
--- a/gr-digital/grc/digital_ofdm_demod.xml
+++ /dev/null
@@ -1,144 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Copyright 2011 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.
--->
-
-<!--
-###################################################
-##OFDM Demod
-###################################################
- -->
-<block>
-       <name>OFDM Demod</name>
-       <key>digital_ofdm_demod</key>
-        <category>[Core]/Deprecated</category>
-       <import>from grc_gnuradio import blks2 as grc_blks2</import>
-       <import>from gnuradio import digital</import>
-       <make>grc_blks2.packet_demod_$(type.fcn)(digital.ofdm_demod(
-               options=grc_blks2.options(
-                       modulation="$modulation",
-                       fft_length=$fft_length,
-                       occupied_tones=$occupied_tones,
-                       cp_length=$cp_length,
-                       snr=$snr,
-                       log=None,
-                       verbose=None,
-               ),
-               callback=lambda ok, payload: self.$(id).recv_pkt(ok, payload),
-       ),
-)</make>
-       <param>
-               <name>Output Type</name>
-               <key>type</key>
-               <value>float</value>
-               <type>enum</type>
-               <option>
-                       <name>Complex</name>
-                       <key>complex</key>
-                       <opt>fcn:c</opt>
-               </option>
-               <option>
-                       <name>Float</name>
-                       <key>float</key>
-                       <opt>fcn:f</opt>
-               </option>
-               <option>
-                       <name>Int</name>
-                       <key>int</key>
-                       <opt>fcn:i</opt>
-               </option>
-               <option>
-                       <name>Short</name>
-                       <key>short</key>
-                       <opt>fcn:s</opt>
-               </option>
-               <option>
-                       <name>Byte</name>
-                       <key>byte</key>
-                       <opt>fcn:b</opt>
-               </option>
-       </param>
-       <param>
-               <name>Modulation</name>
-               <key>modulation</key>
-               <type>enum</type>
-               <option>
-                       <name>BPSK</name>
-                       <key>bpsk</key>
-               </option>
-               <option>
-                       <name>QPSK</name>
-                       <key>qpsk</key>
-               </option>
-               <option>
-                       <name>8PSK</name>
-                       <key>8psk</key>
-               </option>
-               <option>
-                       <name>QAM8</name>
-                       <key>qam8</key>
-               </option>
-               <option>
-                       <name>QAM16</name>
-                       <key>qam16</key>
-               </option>
-               <option>
-                       <name>QAM64</name>
-                       <key>qam64</key>
-               </option>
-               <option>
-                       <name>QAM256</name>
-                       <key>qam256</key>
-               </option>
-       </param>
-       <param>
-               <name>FFT Length</name>
-               <key>fft_length</key>
-               <value>512</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Occupied Tones</name>
-               <key>occupied_tones</key>
-               <value>200</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Cyclic Prefix Length</name>
-               <key>cp_length</key>
-               <value>128</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>SNR</name>
-               <key>snr</key>
-               <value>10</value>
-               <type>real</type>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>complex</type>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>$type</type>
-       </source>
-       <doc>Payload Length: 0 for automatic.</doc>
-</block>
diff --git a/gr-digital/grc/digital_ofdm_frame_acquisition.xml 
b/gr-digital/grc/digital_ofdm_frame_acquisition.xml
deleted file mode 100644
index f3fb8d6..0000000
--- a/gr-digital/grc/digital_ofdm_frame_acquisition.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Copyright 2011 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.
--->
-
-<!--
-###################################################
-##OFDM Frame Acquisition
-###################################################
- -->
-<block>
-       <name>OFDM Frame Acquisition</name>
-       <key>digital_ofdm_frame_acquisition</key>
-        <category>[Core]/Deprecated</category>
-       <import>from gnuradio import digital</import>
-       <make>digital.ofdm_frame_acquisition($occupied_carriers, $fft_length, 
$cplen, $known_symbol, $max_fft_shift_len)</make>
-       <param>
-               <name>Occupied Carriers</name>
-               <key>occupied_carriers</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>FFT Length</name>
-               <key>fft_length</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>CP Length</name>
-               <key>cplen</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Preamble</name>
-               <key>known_symbol</key>
-               <type>complex_vector</type>
-       </param>
-       <param>
-               <name>Max FFT Shift</name>
-               <key>max_fft_shift_len</key>
-               <type>int</type>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>complex</type>
-               <vlen>$fft_length</vlen>
-       </sink>
-       <sink>
-               <name>flag</name>
-               <type>byte</type>
-               <vlen>$fft_length</vlen>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>complex</type>
-               <vlen>$occupied_carriers</vlen>
-       </source>
-       <source>
-               <name>flag</name>
-               <type>byte</type>
-       </source>
-</block>
diff --git a/gr-digital/grc/digital_ofdm_frame_sink.xml 
b/gr-digital/grc/digital_ofdm_frame_sink.xml
deleted file mode 100644
index b7cc47b..0000000
--- a/gr-digital/grc/digital_ofdm_frame_sink.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Copyright 2012 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.
--->
-
-<!--
-###################################################
-##OFDM Frame Sink
-###################################################
- -->
-<block>
-       <name>OFDM Frame Sink</name>
-       <key>digital_ofdm_frame_sink</key>
-        <category>[Core]/Deprecated</category>
-       <import>from gnuradio import digital</import>
-       <make>digital.ofdm_frame_sink($syms, $vals, $queue, $occ_tones, 
$ph_gain, $frq_gain)</make>
-       <param>
-               <name>Symbol Points</name>
-               <key>syms</key>
-               <type>complex_vector</type>
-       </param>
-       <param>
-               <name>Symbol Values</name>
-               <key>vals</key>
-               <type>int_vector</type>
-       </param>
-       <param>
-               <name>Message Queue</name>
-               <key>queue</key>
-               <type>raw</type>
-       </param>
-       <param>
-               <name>Occupied Tones</name>
-               <key>occ_tones</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Phase Gain</name>
-               <key>ph_gain</key>
-               <value>0.25</value>
-               <type>real</type>
-       </param>
-       <param>
-               <name>Freq. Gain</name>
-               <key>frq_gain</key>
-               <value>0.015625</value>
-               <type>real</type>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>complex</type>
-               <vlen>$occ_tones</vlen>
-       </sink>
-       <sink>
-               <name>flag</name>
-               <type>byte</type>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>complex</type>
-               <vlen>$occ_tones</vlen>
-       </source>
-</block>
diff --git a/gr-digital/grc/digital_ofdm_insert_preamble.xml 
b/gr-digital/grc/digital_ofdm_insert_preamble.xml
deleted file mode 100644
index 593fdbd..0000000
--- a/gr-digital/grc/digital_ofdm_insert_preamble.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Copyright 2011 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.
--->
-
-<!--
-###################################################
-##OFDM Insert Preamble
-###################################################
- -->
-<block>
-       <name>OFDM Insert Preamble</name>
-       <key>digital_ofdm_insert_preamble</key>
-        <category>[Core]/Deprecated</category>
-       <import>from gnuradio import digital</import>
-       <make>digital.ofdm_insert_preamble($fft_length, $preamble)</make>
-       <param>
-               <name>FFT Length</name>
-               <key>fft_length</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Preamble</name>
-               <key>preamble</key>
-               <type>raw</type>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>complex</type>
-               <vlen>$fft_length</vlen>
-       </sink>
-       <sink>
-               <name>flag</name>
-               <type>byte</type>
-        <optional>1</optional>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>complex</type>
-               <vlen>$fft_length</vlen>
-       </source>
-       <source>
-               <name>flag</name>
-               <type>byte</type>
-        <optional>1</optional>
-       </source>
-</block>
diff --git a/gr-digital/grc/digital_ofdm_mod.xml 
b/gr-digital/grc/digital_ofdm_mod.xml
deleted file mode 100644
index 066f52f..0000000
--- a/gr-digital/grc/digital_ofdm_mod.xml
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Copyright 2011 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.
--->
-
-<!--
-###################################################
-##OFDM Mod
-###################################################
- -->
-<block>
-       <name>OFDM Mod</name>
-       <key>digital_ofdm_mod</key>
-        <category>[Core]/Deprecated</category>
-       <import>from grc_gnuradio import blks2 as grc_blks2</import>
-       <import>from gnuradio import digital</import>
-       <make>grc_blks2.packet_mod_$(type.fcn)(digital.ofdm_mod(
-               options=grc_blks2.options(
-                       modulation="$modulation",
-                       fft_length=$fft_length,
-                       occupied_tones=$occupied_tones,
-                       cp_length=$cp_length,
-                       pad_for_usrp=$pad_for_usrp,
-                       log=None,
-                       verbose=None,
-               ),
-       ),
-       payload_length=$payload_length,
-)</make>
-       <param>
-               <name>Input Type</name>
-               <key>type</key>
-               <value>float</value>
-               <type>enum</type>
-               <option>
-                       <name>Complex</name>
-                       <key>complex</key>
-                       <opt>fcn:c</opt>
-               </option>
-               <option>
-                       <name>Float</name>
-                       <key>float</key>
-                       <opt>fcn:f</opt>
-               </option>
-               <option>
-                       <name>Int</name>
-                       <key>int</key>
-                       <opt>fcn:i</opt>
-               </option>
-               <option>
-                       <name>Short</name>
-                       <key>short</key>
-                       <opt>fcn:s</opt>
-               </option>
-               <option>
-                       <name>Byte</name>
-                       <key>byte</key>
-                       <opt>fcn:b</opt>
-               </option>
-       </param>
-       <param>
-               <name>Modulation</name>
-               <key>modulation</key>
-               <type>enum</type>
-               <option>
-                       <name>BPSK</name>
-                       <key>bpsk</key>
-               </option>
-               <option>
-                       <name>QPSK</name>
-                       <key>qpsk</key>
-               </option>
-               <option>
-                       <name>8PSK</name>
-                       <key>8psk</key>
-               </option>
-               <option>
-                       <name>QAM8</name>
-                       <key>qam8</key>
-               </option>
-               <option>
-                       <name>QAM16</name>
-                       <key>qam16</key>
-               </option>
-               <option>
-                       <name>QAM64</name>
-                       <key>qam64</key>
-               </option>
-               <option>
-                       <name>QAM256</name>
-                       <key>qam256</key>
-               </option>
-       </param>
-       <param>
-               <name>FFT Length</name>
-               <key>fft_length</key>
-               <value>512</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Occupied Tones</name>
-               <key>occupied_tones</key>
-               <value>200</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Cyclic Prefix Length</name>
-               <key>cp_length</key>
-               <value>128</value>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Pad for USRP</name>
-               <key>pad_for_usrp</key>
-               <type>enum</type>
-               <option>
-                       <name>Yes</name>
-                       <key>True</key>
-               </option>
-               <option>
-                       <name>No</name>
-                       <key>False</key>
-               </option>
-       </param>
-       <param>
-               <name>Payload Length</name>
-               <key>payload_length</key>
-               <value>0</value>
-               <type>int</type>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>$type</type>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>complex</type>
-       </source>
-       <doc>Payload Length: 0 for automatic.</doc>
-</block>
diff --git a/gr-digital/grc/digital_ofdm_sampler.xml 
b/gr-digital/grc/digital_ofdm_sampler.xml
deleted file mode 100644
index 09a0705..0000000
--- a/gr-digital/grc/digital_ofdm_sampler.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Copyright 2011 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.
--->
-
-<!--
-###################################################
-##OFDM Sampler
-###################################################
- -->
-<block>
-       <name>OFDM Sampler</name>
-       <key>digital_ofdm_sampler</key>
-        <category>[Core]/Deprecated</category>
-       <import>from gnuradio import digital</import>
-       <make>digital.ofdm_sampler($fft_length, $symbol_length, $timeout)</make>
-       <param>
-               <name>FFT Length</name>
-               <key>fft_length</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Symbol Length</name>
-               <key>symbol_length</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Timeout</name>
-               <key>timeout</key>
-               <value>1000</value>
-               <type>int</type>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>complex</type>
-       </sink>
-       <sink>
-               <name>flag</name>
-               <type>byte</type>
-       </sink>
-       <source>
-               <name>out</name>
-               <type>complex</type>
-               <vlen>$fft_length</vlen>
-       </source>
-       <source>
-               <name>flag</name>
-               <type>byte</type>
-               <vlen>$fft_length</vlen>
-       </source>
-</block>
diff --git a/gr-digital/grc/digital_ofdm_sync_pn.xml 
b/gr-digital/grc/digital_ofdm_sync_pn.xml
deleted file mode 100644
index 819996c..0000000
--- a/gr-digital/grc/digital_ofdm_sync_pn.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Copyright 2011 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.
--->
-
-<!--
-###################################################
-##OFDM Synchronizer - PN based
-###################################################
- -->
-<block>
-       <name>OFDM Sync PN</name>
-       <key>digital_ofdm_sync_pn</key>
-        <category>[Core]/Deprecated</category>
-       <import>from gnuradio import digital</import>
-       <make>digital.ofdm_sync_pn($fft_length, $cp_length, $logging)</make>
-       <param>
-               <name>FFT Length</name>
-               <key>fft_length</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>CP Length</name>
-               <key>cp_length</key>
-               <type>int</type>
-       </param>
-       <param>
-               <name>Logging</name>
-               <key>logging</key>
-               <value>False</value>
-               <type>bool</type>
-       </param>
-       <sink>
-               <name>in</name>
-               <type>complex</type>
-       </sink>
-       <source>
-               <name>fine freq</name>
-               <type>float</type>
-       </source>
-       <source>
-               <name>timing sig</name>
-               <type>byte</type>
-       </source>
-</block>
diff --git a/gr-digital/include/gnuradio/digital/ofdm_frame_acquisition.h 
b/gr-digital/include/gnuradio/digital/ofdm_frame_acquisition.h
deleted file mode 100644
index 164070e..0000000
--- a/gr-digital/include/gnuradio/digital/ofdm_frame_acquisition.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2007,2011,2012 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.
- */
-
-#ifndef INCLUDED_DIGITAL_OFDM_FRAME_ACQUISITION_H
-#define INCLUDED_DIGITAL_OFDM_FRAME_ACQUISITION_H
-
-#include <gnuradio/digital/api.h>
-#include <gnuradio/block.h>
-#include <vector>
-
-namespace gr {
-  namespace digital {
-    
-    /*!
-     * \brief take a vector of complex constellation points in from an
-     * FFT and performs a correlation and equalization.
-     * \ingroup ofdm_blk
-     * \ingroup deprecated_blk
-     *
-     * \details
-     * This block takes the output of an FFT of a received OFDM symbol
-     * and finds the start of a frame based on two known symbols. It
-     * also looks at the surrounding bins in the FFT output for the
-     * correlation in case there is a large frequency shift in the
-     * data. This block assumes that the fine frequency shift has
-     * already been corrected and that the samples fall in the middle
-     * of one FFT bin.
-     *
-     * It then uses one of those known symbols to estimate the channel
-     * response over all subcarriers and does a simple 1-tap
-     * equalization on all subcarriers. This corrects for the phase
-     * and amplitude distortion caused by the channel.
-     */
-    class DIGITAL_API ofdm_frame_acquisition : virtual public block
-    {
-    public:
-      // gr::digital::ofdm_frame_acquisition::sptr
-      typedef boost::shared_ptr<ofdm_frame_acquisition> sptr;
-
-      /*! 
-       * Make an OFDM correlator and equalizer.
-       *
-       * \param occupied_carriers   The number of subcarriers with data in the 
received symbol
-       * \param fft_length          The size of the FFT vector 
(occupied_carriers + unused carriers)
-       * \param cplen              The length of the cycle prefix
-       * \param known_symbol        A vector of complex numbers representing a 
known symbol at the
-       *                            start of a frame (usually a BPSK PN 
sequence)
-       * \param max_fft_shift_len   Set's the maximum distance you can look 
between bins for correlation
-       */
-      static sptr make(unsigned int occupied_carriers, unsigned int fft_length,
-                      unsigned int cplen,
-                      const std::vector<gr_complex> &known_symbol, 
-                      unsigned int max_fft_shift_len=4);
-  
-      /*!
-       * \brief Return an estimate of the SNR of the channel
-       */
-      virtual float snr() = 0;
-    };
-
-  } /* namespace digital */
-} /* namespace gr */
-
-#endif /* INCLUDED_DIGITAL_OFDM_FRAME_ACQUISITION_H */
diff --git a/gr-digital/include/gnuradio/digital/ofdm_frame_sink.h 
b/gr-digital/include/gnuradio/digital/ofdm_frame_sink.h
deleted file mode 100644
index 52839b2..0000000
--- a/gr-digital/include/gnuradio/digital/ofdm_frame_sink.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2007,2011,2012 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.
- */
-
-#ifndef INCLUDED_DIGITAL_OFDM_FRAME_SINK_H
-#define INCLUDED_DIGITAL_OFDM_FRAME_SINK_H
-
-#include <gnuradio/digital/api.h>
-#include <gnuradio/sync_block.h>
-#include <gnuradio/msg_queue.h>
-
-namespace gr {
-  namespace digital {
-    
-    /*!
-     * \brief Takes an OFDM symbol in, demaps it into bits of 0's and
-     * 1's, packs them into packets, and sends to to a message queue
-     * sink.
-     * \ingroup ofdm_blk
-     * \ingroup deprecated_blk
-     *
-     * \details
-     * NOTE: The mod input parameter simply chooses a pre-defined
-     * demapper/slicer. Eventually, we want to be able to pass in a
-     * reference to an object to do the demapping and slicing for a
-     * given modulation type.
-     */
-    class DIGITAL_API ofdm_frame_sink : virtual public sync_block
-    {
-    public:
-      // gr::digital::ofdm_frame_sink::sptr
-      typedef boost::shared_ptr<ofdm_frame_sink> sptr;
-
-      /*!
-       * Make an OFDM frame sink block.
-       *
-       * \param sym_position vector of OFDM carrier symbols in complex space
-       * \param sym_value_out vector of bit mapped from the complex symbol 
space
-       * \param target_queue message queue for the packets to go into
-       * \param occupied_tones The number of subcarriers with data in the 
received symbol
-       * \param phase_gain gain of the phase tracking loop
-       * \param freq_gain gain of the frequency tracking loop
-       */
-      static sptr make(const std::vector<gr_complex> &sym_position, 
-                      const std::vector<char> &sym_value_out,
-                      msg_queue::sptr target_queue,
-                      int occupied_tones,
-                      float phase_gain=0.25, float freq_gain=0.25*0.25/4);
-    };
-
-  } /* namespace digital */
-} /* namespace gr */
-
-#endif /* INCLUDED_GR_OFDM_FRAME_SINK_H */
diff --git a/gr-digital/include/gnuradio/digital/ofdm_insert_preamble.h 
b/gr-digital/include/gnuradio/digital/ofdm_insert_preamble.h
deleted file mode 100644
index c811c9c..0000000
--- a/gr-digital/include/gnuradio/digital/ofdm_insert_preamble.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2007,2011,2012 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 this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef INCLUDED_DIGITAL_OFDM_INSERT_PREAMBLE_H
-#define INCLUDED_DIGITAL_OFDM_INSERT_PREAMBLE_H
-
-#include <gnuradio/digital/api.h>
-#include <gnuradio/block.h>
-#include <vector>
-
-namespace gr {
-  namespace digital {
-    
-    /*!
-     * \brief insert "pre-modulated" preamble symbols before each payload.
-     * \ingroup ofdm_blk
-     * \ingroup synchronizers_blk
-     * \ingroup deprecated_blk
-     *
-     * \details
-     * <pre>
-     * input 1: stream of vectors of gr_complex [fft_length]
-     *          These are the modulated symbols of the payload.
-     *
-     * input 2: stream of char.  The LSB indicates whether the corresponding
-     *          symbol on input 1 is the first symbol of the payload or not.
-     *          It's a 1 if the corresponding symbol is the first symbol,
-     *          otherwise 0.
-     *
-     * N.B., this implies that there must be at least 1 symbol in the payload.
-     *
-     * output 1: stream of vectors of gr_complex [fft_length]
-     *           These include the preamble symbols and the payload symbols.
-     *
-     * output 2: stream of char.  The LSB indicates whether the corresponding
-     *           symbol on input 1 is the first symbol of a packet (i.e., the
-     *           first symbol of the preamble.)   It's a 1 if the corresponding
-     *           symbol is the first symbol, otherwise 0.
-     * </pre>
-     */
-    class DIGITAL_API ofdm_insert_preamble : virtual public block
-    {
-    public:
-      // gr::digital::ofdm_insert_preamble::sptr
-      typedef boost::shared_ptr<ofdm_insert_preamble> sptr;
-      
-      /*!
-       * Make an OFDM preamble inserter block.
-       *
-       * \param fft_length length of each symbol in samples.
-       * \param preamble   vector of symbols that represent the pre-modulated 
preamble.
-       */
-      static sptr make(int fft_length,
-                      const std::vector<std::vector<gr_complex> > &preamble);
-
-      virtual void enter_preamble() = 0;
-    };
-
-  } /* namespace digital */
-} /* namespace gr */
-
-#endif /* INCLUDED_DIGITAL_OFDM_INSERT_PREAMBLE_H */
diff --git a/gr-digital/include/gnuradio/digital/ofdm_mapper_bcv.h 
b/gr-digital/include/gnuradio/digital/ofdm_mapper_bcv.h
deleted file mode 100644
index 392b773..0000000
--- a/gr-digital/include/gnuradio/digital/ofdm_mapper_bcv.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2007,2011,2012 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.
- */
-
-#ifndef INCLUDED_DIGITAL_OFDM_MAPPER_BCV_H
-#define INCLUDED_DIGITAL_OFDM_MAPPER_BCV_H
-
-#include <gnuradio/digital/api.h>
-#include <gnuradio/sync_block.h>
-#include <gnuradio/msg_queue.h>
-
-namespace gr {
-  namespace digital {
-
-    /*!
-     * \brief take a stream of bytes in and map to a vector of complex
-     * constellation points suitable for IFFT input to be used in an
-     * ofdm modulator.
-     * \ingroup ofdm_blk
-     * \ingroup deprecated_blk
-     *
-     * \details
-     * Abstract class must be subclassed with specific mapping.
-     */
-    class DIGITAL_API ofdm_mapper_bcv : virtual public sync_block
-    {
-    public:
-      // gr::digital::ofdm_mapper_bcv::sptr
-      typedef boost::shared_ptr<ofdm_mapper_bcv> sptr;
-
-      /*!
-       * Make an OFDM mapper block.
-       *
-       * \param constellation vector of OFDM carrier symbols in complex space
-       * \param msgq_limit limit on number of messages the queue can store
-       * \param occupied_carriers The number of subcarriers with data in the 
received symbol
-       * \param fft_length The size of the FFT vector (occupied_carriers + 
unused carriers)
-       */
-      static sptr make(const std::vector<gr_complex> &constellation,
-                      unsigned msgq_limit, 
-                      unsigned occupied_carriers,
-                      unsigned int fft_length);
-
-      virtual msg_queue::sptr msgq() const = 0;
-    };
-
-  } /* namespace digital */
-} /* namespace gr */
-
-#endif /* INCLUDED_DIGITAL_OFDM_MAPPER_BCV_H */
diff --git a/gr-digital/include/gnuradio/digital/ofdm_sampler.h 
b/gr-digital/include/gnuradio/digital/ofdm_sampler.h
deleted file mode 100644
index da44104..0000000
--- a/gr-digital/include/gnuradio/digital/ofdm_sampler.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2007,2011,2012 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.
- */
-
-#ifndef INCLUDED_DIGITAL_OFDM_SAMPLER_H
-#define INCLUDED_DIGITAL_OFDM_SAMPLER_H
-
-#include <gnuradio/digital/api.h>
-#include <gnuradio/sync_block.h>
-
-namespace gr {
-  namespace digital {
-    
-    /*!
-     * \brief does the rest of the OFDM stuff
-     * \ingroup ofdm_blk
-     * \ingroup deprecated_blk
-     */
-    class DIGITAL_API ofdm_sampler : virtual public block
-    {
-    public:
-      // gr::digital::ofdm_sampler::sptr
-      typedef boost::shared_ptr<ofdm_sampler> sptr;
-
-      /*!
-       * Make an OFDM sampler block.
-       *
-       * \param fft_length The size of the FFT vector (occupied_carriers + 
unused carriers)
-       * \param symbol_length Length of the full symbol (fft_length + CP 
length)
-       * \param timeout timeout in samples when we stop looking for a symbol 
after initial ack.
-       */
-      static sptr make(unsigned int fft_length, 
-                      unsigned int symbol_length,
-                      unsigned int timeout=1000);
-    };
-
-  } /* namespace digital */
-} /* namespace gr */
-
-#endif /* INCLUDED_DIGITAL_OFDM_SAMPLER_H */



reply via email to

[Prev in Thread] Current Thread [Next in Thread]