summaryrefslogtreecommitdiff
path: root/gr-digital
diff options
context:
space:
mode:
authorTom Rondeau <trondeau@vt.edu>2012-12-21 15:11:39 -0500
committerTom Rondeau <trondeau@vt.edu>2012-12-21 21:19:13 -0500
commit55d3e4a47958be287648a2021f7e92d81086b2d9 (patch)
treeae0195c457f2cf2734376679cc88c2d728040680 /gr-digital
parentfa781237f341a74a243a9fb930daee7e62c3a682 (diff)
blocks: removes blocks moved to gr-blocks from gnuradio-core.
Also fixes up some other missing moves.
Diffstat (limited to 'gr-digital')
-rw-r--r--gr-digital/CMakeLists.txt1
-rwxr-xr-xgr-digital/examples/berawgn.py11
-rwxr-xr-xgr-digital/examples/narrowband/benchmark_add_channel.py3
-rwxr-xr-xgr-digital/examples/narrowband/digital_bert_tx.py3
-rwxr-xr-xgr-digital/examples/narrowband/rx_voice.py5
-rw-r--r--gr-digital/examples/narrowband/transmit_path.py3
-rwxr-xr-xgr-digital/examples/narrowband/tx_voice.py5
-rwxr-xr-xgr-digital/examples/ofdm/benchmark_add_channel.py3
-rw-r--r--gr-digital/examples/ofdm/transmit_path.py3
-rw-r--r--gr-digital/lib/CMakeLists.txt2
-rw-r--r--gr-digital/lib/cpmmod_bc_impl.cc2
-rw-r--r--gr-digital/lib/cpmmod_bc_impl.h4
-rw-r--r--gr-digital/python/CMakeLists.txt2
-rw-r--r--gr-digital/python/digital_voice.py.real103
-rw-r--r--gr-digital/python/gfsk.py3
-rw-r--r--gr-digital/python/ofdm.py3
-rw-r--r--gr-digital/python/ofdm_receiver.py5
-rw-r--r--gr-digital/python/ofdm_sync_ml.py25
-rw-r--r--gr-digital/python/ofdm_sync_pn.py17
-rw-r--r--gr-digital/python/ofdm_sync_pnac.py15
-rwxr-xr-xgr-digital/python/qa_constellation.py3
-rwxr-xr-xgr-digital/python/qa_constellation_receiver.py5
-rwxr-xr-xgr-digital/python/qa_fll_band_edge.py3
-rwxr-xr-xgr-digital/python/qa_ofdm_insert_preamble.py5
-rwxr-xr-xgr-digital/python/qa_pn_correlator_cc.py3
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)