diff options
author | Tom Rondeau <trondeau@vt.edu> | 2012-12-21 15:11:39 -0500 |
---|---|---|
committer | Tom Rondeau <trondeau@vt.edu> | 2012-12-21 21:19:13 -0500 |
commit | 55d3e4a47958be287648a2021f7e92d81086b2d9 (patch) | |
tree | ae0195c457f2cf2734376679cc88c2d728040680 /gr-digital | |
parent | fa781237f341a74a243a9fb930daee7e62c3a682 (diff) |
blocks: removes blocks moved to gr-blocks from gnuradio-core.
Also fixes up some other missing moves.
Diffstat (limited to 'gr-digital')
25 files changed, 188 insertions, 49 deletions
diff --git a/gr-digital/CMakeLists.txt b/gr-digital/CMakeLists.txt index c2d7524505..ac0dbb737d 100644 --- a/gr-digital/CMakeLists.txt +++ b/gr-digital/CMakeLists.txt @@ -32,6 +32,7 @@ GR_REGISTER_COMPONENT("gr-digital" ENABLE_GR_DIGITAL ENABLE_GR_CORE ENABLE_GR_FFT ENABLE_GR_FILTER + ENABLE_GR_BLOCKS ENABLE_GR_ANALOG ) diff --git a/gr-digital/examples/berawgn.py b/gr-digital/examples/berawgn.py index 8ff43b7b92..b20b17fd39 100755 --- a/gr-digital/examples/berawgn.py +++ b/gr-digital/examples/berawgn.py @@ -37,6 +37,7 @@ import math import numpy from gnuradio import gr, digital from gnuradio import analog +from gnuradio import blocks try: from scipy.special import erfc @@ -70,16 +71,16 @@ class BitErrors(gr.hier_block2): gr.io_signature(1, 1, gr.sizeof_int)) # Bit comparison - comp = gr.xor_bb() + comp = blocks.xor_bb() intdump_decim = 100000 if N_BITS < intdump_decim: intdump_decim = int(N_BITS) self.connect(self, comp, gr.unpack_k_bits_bb(bits_per_byte), - gr.uchar_to_float(), - gr.integrate_ff(intdump_decim), - gr.multiply_const_ff(1.0/N_BITS), + blocks.uchar_to_float(), + blocks.integrate_ff(intdump_decim), + blocks.multiply_const_ff(1.0/N_BITS), self) self.connect((self, 1), (comp, 1)) @@ -92,7 +93,7 @@ class BERAWGNSimu(gr.top_block): data = map(int, numpy.random.randint(0, self.const.arity(), N_BITS/self.const.bits_per_symbol())) src = gr.vector_source_b(data, False) mod = digital.chunks_to_symbols_bc((self.const.points()), 1) - add = gr.add_vcc() + add = blocks.add_vcc() noise = analog.noise_source_c(analog.GR_GAUSSIAN, self.EbN0_to_noise_voltage(EbN0), RAND_SEED) diff --git a/gr-digital/examples/narrowband/benchmark_add_channel.py b/gr-digital/examples/narrowband/benchmark_add_channel.py index 0ee0058059..05b55e3755 100755 --- a/gr-digital/examples/narrowband/benchmark_add_channel.py +++ b/gr-digital/examples/narrowband/benchmark_add_channel.py @@ -21,6 +21,7 @@ # from gnuradio import gr, filter +from gnuradio import blocks from gnuradio import eng_notation from gnuradio.eng_option import eng_option from optparse import OptionParser @@ -46,7 +47,7 @@ class my_top_block(gr.top_block): self.channel = filter.channel_model(noise_voltage, frequency_offset, time_offset, noise_seed=-random.randint(0,100000)) - self.phase = gr.multiply_const_cc(complex(math.cos(phase_offset), + self.phase = blocks.multiply_const_cc(complex(math.cos(phase_offset), math.sin(phase_offset))) self.snk = gr.file_sink(gr.sizeof_gr_complex, ofile) diff --git a/gr-digital/examples/narrowband/digital_bert_tx.py b/gr-digital/examples/narrowband/digital_bert_tx.py index ff8bf9f104..5559f8698e 100755 --- a/gr-digital/examples/narrowband/digital_bert_tx.py +++ b/gr-digital/examples/narrowband/digital_bert_tx.py @@ -25,6 +25,7 @@ from gnuradio.eng_option import eng_option from optparse import OptionParser import sys +from gnuradio import blocks from gnuradio import digital # from current dir @@ -90,7 +91,7 @@ class tx_psk_block(gr.top_block): verbose=options.verbose, log=options.log) - self.amp = gr.multiply_const_cc(options.amplitude) + self.amp = blocks.multiply_const_cc(options.amplitude) self.connect(self._transmitter, self.amp, self._sink) diff --git a/gr-digital/examples/narrowband/rx_voice.py b/gr-digital/examples/narrowband/rx_voice.py index 079f8cb9b9..b1a1b0782e 100755 --- a/gr-digital/examples/narrowband/rx_voice.py +++ b/gr-digital/examples/narrowband/rx_voice.py @@ -26,6 +26,7 @@ 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 gnuradio import vocoder @@ -51,8 +52,8 @@ class audio_tx(gr.hier_block2): self.sample_rate = sample_rate = 8000 self.packet_src = gr.message_source(33) voice_decoder = vocoder.gsm_fr_decode_ps() - s2f = gr.short_to_float () - sink_scale = gr.multiply_const_ff(1.0/32767.) + s2f = blocks.short_to_float() + sink_scale = blocks.multiply_const_ff(1.0/32767.) audio_sink = audio.sink(sample_rate, audio_output_dev) self.connect(self.packet_src, voice_decoder, s2f, sink_scale, audio_sink) diff --git a/gr-digital/examples/narrowband/transmit_path.py b/gr-digital/examples/narrowband/transmit_path.py index ec87ecd825..43a96050e9 100644 --- a/gr-digital/examples/narrowband/transmit_path.py +++ b/gr-digital/examples/narrowband/transmit_path.py @@ -21,6 +21,7 @@ from gnuradio import gr from gnuradio import eng_notation +from gnuradio import blocks from gnuradio import digital import copy @@ -58,7 +59,7 @@ class transmit_path(gr.hier_block2): msgq_limit=4, pad_for_usrp=True) - self.amp = gr.multiply_const_cc(1) + self.amp = blocks.multiply_const_cc(1) self.set_tx_amplitude(self._tx_amplitude) # Display some information about the setup diff --git a/gr-digital/examples/narrowband/tx_voice.py b/gr-digital/examples/narrowband/tx_voice.py index 1f968fa8a3..d3c81694ab 100755 --- a/gr-digital/examples/narrowband/tx_voice.py +++ b/gr-digital/examples/narrowband/tx_voice.py @@ -25,6 +25,7 @@ from gnuradio import eng_notation from gnuradio.eng_option import eng_option from optparse import OptionParser +from gnuradio import blocks from gnuradio import filter from gnuradio import digital from gnuradio import vocoder @@ -50,8 +51,8 @@ class audio_rx(gr.hier_block2): gr.io_signature(0, 0, 0)) # Output signature self.sample_rate = sample_rate = 8000 src = audio.source(sample_rate, audio_input_dev) - src_scale = gr.multiply_const_ff(32767) - f2s = gr.float_to_short() + src_scale = blocks.multiply_const_ff(32767) + f2s = blocks.float_to_short() voice_coder = vocoder.gsm_fr_encode_sp() self.packets_from_encoder = gr.msg_queue() packet_sink = gr.message_sink(33, self.packets_from_encoder, False) diff --git a/gr-digital/examples/ofdm/benchmark_add_channel.py b/gr-digital/examples/ofdm/benchmark_add_channel.py index 5c7a3ae501..369087b4c1 100755 --- a/gr-digital/examples/ofdm/benchmark_add_channel.py +++ b/gr-digital/examples/ofdm/benchmark_add_channel.py @@ -21,6 +21,7 @@ # from gnuradio import gr, filter +from gnuradio import blocks from gnuradio import eng_notation from gnuradio.eng_option import eng_option from optparse import OptionParser @@ -48,7 +49,7 @@ class my_top_block(gr.top_block): self.channel = filter.channel_model(noise_voltage, frequency_offset, time_offset, noise_seed=-random.randint(0,100000)) - self.phase = gr.multiply_const_cc(complex(math.cos(phase_offset), + self.phase = blocks.multiply_const_cc(complex(math.cos(phase_offset), math.sin(phase_offset))) self.snk = gr.file_sink(gr.sizeof_gr_complex, ofile) diff --git a/gr-digital/examples/ofdm/transmit_path.py b/gr-digital/examples/ofdm/transmit_path.py index 6fb66e4076..aa146cea96 100644 --- a/gr-digital/examples/ofdm/transmit_path.py +++ b/gr-digital/examples/ofdm/transmit_path.py @@ -21,6 +21,7 @@ from gnuradio import gr from gnuradio import eng_notation +from gnuradio import blocks from gnuradio import digital import copy @@ -49,7 +50,7 @@ class transmit_path(gr.hier_block2): msgq_limit=4, pad_for_usrp=False) - self.amp = gr.multiply_const_cc(1) + self.amp = blocks.multiply_const_cc(1) self.set_tx_amplitude(self._tx_amplitude) # Display some information about the setup diff --git a/gr-digital/lib/CMakeLists.txt b/gr-digital/lib/CMakeLists.txt index c5d9a63189..398285a228 100644 --- a/gr-digital/lib/CMakeLists.txt +++ b/gr-digital/lib/CMakeLists.txt @@ -23,6 +23,7 @@ include_directories( ${VOLK_INCLUDE_DIRS} ${GNURADIO_CORE_INCLUDE_DIRS} + ${GR_BLOCKS_INCLUDE_DIRS} ${GR_ANALOG_INCLUDE_DIRS} ${GR_DIGITAL_INCLUDE_DIRS} ${GR_FFT_INCLUDE_DIRS} @@ -156,6 +157,7 @@ list(APPEND digital_libs volk gnuradio-core gnuradio-filter + gnuradio-blocks gnuradio-analog ${Boost_LIBRARIES} ) diff --git a/gr-digital/lib/cpmmod_bc_impl.cc b/gr-digital/lib/cpmmod_bc_impl.cc index d6c3a29a29..763a4cc1e2 100644 --- a/gr-digital/lib/cpmmod_bc_impl.cc +++ b/gr-digital/lib/cpmmod_bc_impl.cc @@ -60,7 +60,7 @@ namespace gr { gr_make_io_signature2(1, 1, sizeof(gr_complex), sizeof(float))), d_type(type), d_index(h), d_sps(samples_per_sym), d_length(L), d_beta(beta), d_taps(analog::cpm::phase_response(type, samples_per_sym, L, beta)), - d_char_to_float(gr_make_char_to_float()), + d_char_to_float(blocks::char_to_float::make()), d_pulse_shaper(filter::interp_fir_filter_fff::make(samples_per_sym, d_taps)), d_fm(analog::frequency_modulator_fc::make(M_PI * h)) { diff --git a/gr-digital/lib/cpmmod_bc_impl.h b/gr-digital/lib/cpmmod_bc_impl.h index 3051e49df9..9cfec4959e 100644 --- a/gr-digital/lib/cpmmod_bc_impl.h +++ b/gr-digital/lib/cpmmod_bc_impl.h @@ -24,7 +24,7 @@ #define INCLUDED_DIGITAL_CPMMOD_BC_IMPL_H #include <digital/cpmmod_bc.h> -#include <gr_char_to_float.h> +#include <blocks/char_to_float.h> #include <analog/frequency_modulator_fc.h> #include <filter/interp_fir_filter_fff.h> @@ -42,7 +42,7 @@ namespace gr { protected: std::vector<float> d_taps; - gr_char_to_float_sptr d_char_to_float; + gr::blocks::char_to_float::sptr d_char_to_float; gr::filter::interp_fir_filter_fff::sptr d_pulse_shaper; analog::frequency_modulator_fc::sptr d_fm; diff --git a/gr-digital/python/CMakeLists.txt b/gr-digital/python/CMakeLists.txt index 2b12799b56..c44248d54c 100644 --- a/gr-digital/python/CMakeLists.txt +++ b/gr-digital/python/CMakeLists.txt @@ -70,6 +70,8 @@ list(APPEND GR_TEST_PYTHON_DIRS ${CMAKE_BINARY_DIR}/gr-filter/swig ${CMAKE_BINARY_DIR}/gr-analog/python ${CMAKE_BINARY_DIR}/gr-analog/swig + ${CMAKE_BINARY_DIR}/gr-blocks/python + ${CMAKE_BINARY_DIR}/gr-blocks/swig ) list(APPEND GR_TEST_TARGET_DEPS gnuradio-digital gnuradio-filter gnuradio-fft gnuradio-analog) diff --git a/gr-digital/python/digital_voice.py.real b/gr-digital/python/digital_voice.py.real new file mode 100644 index 0000000000..4a2ef7721f --- /dev/null +++ b/gr-digital/python/digital_voice.py.real @@ -0,0 +1,103 @@ +#!/usr/bin/env python +# +# Copyright 2005 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. +# + +""" +Digital voice Tx and Rx using GSM 13kbit vocoder and GMSK. + +Runs channel at 32kbit/sec. Currently uses fake channel coding, +but there's room for a rate 1/2 coder. +""" + +from gnuradio import gr, gru +from gnuradio import blocks +from gnuradio.blksimpl.gmsk import gmsk_mod, gmsk_demod + +from gnuradio.vocoder import gsm_full_rate + +# Size of gsm full rate speech encoder output packet in bytes + +GSM_FRAME_SIZE = 33 + +# Size of packet in bytes that we send to GMSK modulator: +# +# Target: 256kS/sec air rate. +# +# 256kS 1 sym 1 bit 1 byte 0.020 sec 80 bytes +# ---- * ----- * ----- * ------ * --------- = -------- +# sec 8 S 1 sym 8 bits frame frame +# +# gr_simple_framer add 10 bytes of overhead. + +AIR_FRAME_SIZE = 70 + + +class digital_voice_tx(gr.hier_block): + """ + Hierarchical block for digital voice tranmission. + + The input is 8kS/sec floating point audio in the range [-1,+1] + The output is 256kS/sec GMSK modulated complex baseband signal in the range [-1,+1]. + """ + def __init__(self, fg): + samples_per_symbol = 8 + symbol_rate = 32000 + bt = 0.3 # Gaussian filter bandwidth * symbol time + + src_scale = blocks.multiply_const_ff(32767) + f2s = blocks.float_to_short() + voice_coder = gsm_full_rate.encode_sp() + + channel_coder = gr.fake_channel_encoder_pp(GSM_FRAME_SIZE, AIR_FRAME_SIZE) + p2s = gr.parallel_to_serial(gr.sizeof_char, AIR_FRAME_SIZE) + + mod = gmsk_mod(fg, sps=samples_per_symbol, + symbol_rate=symbol_rate, bt=bt, + p_size=AIR_FRAME_SIZE) + + fg.connect(src_scale, f2s, voice_coder, channel_coder, p2s, mod) + gr.hier_block.__init__(self, fg, src_scale, mod) + + +class digital_voice_rx(gr.hier_block): + """ + Hierarchical block for digital voice reception. + + The input is 256kS/sec GMSK modulated complex baseband signal. + The output is 8kS/sec floating point audio in the range [-1,+1] + """ + def __init__(self, fg): + samples_per_symbol = 8 + symbol_rate = 32000 + + demod = gmsk_demod(fg, sps=samples_per_symbol, + symbol_rate=symbol_rate, + p_size=AIR_FRAME_SIZE) + + s2p = gr.serial_to_parallel(gr.sizeof_char, AIR_FRAME_SIZE) + channel_decoder = gr.fake_channel_decoder_pp(AIR_FRAME_SIZE, GSM_FRAME_SIZE) + + voice_decoder = gsm_full_rate.decode_ps() + s2f = blocks.short_to_float () + sink_scale = blocks.multiply_const_ff(1.0/32767.) + + fg.connect(demod, s2p, channel_decoder, voice_decoder, s2f, sink_scale) + gr.hier_block.__init__(self, fg, demod, sink_scale) diff --git a/gr-digital/python/gfsk.py b/gr-digital/python/gfsk.py index c69dd4d7d8..d6a81c37fc 100644 --- a/gr-digital/python/gfsk.py +++ b/gr-digital/python/gfsk.py @@ -26,6 +26,7 @@ from gnuradio import gr from gnuradio import analog +from gnuradio import blocksx import modulation_utils import digital_swig as digital from math import pi @@ -118,7 +119,7 @@ class gfsk_mod(gr.hier_block2): self.fmmod = frequency.frequency_modulator_fc(sensitivity) # small amount of output attenuation to prevent clipping USRP sink - self.amp = gr.multiply_const_cc(0.999) + self.amp = blocks.multiply_const_cc(0.999) if verbose: self._print_verbage() diff --git a/gr-digital/python/ofdm.py b/gr-digital/python/ofdm.py index 4113a552eb..5bbe111f31 100644 --- a/gr-digital/python/ofdm.py +++ b/gr-digital/python/ofdm.py @@ -22,6 +22,7 @@ import math from gnuradio import gr, fft +from gnuradio import blocks import digital_swig as digital import ofdm_packet_utils from ofdm_receiver import ofdm_receiver @@ -107,7 +108,7 @@ class ofdm_mod(gr.hier_block2): self.ifft = fft.fft_vcc(self._fft_length, False, win, True) self.cp_adder = digital.ofdm_cyclic_prefixer(self._fft_length, symbol_length) - self.scale = gr.multiply_const_cc(1.0 / math.sqrt(self._fft_length)) + self.scale = blocks.multiply_const_cc(1.0 / math.sqrt(self._fft_length)) self.connect((self._pkt_input, 0), (self.preambles, 0)) self.connect((self._pkt_input, 1), (self.preambles, 1)) diff --git a/gr-digital/python/ofdm_receiver.py b/gr-digital/python/ofdm_receiver.py index ace64a8089..c5725bab28 100644 --- a/gr-digital/python/ofdm_receiver.py +++ b/gr-digital/python/ofdm_receiver.py @@ -24,6 +24,7 @@ import math from numpy import fft from gnuradio import gr from gnuradio import analog +from gnuradio import blocks import digital_swig as digital from ofdm_sync_pn import ofdm_sync_pn @@ -108,7 +109,7 @@ class ofdm_receiver(gr.hier_block2): # for testing only; do not user over the air # remove filter and filter delay for this elif SYNC == "fixed": - self.chan_filt = gr.multiply_const_cc(1.0) + self.chan_filt = blocks.multiply_const_cc(1.0) nsymbols = 18 # enter the number of symbols per packet freq_offset = 0.0 # if you use a frequency offset, enter it here nco_sensitivity = -2.0/fft_length # correct for fine frequency @@ -121,7 +122,7 @@ class ofdm_receiver(gr.hier_block2): # Set up blocks self.nco = analog.frequency_modulator_fc(nco_sensitivity) # generate a signal proportional to frequency error of sync block - self.sigmix = gr.multiply_cc() + self.sigmix = blocks.multiply_cc() self.sampler = digital.ofdm_sampler(fft_length, fft_length+cp_length) self.fft_demod = gr.fft_vcc(fft_length, True, win, True) self.ofdm_frame_acq = digital.ofdm_frame_acquisition(occupied_tones, diff --git a/gr-digital/python/ofdm_sync_ml.py b/gr-digital/python/ofdm_sync_ml.py index f732fdf29a..885531f66a 100644 --- a/gr-digital/python/ofdm_sync_ml.py +++ b/gr-digital/python/ofdm_sync_ml.py @@ -28,6 +28,11 @@ try: except ImportError: import filter_swig as filter +try: + from gnuradio import blocks +except ImportError: + import blocks_swig as blocks + class ofdm_sync_ml(gr.hier_block2): def __init__(self, fft_length, cp_length, snr, kstime, logging): ''' Maximum Likelihood OFDM synchronizer: @@ -40,7 +45,7 @@ class ofdm_sync_ml(gr.hier_block2): gr.io_signature(1, 1, gr.sizeof_gr_complex), # Input signature gr.io_signature2(2, 2, gr.sizeof_float, gr.sizeof_char)) # Output signature - self.input = gr.add_const_cc(0) + self.input = blocks.add_const_cc(0) SNR = 10.0**(snr/10.0) rho = SNR / (SNR + 1.0) @@ -59,7 +64,7 @@ class ofdm_sync_ml(gr.hier_block2): # magnitude squared blocks self.magsqrd1 = gr.complex_to_mag_squared() self.magsqrd2 = gr.complex_to_mag_squared() - self.adder = gr.add_ff() + self.adder = blocks.add_ff() moving_sum_taps = [rho/2 for i in range(cp_length)] self.moving_sum_filter = filter.fir_filter_fff(1,moving_sum_taps) @@ -72,8 +77,8 @@ class ofdm_sync_ml(gr.hier_block2): # Correlation from ML Sync - self.conjg = gr.conjugate_cc(); - self.mixer = gr.multiply_cc(); + self.conjg = blocks.conjugate_cc(); + self.mixer = blocks.multiply_cc(); movingsum2_taps = [1.0 for i in range(cp_length)] self.movingsum2 = filter.fir_filter_ccf(1,movingsum2_taps) @@ -87,12 +92,12 @@ class ofdm_sync_ml(gr.hier_block2): self.connect(self.movingsum2,self.angle) # ML Sync output arg, need to find maximum point of this - self.diff = gr.sub_ff() + self.diff = blocks.sub_ff() self.connect(self.c2mag,(self.diff,0)) self.connect(self.moving_sum_filter,(self.diff,1)) #ML measurements input to sampler block and detect - self.f2c = gr.float_to_complex() + self.f2c = blocks.float_to_complex() self.pk_detect = gr.peak_detector_fb(0.2, 0.25, 30, 0.0005) self.sample_and_hold = gr.sample_and_hold_ff() @@ -122,7 +127,7 @@ class ofdm_sync_ml(gr.hier_block2): kstime.reverse() self.kscorr = filter.fir_filter_ccc(1, kstime) self.corrmag = gr.complex_to_mag_squared() - self.div = gr.divide_ff() + self.div = blocks.divide_ff() # The output signature of the correlation has a few spikes because the rest of the # system uses the repeated preamble symbol. It needs to work that generically if @@ -131,9 +136,9 @@ class ofdm_sync_ml(gr.hier_block2): # identify the proper peak and remove other products in this cross-correlation self.threshold_factor = 0.1 self.slice = gr.threshold_ff(self.threshold_factor, self.threshold_factor, 0) - self.f2b = gr.float_to_char() - self.b2f = gr.char_to_float() - self.mul = gr.multiply_ff() + self.f2b = blocks.float_to_char() + self.b2f = blocks.char_to_float() + self.mul = blocks.multiply_ff() # Normalize the power of the corr output by the energy. This is not really needed # and could be removed for performance, but it makes for a cleaner signal. diff --git a/gr-digital/python/ofdm_sync_pn.py b/gr-digital/python/ofdm_sync_pn.py index 8307a8ee14..fb011bf252 100644 --- a/gr-digital/python/ofdm_sync_pn.py +++ b/gr-digital/python/ofdm_sync_pn.py @@ -29,6 +29,11 @@ try: except ImportError: import filter_swig as filter +try: + from gnuradio import blocks +except ImportError: + import blocks_swig as blocks + class ofdm_sync_pn(gr.hier_block2): def __init__(self, fft_length, cp_length, logging=False): """ @@ -42,7 +47,7 @@ class ofdm_sync_pn(gr.hier_block2): gr.io_signature(1, 1, gr.sizeof_gr_complex), # Input signature gr.io_signature2(2, 2, gr.sizeof_float, gr.sizeof_char)) # Output signature - self.input = gr.add_const_cc(0) + self.input = blocks.add_const_cc(0) # PN Sync @@ -50,8 +55,8 @@ class ofdm_sync_pn(gr.hier_block2): self.delay = gr.delay(gr.sizeof_gr_complex, fft_length/2) # Correlation from ML Sync - self.conjg = gr.conjugate_cc(); - self.corr = gr.multiply_cc(); + self.conjg = blocks.conjugate_cc(); + self.corr = blocks.multiply_cc(); # Create a moving sum filter for the corr output if 1: @@ -70,8 +75,8 @@ class ofdm_sync_pn(gr.hier_block2): else: self.inputmovingsum = filter.fft_filter_fff(1,movingsum2_taps) - self.square = gr.multiply_ff() - self.normalize = gr.divide_ff() + self.square = blocks.multiply_ff() + self.normalize = blocks.divide_ff() # Get magnitude (peaks) and angle (phase/freq error) self.c2mag = gr.complex_to_mag_squared() @@ -80,7 +85,7 @@ class ofdm_sync_pn(gr.hier_block2): self.sample_and_hold = gr.sample_and_hold_ff() #ML measurements input to sampler block and detect - self.sub1 = gr.add_const_ff(-1) + self.sub1 = blocks.add_const_ff(-1) self.pk_detect = gr.peak_detector_fb(0.20, 0.20, 30, 0.001) #self.pk_detect = gr.peak_detector2_fb(9) diff --git a/gr-digital/python/ofdm_sync_pnac.py b/gr-digital/python/ofdm_sync_pnac.py index a5edc272a8..9b0302ffbb 100644 --- a/gr-digital/python/ofdm_sync_pnac.py +++ b/gr-digital/python/ofdm_sync_pnac.py @@ -29,6 +29,11 @@ try: except ImportError: import filter_swig as filter +try: + from gnuradio import blocks +except ImportError: + import blocks_swig as blocks + class ofdm_sync_pnac(gr.hier_block2): def __init__(self, fft_length, cp_length, kstime, logging=False): """ @@ -55,7 +60,7 @@ class ofdm_sync_pnac(gr.hier_block2): gr.io_signature2(2, 2, gr.sizeof_float, gr.sizeof_char)) # Output signature - self.input = gr.add_const_cc(0) + self.input = blocks.add_const_cc(0) symbol_length = fft_length + cp_length @@ -70,8 +75,8 @@ class ofdm_sync_pnac(gr.hier_block2): self.delay = gr.delay(gr.sizeof_gr_complex, fft_length/2) # Correlation from ML Sync - self.conjg = gr.conjugate_cc(); - self.corr = gr.multiply_cc(); + self.conjg = blocks.conjugate_cc(); + self.corr = blocks.multiply_cc(); # Create a moving sum filter for the input self.mag = gr.complex_to_mag_squared() @@ -81,13 +86,13 @@ class ofdm_sync_pnac(gr.hier_block2): # Get magnitude (peaks) and angle (phase/freq error) self.c2mag = gr.complex_to_mag_squared() self.angle = gr.complex_to_arg() - self.compare = gr.sub_ff() + self.compare = blocks.sub_ff() self.sample_and_hold = gr.sample_and_hold_ff() #ML measurements input to sampler block and detect self.threshold = gr.threshold_ff(0,0,0) # threshold detection might need to be tweaked - self.peaks = gr.float_to_char() + self.peaks = blocksx.float_to_char() self.connect(self, self.input) diff --git a/gr-digital/python/qa_constellation.py b/gr-digital/python/qa_constellation.py index 9d6f4c6427..3c109cfe82 100755 --- a/gr-digital/python/qa_constellation.py +++ b/gr-digital/python/qa_constellation.py @@ -26,6 +26,7 @@ from cmath import exp, pi, log from gnuradio import gr, gr_unittest from utils import mod_codes import digital_swig as digital +import blocks_swig as blocks # import from local folder import psk @@ -192,7 +193,7 @@ class mod_demod(gr.hier_block2): # CHANNEL # Channel just consists of a rotation to check differential coding. if rotation is not None: - self.blocks.append(gr.multiply_const_cc(rotation)) + self.blocks.append(blocks.multiply_const_cc(rotation)) # RX # Convert the constellation symbols back to binary values. diff --git a/gr-digital/python/qa_constellation_receiver.py b/gr-digital/python/qa_constellation_receiver.py index 6da3fc1066..254a8240d4 100755 --- a/gr-digital/python/qa_constellation_receiver.py +++ b/gr-digital/python/qa_constellation_receiver.py @@ -27,6 +27,7 @@ from utils import mod_codes, alignment import packet_utils import filter_swig as filter import analog_swig as analog +import blocks_swig as blocks from generic_mod_demod import generic_mod, generic_demod from qa_constellation import tested_constellations, twod_constell @@ -60,12 +61,12 @@ class channel_model(gr.hier_block2): timing_offset = filter.fractional_interpolator_cc(0, timing) - noise_adder = gr.add_cc() + noise_adder = blocks.add_cc() noise = analog.noise_source_c(analog.GR_GAUSSIAN, noise_voltage, 0) freq_offset = analog.sig_source_c(1, analog.GR_SIN_WAVE, freq, 1.0, 0.0) - mixer_offset = gr.multiply_cc(); + mixer_offset = blocks.multiply_cc(); self.connect(self, timing_offset) self.connect(timing_offset, (mixer_offset,0)) diff --git a/gr-digital/python/qa_fll_band_edge.py b/gr-digital/python/qa_fll_band_edge.py index 1e699bbdd4..0f6bad984e 100755 --- a/gr-digital/python/qa_fll_band_edge.py +++ b/gr-digital/python/qa_fll_band_edge.py @@ -23,6 +23,7 @@ from gnuradio import gr, gr_unittest import digital_swig as digital import filter_swig as filter +import blocks_swig as blocks import analog_swig as analog import random, math @@ -55,7 +56,7 @@ class test_fll_band_edge_cc(gr_unittest.TestCase): # Mix symbols with a complex sinusoid to spin them self.nco = analog.sig_source_c(1, analog.GR_SIN_WAVE, foffset, 1) - self.mix = gr.multiply_cc() + self.mix = blocks.multiply_cc() # FLL will despin the symbols to an arbitrary phase self.fll = digital.fll_band_edge_cc(sps, rolloff, ntaps, bw) diff --git a/gr-digital/python/qa_ofdm_insert_preamble.py b/gr-digital/python/qa_ofdm_insert_preamble.py index d084796644..60902edc14 100755 --- a/gr-digital/python/qa_ofdm_insert_preamble.py +++ b/gr-digital/python/qa_ofdm_insert_preamble.py @@ -23,6 +23,7 @@ from gnuradio import gr, gr_unittest from pprint import pprint import digital_swig as digital +import blocks_swig as blocks class test_ofdm_insert_preamble(gr_unittest.TestCase): @@ -37,13 +38,13 @@ class test_ofdm_insert_preamble(gr_unittest.TestCase): src0 = gr.vector_source_c(v0) src1 = gr.vector_source_b(v1) - s2v = gr.stream_to_vector(gr.sizeof_gr_complex, fft_length) + s2v = blocks.stream_to_vector(gr.sizeof_gr_complex, fft_length) # print "len(v) = %d" % (len(v)) op = digital.ofdm_insert_preamble(fft_length, preamble) - v2s = gr.vector_to_stream(gr.sizeof_gr_complex, fft_length) + v2s = blocks.vector_to_stream(gr.sizeof_gr_complex, fft_length) dst0 = gr.vector_sink_c() dst1 = gr.vector_sink_b() diff --git a/gr-digital/python/qa_pn_correlator_cc.py b/gr-digital/python/qa_pn_correlator_cc.py index 4e81bf6662..53633d04fa 100755 --- a/gr-digital/python/qa_pn_correlator_cc.py +++ b/gr-digital/python/qa_pn_correlator_cc.py @@ -22,6 +22,7 @@ from gnuradio import gr, gr_unittest import digital_swig as digital +import blocks_swig as blocks class test_pn_correlator_cc(gr_unittest.TestCase): @@ -39,7 +40,7 @@ class test_pn_correlator_cc(gr_unittest.TestCase): length = 2**degree-1 src = digital.glfsr_source_f(degree) head = gr.head(gr.sizeof_float, length*length) - f2c = gr.float_to_complex() + f2c = blocks.float_to_complex() corr = digital.pn_correlator_cc(degree) dst = gr.vector_sink_c() self.tb.connect(src, head, f2c, corr, dst) |