summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/doxygen/other/main_page.dox5
-rw-r--r--docs/sphinx/source/gr/converter_blk.rst10
-rw-r--r--docs/sphinx/source/gr/index.rst14
-rwxr-xr-xgnuradio-core/src/examples/volk_benchmark/volk_types.py10
-rw-r--r--gnuradio-core/src/lib/general/CMakeLists.txt2
-rw-r--r--gnuradio-core/src/lib/general/general.i4
-rw-r--r--gnuradio-core/src/lib/general/gr_complex_to_interleaved_short.cc62
-rw-r--r--gnuradio-core/src/lib/general/gr_complex_to_interleaved_short.h52
-rw-r--r--gnuradio-core/src/lib/general/gr_complex_to_interleaved_short.i30
-rw-r--r--gnuradio-core/src/lib/general/gr_complex_to_xxx.cc280
-rw-r--r--gnuradio-core/src/lib/general/gr_complex_to_xxx.h160
-rw-r--r--gnuradio-core/src/lib/general/gr_complex_to_xxx.i64
-rwxr-xr-xgnuradio-core/src/python/gnuradio/gr/qa_complex_to_xxx.py142
-rwxr-xr-xgr-analog/examples/tags/uhd_burst_detector.py2
-rw-r--r--gr-analog/python/am_demod.py2
-rw-r--r--gr-analog/python/wfm_rcv_fmdet.py2
-rw-r--r--gr-analog/python/wfm_rcv_pll.py2
-rw-r--r--gr-atsc/src/python/all_atsc.py40
-rwxr-xr-xgr-atsc/src/python/xlate.py10
-rw-r--r--gr-digital/python/ofdm_sync_ml.py6
-rw-r--r--gr-digital/python/ofdm_sync_pn.py6
-rw-r--r--gr-digital/python/ofdm_sync_pnac.py6
-rwxr-xr-xgr-digital/python/qa_cpm.py5
-rw-r--r--gr-fft/python/logpwrfft.py2
-rwxr-xr-xgr-uhd/apps/hf_explorer/hfx.py6
-rw-r--r--gr-uhd/apps/hf_radio/ssbdemod.py4
-rwxr-xr-xgr-uhd/examples/python/usrp_am_mw_rcv.py2
-rwxr-xr-xgr-uhd/examples/python/usrp_spectrum_sense.py2
-rwxr-xr-xgr-uhd/examples/python/usrp_tv_rcv.py4
-rwxr-xr-xgr-uhd/examples/python/usrp_tv_rcv_nogui.py2
-rw-r--r--gr-wxgui/python/fftsink_gl.py2
-rw-r--r--gr-wxgui/python/fftsink_nongl.py4
-rw-r--r--gr-wxgui/python/scopesink_gl.py2
-rw-r--r--gr-wxgui/python/scopesink_nongl.py2
-rw-r--r--gr-wxgui/python/waterfallsink_nongl.py4
-rw-r--r--grc/blocks/block_tree.xml12
-rw-r--r--grc/blocks/gr_complex_to_arg.xml29
-rw-r--r--grc/blocks/gr_complex_to_float.xml36
-rw-r--r--grc/blocks/gr_complex_to_imag.xml29
-rw-r--r--grc/blocks/gr_complex_to_interleaved_short.xml20
-rw-r--r--grc/blocks/gr_complex_to_mag.xml29
-rw-r--r--grc/blocks/gr_complex_to_mag_squared.xml29
-rw-r--r--grc/blocks/gr_complex_to_real.xml29
43 files changed, 69 insertions, 1096 deletions
diff --git a/docs/doxygen/other/main_page.dox b/docs/doxygen/other/main_page.dox
index c7acac33dc..6f422dfd8f 100644
--- a/docs/doxygen/other/main_page.dox
+++ b/docs/doxygen/other/main_page.dox
@@ -327,8 +327,9 @@ The \ref volk_guide page provides an overview of how to incorporate
and use Volk in GNU Radio blocks.
Many blocks have already been converted to use Volk in their calls, so
-they can also serve as examples. See the gr_complex_to_xxx.h file for
-examples of various blocks that make use of Volk.
+they can also serve as examples. See the
+gr::blocks::complex_to_<type>.h files for examples of various blocks
+that make use of Volk.
\section prefs Configuration / Preference Files
diff --git a/docs/sphinx/source/gr/converter_blk.rst b/docs/sphinx/source/gr/converter_blk.rst
deleted file mode 100644
index be643d2cb1..0000000000
--- a/docs/sphinx/source/gr/converter_blk.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-gnuradio.gr: Type Conversions
-=============================
-
-.. autooldblock:: gnuradio.gr.complex_to_interleaved_short
-.. autooldblock:: gnuradio.gr.complex_to_float
-.. autooldblock:: gnuradio.gr.complex_to_real
-.. autooldblock:: gnuradio.gr.complex_to_imag
-.. autooldblock:: gnuradio.gr.complex_to_mag
-.. autooldblock:: gnuradio.gr.complex_to_mag_squared
-.. autooldblock:: gnuradio.gr.complex_to_arg
diff --git a/docs/sphinx/source/gr/index.rst b/docs/sphinx/source/gr/index.rst
index f35653aaf8..2b456824fc 100644
--- a/docs/sphinx/source/gr/index.rst
+++ b/docs/sphinx/source/gr/index.rst
@@ -66,20 +66,6 @@ Information Coding and Decoding
gnuradio.gr.fake_channel_decoder_pp
-Type Conversions
-^^^^^^^^^^^^^^^^
-
-.. autosummary::
- :nosignatures:
-
- gnuradio.gr.complex_to_interleaved_short
- gnuradio.gr.complex_to_float
- gnuradio.gr.complex_to_real
- gnuradio.gr.complex_to_imag
- gnuradio.gr.complex_to_mag
- gnuradio.gr.complex_to_mag_squared
- gnuradio.gr.complex_to_arg
-
Miscellaneous Blocks
^^^^^^^^^^^^^^^^^^^^
diff --git a/gnuradio-core/src/examples/volk_benchmark/volk_types.py b/gnuradio-core/src/examples/volk_benchmark/volk_types.py
index 134a3db781..e8db14aff7 100755
--- a/gnuradio-core/src/examples/volk_benchmark/volk_types.py
+++ b/gnuradio-core/src/examples/volk_benchmark/volk_types.py
@@ -50,35 +50,35 @@ def int_to_float(N):
######################################################################
def complex_to_float(N):
- op = gr.complex_to_float()
+ op = blocks.complex_to_float()
tb = helper(N, op, gr.sizeof_gr_complex, gr.sizeof_float, 1, 2)
return tb
######################################################################
def complex_to_real(N):
- op = gr.complex_to_real()
+ op = blocks.complex_to_real()
tb = helper(N, op, gr.sizeof_gr_complex, gr.sizeof_float, 1, 1)
return tb
######################################################################
def complex_to_imag(N):
- op = gr.complex_to_imag()
+ op = blocks.complex_to_imag()
tb = helper(N, op, gr.sizeof_gr_complex, gr.sizeof_float, 1, 1)
return tb
######################################################################
def complex_to_mag(N):
- op = gr.complex_to_mag()
+ op = blocks.complex_to_mag()
tb = helper(N, op, gr.sizeof_gr_complex, gr.sizeof_float, 1, 1)
return tb
######################################################################
def complex_to_mag_squared(N):
- op = gr.complex_to_mag_squared()
+ op = blocks.complex_to_mag_squared()
tb = helper(N, op, gr.sizeof_gr_complex, gr.sizeof_float, 1, 1)
return tb
diff --git a/gnuradio-core/src/lib/general/CMakeLists.txt b/gnuradio-core/src/lib/general/CMakeLists.txt
index 599d0f2a0d..bf9d43ec1a 100644
--- a/gnuradio-core/src/lib/general/CMakeLists.txt
+++ b/gnuradio-core/src/lib/general/CMakeLists.txt
@@ -147,8 +147,6 @@ set(gr_core_general_triple_threats
gr_block_gateway
gr_check_counting_s
gr_check_lfsr_32k_s
- gr_complex_to_interleaved_short
- gr_complex_to_xxx
gr_copy
gr_endian_swap
gr_fake_channel_coder_pp
diff --git a/gnuradio-core/src/lib/general/general.i b/gnuradio-core/src/lib/general/general.i
index 030dce92a2..8be52295b9 100644
--- a/gnuradio-core/src/lib/general/general.i
+++ b/gnuradio-core/src/lib/general/general.i
@@ -33,8 +33,6 @@
#include <gr_lfsr_32k_source_s.h>
#include <gr_check_lfsr_32k_s.h>
#include <gr_align_on_samplenumbers_ss.h>
-#include <gr_complex_to_xxx.h>
-#include <gr_complex_to_interleaved_short.h>
//#include <gr_endianness.h>
#include <gr_endian_swap.h>
#include <gr_firdes.h>
@@ -69,8 +67,6 @@
%include "gr_lfsr_32k_source_s.i"
%include "gr_check_lfsr_32k_s.i"
%include "gr_align_on_samplenumbers_ss.i"
-%include "gr_complex_to_xxx.i"
-%include "gr_complex_to_interleaved_short.i"
//%include "gr_endianness.i"
%include "gr_endian_swap.i"
%include "gr_firdes.i"
diff --git a/gnuradio-core/src/lib/general/gr_complex_to_interleaved_short.cc b/gnuradio-core/src/lib/general/gr_complex_to_interleaved_short.cc
deleted file mode 100644
index 596c149961..0000000000
--- a/gnuradio-core/src/lib/general/gr_complex_to_interleaved_short.cc
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004,2005,2010 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <gr_complex_to_interleaved_short.h>
-#include <gr_io_signature.h>
-#include <math.h>
-
-gr_complex_to_interleaved_short_sptr
-gr_make_complex_to_interleaved_short ()
-{
- return gnuradio::get_initial_sptr(new gr_complex_to_interleaved_short ());
-}
-
-gr_complex_to_interleaved_short::gr_complex_to_interleaved_short ()
- : gr_sync_interpolator ("gr_complex_to_interleaved_short",
- gr_make_io_signature (1, 1, sizeof (gr_complex)),
- gr_make_io_signature (1, 1, sizeof (short)),
- 2)
-{
-}
-
-int
-gr_complex_to_interleaved_short::work (int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
-{
- const gr_complex *in = (const gr_complex *) input_items[0];
- short *out = (short *) output_items[0];
-
- for (int i = 0; i < noutput_items/2; i++){
- *out++ = (short) lrintf(in[i].real()); // FIXME saturate?
- *out++ = (short) lrintf(in[i].imag());
- }
-
- return noutput_items;
-}
-
-
-
diff --git a/gnuradio-core/src/lib/general/gr_complex_to_interleaved_short.h b/gnuradio-core/src/lib/general/gr_complex_to_interleaved_short.h
deleted file mode 100644
index 66503413ff..0000000000
--- a/gnuradio-core/src/lib/general/gr_complex_to_interleaved_short.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004 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_GR_COMPLEX_TO_INTERLEAVED_SHORT_H
-#define INCLUDED_GR_COMPLEX_TO_INTERLEAVED_SHORT_H
-
-#include <gr_core_api.h>
-#include <gr_sync_interpolator.h>
-
-class gr_complex_to_interleaved_short;
-typedef boost::shared_ptr<gr_complex_to_interleaved_short>
- gr_complex_to_interleaved_short_sptr;
-
-GR_CORE_API gr_complex_to_interleaved_short_sptr
-gr_make_complex_to_interleaved_short ();
-
-/*!
- * \brief Convert stream of complex to a stream of interleaved shorts
- * \ingroup converter_blk
- */
-
-class GR_CORE_API gr_complex_to_interleaved_short : public gr_sync_interpolator
-{
- friend GR_CORE_API gr_complex_to_interleaved_short_sptr gr_make_complex_to_interleaved_short ();
- gr_complex_to_interleaved_short ();
-
- public:
- virtual int work (int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
-};
-
-#endif /* INCLUDED_GR_COMPLEX_TO_INTERLEAVED_SHORT_H */
diff --git a/gnuradio-core/src/lib/general/gr_complex_to_interleaved_short.i b/gnuradio-core/src/lib/general/gr_complex_to_interleaved_short.i
deleted file mode 100644
index 19c01b7c66..0000000000
--- a/gnuradio-core/src/lib/general/gr_complex_to_interleaved_short.i
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004 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.
- */
-
-GR_SWIG_BLOCK_MAGIC(gr,complex_to_interleaved_short)
-
-gr_complex_to_interleaved_short_sptr gr_make_complex_to_interleaved_short ();
-
-class gr_complex_to_interleaved_short : public gr_sync_interpolator
-{
- gr_complex_to_interleaved_short ();
-};
diff --git a/gnuradio-core/src/lib/general/gr_complex_to_xxx.cc b/gnuradio-core/src/lib/general/gr_complex_to_xxx.cc
deleted file mode 100644
index cdf6d7f3a6..0000000000
--- a/gnuradio-core/src/lib/general/gr_complex_to_xxx.cc
+++ /dev/null
@@ -1,280 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004,2008,2010,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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <gr_complex_to_xxx.h>
-#include <gr_io_signature.h>
-#include <gr_math.h>
-#include <volk/volk.h>
-
-// ----------------------------------------------------------------
-
-gr_complex_to_float_sptr
-gr_make_complex_to_float (unsigned int vlen)
-{
- return gnuradio::get_initial_sptr(new gr_complex_to_float (vlen));
-}
-
-gr_complex_to_float::gr_complex_to_float (unsigned int vlen)
- : gr_sync_block ("complex_to_float",
- gr_make_io_signature (1, 1, sizeof (gr_complex) * vlen),
- gr_make_io_signature (1, 2, sizeof (float) * vlen)),
- d_vlen(vlen)
-{
- const int alignment_multiple =
- volk_get_alignment() / sizeof(float);
- set_alignment(std::max(1,alignment_multiple));
-}
-
-int
-gr_complex_to_float::work (int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
-{
- const gr_complex *in = (const gr_complex *) input_items[0];
- float *out0 = (float *) output_items[0];
- float* out1;
- int noi = noutput_items * d_vlen;
-
- switch (output_items.size ()){
- case 1:
- if(is_unaligned()) {
- for (int i = 0; i < noi; i++){
- out0[i] = in[i].real ();
- }
- }
- else {
- volk_32fc_deinterleave_real_32f_a(out0, in, noi);
- }
- break;
-
- case 2:
- out1 = (float *) output_items[1];
- if(is_unaligned()) {
- for (int i = 0; i < noi; i++){
- out0[i] = in[i].real ();
- out1[i] = in[i].imag ();
- }
- }
- else {
- volk_32fc_deinterleave_32f_x2_a(out0, out1, in, noi);
- }
- break;
-
- default:
- abort ();
- }
-
- return noutput_items;
-}
-
-// ----------------------------------------------------------------
-
-gr_complex_to_real_sptr
-gr_make_complex_to_real (unsigned int vlen)
-{
- return gnuradio::get_initial_sptr(new gr_complex_to_real (vlen));
-}
-
-gr_complex_to_real::gr_complex_to_real (unsigned int vlen)
- : gr_sync_block ("complex_to_real",
- gr_make_io_signature (1, 1, sizeof (gr_complex) * vlen),
- gr_make_io_signature (1, 1, sizeof (float) * vlen)),
- d_vlen(vlen)
-{
- const int alignment_multiple =
- volk_get_alignment() / sizeof(float);
- set_alignment(std::max(1,alignment_multiple));
-}
-
-int
-gr_complex_to_real::work (int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
-{
- const gr_complex *in = (const gr_complex *) input_items[0];
- float *out = (float *) output_items[0];
- int noi = noutput_items * d_vlen;
-
- if(is_unaligned()) {
- for (int i = 0; i < noi; i++){
- out[i] = in[i].real ();
- }
- }
- else {
- volk_32fc_deinterleave_real_32f_a(out, in, noi);
- }
-
- return noutput_items;
-}
-
-// ----------------------------------------------------------------
-
-gr_complex_to_imag_sptr
-gr_make_complex_to_imag (unsigned int vlen)
-{
- return gnuradio::get_initial_sptr(new gr_complex_to_imag (vlen));
-}
-
-gr_complex_to_imag::gr_complex_to_imag (unsigned int vlen)
- : gr_sync_block ("complex_to_imag",
- gr_make_io_signature (1, 1, sizeof (gr_complex) * vlen),
- gr_make_io_signature (1, 1, sizeof (float) * vlen)),
- d_vlen(vlen)
-{
- const int alignment_multiple =
- volk_get_alignment() / sizeof(float);
- set_alignment(std::max(1,alignment_multiple));
-}
-
-int
-gr_complex_to_imag::work (int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
-{
- const gr_complex *in = (const gr_complex *) input_items[0];
- float *out = (float *) output_items[0];
- int noi = noutput_items * d_vlen;
-
- if(is_unaligned()) {
- for (int i = 0; i < noi; i++){
- out[i] = in[i].imag ();
- }
- }
- else {
- volk_32fc_deinterleave_imag_32f_a(out, in, noi);
- }
-
- return noutput_items;
-}
-
-// ----------------------------------------------------------------
-
-gr_complex_to_mag_sptr
-gr_make_complex_to_mag (unsigned int vlen)
-{
- return gnuradio::get_initial_sptr(new gr_complex_to_mag (vlen));
-}
-
-gr_complex_to_mag::gr_complex_to_mag (unsigned int vlen)
- : gr_sync_block ("complex_to_mag",
- gr_make_io_signature (1, 1, sizeof (gr_complex) * vlen),
- gr_make_io_signature (1, 1, sizeof (float) * vlen)),
- d_vlen(vlen)
-{
- const int alignment_multiple =
- volk_get_alignment() / sizeof(float);
- set_alignment(std::max(1,alignment_multiple));
-}
-
-int
-gr_complex_to_mag::work (int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
-{
- const gr_complex *in = (const gr_complex *) input_items[0];
- float *out = (float *) output_items[0];
- int noi = noutput_items * d_vlen;
-
- // turned out to be faster than aligned/unaligned switching
- volk_32fc_magnitude_32f_u(out, in, noi);
-
- return noutput_items;
-}
-
-// ----------------------------------------------------------------
-
-gr_complex_to_mag_squared_sptr
-gr_make_complex_to_mag_squared (unsigned int vlen)
-{
- return gnuradio::get_initial_sptr(new gr_complex_to_mag_squared (vlen));
-}
-
-gr_complex_to_mag_squared::gr_complex_to_mag_squared (unsigned int vlen)
- : gr_sync_block ("complex_to_mag_squared",
- gr_make_io_signature (1, 1, sizeof (gr_complex) * vlen),
- gr_make_io_signature (1, 1, sizeof (float) * vlen)),
- d_vlen(vlen)
-{
- const int alignment_multiple =
- volk_get_alignment() / sizeof(float);
- set_alignment(std::max(1,alignment_multiple));
-}
-
-int
-gr_complex_to_mag_squared::work (int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
-{
- const gr_complex *in = (const gr_complex *) input_items[0];
- float *out = (float *) output_items[0];
- int noi = noutput_items * d_vlen;
-
- if(is_unaligned()) {
- volk_32fc_magnitude_squared_32f_u(out, in, noi);
- }
- else {
- volk_32fc_magnitude_squared_32f_a(out, in, noi);
- }
-
- return noutput_items;
-}
-
-// ----------------------------------------------------------------
-
-gr_complex_to_arg_sptr
-gr_make_complex_to_arg (unsigned int vlen)
-{
- return gnuradio::get_initial_sptr(new gr_complex_to_arg (vlen));
-}
-
-gr_complex_to_arg::gr_complex_to_arg (unsigned int vlen)
- : gr_sync_block ("complex_to_arg",
- gr_make_io_signature (1, 1, sizeof (gr_complex) * vlen),
- gr_make_io_signature (1, 1, sizeof (float) * vlen)),
- d_vlen(vlen)
-{
- const int alignment_multiple =
- volk_get_alignment() / sizeof(float);
- set_alignment(std::max(1,alignment_multiple));
-}
-
-int
-gr_complex_to_arg::work (int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
-{
- const gr_complex *in = (const gr_complex *) input_items[0];
- float *out = (float *) output_items[0];
- int noi = noutput_items * d_vlen;
-
- // The fast_atan2f is faster than Volk
- for (int i = 0; i < noi; i++){
- // out[i] = std::arg (in[i]);
- out[i] = gr_fast_atan2f(in[i]);
- }
-
- return noutput_items;
-}
diff --git a/gnuradio-core/src/lib/general/gr_complex_to_xxx.h b/gnuradio-core/src/lib/general/gr_complex_to_xxx.h
deleted file mode 100644
index a2f06ea28c..0000000000
--- a/gnuradio-core/src/lib/general/gr_complex_to_xxx.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004 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_GR_COMPLEX_TO_XXX_H
-#define INCLUDED_GR_COMPLEX_TO_XXX_H
-
-#include <gr_core_api.h>
-#include <gr_sync_block.h>
-#include <gr_complex.h>
-
-class gr_complex_to_float;
-class gr_complex_to_real;
-class gr_complex_to_imag;
-class gr_complex_to_mag;
-class gr_complex_to_mag_squared;
-class gr_complex_to_arg;
-
-typedef boost::shared_ptr<gr_complex_to_float> gr_complex_to_float_sptr;
-typedef boost::shared_ptr<gr_complex_to_real> gr_complex_to_real_sptr;
-typedef boost::shared_ptr<gr_complex_to_imag> gr_complex_to_imag_sptr;
-typedef boost::shared_ptr<gr_complex_to_mag> gr_complex_to_mag_sptr;
-typedef boost::shared_ptr<gr_complex_to_mag_squared> gr_complex_to_mag_squared_sptr;
-typedef boost::shared_ptr<gr_complex_to_arg> gr_complex_to_arg_sptr;
-
-GR_CORE_API gr_complex_to_float_sptr gr_make_complex_to_float (unsigned int vlen=1);
-GR_CORE_API gr_complex_to_real_sptr gr_make_complex_to_real (unsigned int vlen=1);
-GR_CORE_API gr_complex_to_imag_sptr gr_make_complex_to_imag (unsigned int vlen=1);
-GR_CORE_API gr_complex_to_mag_sptr gr_make_complex_to_mag (unsigned int vlen=1);
-GR_CORE_API gr_complex_to_mag_squared_sptr gr_make_complex_to_mag_squared (unsigned int vlen=1);
-GR_CORE_API gr_complex_to_arg_sptr gr_make_complex_to_arg (unsigned int vlen=1);
-
-/*!
- * \brief convert a stream of gr_complex to 1 or 2 streams of float
- * \ingroup converter_blk
- * \param vlen vector len (default 1)
- */
-class GR_CORE_API gr_complex_to_float : public gr_sync_block
-{
- friend GR_CORE_API gr_complex_to_float_sptr gr_make_complex_to_float (unsigned int vlen);
- gr_complex_to_float (unsigned int vlen);
-
- unsigned int d_vlen;
-
- public:
- virtual int work (int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
-};
-
-/*!
- * \brief complex in, real out (float)
- * \ingroup converter_blk
- * \param vlen vector len (default 1)
- */
-class GR_CORE_API gr_complex_to_real : public gr_sync_block
-{
- friend GR_CORE_API gr_complex_to_real_sptr gr_make_complex_to_real (unsigned int vlen);
- gr_complex_to_real (unsigned int vlen);
-
- unsigned int d_vlen;
-
- public:
- virtual int work (int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
-};
-
-/*!
- * \brief complex in, imaginary out (float)
- * \ingroup converter_blk
- * \param vlen vector len (default 1)
- */
-class GR_CORE_API gr_complex_to_imag : public gr_sync_block
-{
- friend GR_CORE_API gr_complex_to_imag_sptr gr_make_complex_to_imag (unsigned int vlen);
- gr_complex_to_imag (unsigned int vlen);
-
- unsigned int d_vlen;
-
- public:
- virtual int work (int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
-};
-
-/*!
- * \brief complex in, magnitude out (float)
- * \ingroup converter_blk
- * \param vlen vector len (default 1)
- */
-class GR_CORE_API gr_complex_to_mag : public gr_sync_block
-{
- friend GR_CORE_API gr_complex_to_mag_sptr
- gr_make_complex_to_mag (unsigned int vlen);
- gr_complex_to_mag (unsigned int vlen);
-
- unsigned int d_vlen;
-
- public:
- virtual int work (int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
-};
-
-/*!
- * \brief complex in, magnitude squared out (float)
- * \ingroup converter_blk
- * \param vlen vector len (default 1)
- */
-class GR_CORE_API gr_complex_to_mag_squared : public gr_sync_block
-{
- friend GR_CORE_API gr_complex_to_mag_squared_sptr gr_make_complex_to_mag_squared (unsigned int vlen);
- gr_complex_to_mag_squared (unsigned int vlen);
-
- unsigned int d_vlen;
-
- public:
- virtual int work (int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
-};
-
-/*!
- * \brief complex in, angle out (float)
- * \ingroup converter_blk
- * \param vlen vector len (default 1)
- */
-class GR_CORE_API gr_complex_to_arg : public gr_sync_block
-{
- friend GR_CORE_API gr_complex_to_arg_sptr gr_make_complex_to_arg (unsigned int vlen);
- gr_complex_to_arg (unsigned int vlen);
-
- unsigned int d_vlen;
-
- public:
- virtual int work (int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
-};
-
-#endif /* INCLUDED_GR_COMPLEX_TO_XXX_H */
diff --git a/gnuradio-core/src/lib/general/gr_complex_to_xxx.i b/gnuradio-core/src/lib/general/gr_complex_to_xxx.i
deleted file mode 100644
index 372b0e8b58..0000000000
--- a/gnuradio-core/src/lib/general/gr_complex_to_xxx.i
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2004 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.
- */
-
-GR_SWIG_BLOCK_MAGIC(gr,complex_to_float);
-gr_complex_to_float_sptr gr_make_complex_to_float (unsigned int vlen=1);
-class gr_complex_to_float : public gr_sync_block
-{
- gr_complex_to_float (unsigned int vlen);
-};
-
-GR_SWIG_BLOCK_MAGIC(gr,complex_to_real);
-gr_complex_to_real_sptr gr_make_complex_to_real (unsigned int vlen=1);
-class gr_complex_to_real : public gr_sync_block
-{
- gr_complex_to_real (unsigned int vlen);
-};
-
-GR_SWIG_BLOCK_MAGIC(gr,complex_to_imag);
-gr_complex_to_imag_sptr gr_make_complex_to_imag (unsigned int vlen=1);
-class gr_complex_to_imag : public gr_sync_block
-{
- gr_complex_to_imag (unsigned int vlen);
-};
-
-GR_SWIG_BLOCK_MAGIC(gr,complex_to_mag);
-gr_complex_to_mag_sptr gr_make_complex_to_mag (unsigned int vlen=1);
-class gr_complex_to_mag : public gr_sync_block
-{
- gr_complex_to_mag (unsigned int vlen);
-};
-
-GR_SWIG_BLOCK_MAGIC(gr,complex_to_mag_squared);
-gr_complex_to_mag_squared_sptr gr_make_complex_to_mag_squared (unsigned int vlen=1);
-class gr_complex_to_mag_squared : public gr_sync_block
-{
- gr_complex_to_mag_squared (unsigned int vlen);
-};
-
-GR_SWIG_BLOCK_MAGIC(gr,complex_to_arg);
-gr_complex_to_arg_sptr gr_make_complex_to_arg (unsigned int vlen=1);
-class gr_complex_to_arg : public gr_sync_block
-{
- gr_complex_to_arg (unsigned int vlen);
-};
-
diff --git a/gnuradio-core/src/python/gnuradio/gr/qa_complex_to_xxx.py b/gnuradio-core/src/python/gnuradio/gr/qa_complex_to_xxx.py
deleted file mode 100755
index 946c0d7f88..0000000000
--- a/gnuradio-core/src/python/gnuradio/gr/qa_complex_to_xxx.py
+++ /dev/null
@@ -1,142 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2004,2007,2010 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, gr_unittest
-import math
-
-class test_complex_ops (gr_unittest.TestCase):
-
- def setUp (self):
- self.tb = gr.top_block ()
-
- def tearDown (self):
- self.tb = None
-
- def test_complex_to_float_1 (self):
- src_data = (0, 1, -1, 3+4j, -3-4j, -3+4j)
- expected_result = (0, 1, -1, 3, -3, -3)
- src = gr.vector_source_c (src_data)
- op = gr.complex_to_float ()
- dst = gr.vector_sink_f ()
- self.tb.connect (src, op)
- self.tb.connect (op, dst)
- self.tb.run () # run the graph and wait for it to finish
- actual_result = dst.data () # fetch the contents of the sink
- self.assertFloatTuplesAlmostEqual (expected_result, actual_result)
-
- def test_complex_to_float_2 (self):
- src_data = (0, 1, -1, 3+4j, -3-4j, -3+4j)
- expected_result0 = (0, 1, -1, 3, -3, -3)
- expected_result1 = (0, 0, 0, 4, -4, 4)
- src = gr.vector_source_c (src_data)
- op = gr.complex_to_float ()
- dst0 = gr.vector_sink_f ()
- dst1 = gr.vector_sink_f ()
- self.tb.connect (src, op)
- self.tb.connect ((op, 0), dst0)
- self.tb.connect ((op, 1), dst1)
- self.tb.run ()
- actual_result = dst0.data ()
- self.assertFloatTuplesAlmostEqual (expected_result0, actual_result)
- actual_result = dst1.data ()
- self.assertFloatTuplesAlmostEqual (expected_result1, actual_result)
-
- def test_complex_to_real (self):
- src_data = (0, 1, -1, 3+4j, -3-4j, -3+4j)
- expected_result = (0, 1, -1, 3, -3, -3)
- src = gr.vector_source_c (src_data)
- op = gr.complex_to_real ()
- dst = gr.vector_sink_f ()
- self.tb.connect (src, op)
- self.tb.connect (op, dst)
- self.tb.run ()
- actual_result = dst.data ()
- self.assertFloatTuplesAlmostEqual (expected_result, actual_result)
-
- def test_complex_to_imag (self):
- src_data = (0, 1, -1, 3+4j, -3-4j, -3+4j)
- expected_result = (0, 0, 0, 4, -4, 4)
- src = gr.vector_source_c (src_data)
- op = gr.complex_to_imag ()
- dst = gr.vector_sink_f ()
- self.tb.connect (src, op)
- self.tb.connect (op, dst)
- self.tb.run ()
- actual_result = dst.data ()
- self.assertFloatTuplesAlmostEqual (expected_result, actual_result,5)
-
- def test_complex_to_mag (self):
- src_data = (0, 1, -1, 3+4j, -3-4j, -3+4j)
- expected_result = (0, 1, 1, 5, 5, 5)
- src = gr.vector_source_c (src_data)
- op = gr.complex_to_mag ()
- dst = gr.vector_sink_f ()
- self.tb.connect (src, op)
- self.tb.connect (op, dst)
- self.tb.run ()
- actual_result = dst.data ()
- self.assertFloatTuplesAlmostEqual (expected_result, actual_result,5)
-
- def test_complex_to_mag_squared (self):
- src_data = (0, 1, -1, 3+4j, -3-4j, -3+4j)
- expected_result = (0, 1, 1, 25, 25, 25)
- src = gr.vector_source_c (src_data)
- op = gr.complex_to_mag_squared ()
- dst = gr.vector_sink_f ()
- self.tb.connect (src, op)
- self.tb.connect (op, dst)
- self.tb.run ()
- actual_result = dst.data ()
- self.assertFloatTuplesAlmostEqual (expected_result, actual_result,5)
-
- def test_complex_to_arg (self):
- pi = math.pi
- input_data = (0, pi/6, pi/4, pi/2, 3*pi/4, 7*pi/8,
- -pi/6, -pi/4, -pi/2, -3*pi/4, -7*pi/8)
-
- expected_result = (0.0, # 0
- 0.52382522821426392, # pi/6
- 0.78539806604385376, # pi/4
- 1.5707963705062866, # pi/2
- 2.3561947345733643, # 3pi/4
- 2.7491819858551025, # 7pi/8
- -0.52382522821426392, # -pi/6
- -0.78539806604385376, # -pi/4
- -1.5707963705062866, # -pi/2
- -2.3561947345733643, # -3pi/4
- -2.7491819858551025) # -7pi/8
-
- src_data = tuple ([math.cos (x) + math.sin (x) * 1j for x in input_data])
- src = gr.vector_source_c (src_data)
- op = gr.complex_to_arg ()
- dst = gr.vector_sink_f ()
- self.tb.connect (src, op)
- self.tb.connect (op, dst)
- self.tb.run ()
- actual_result = dst.data ()
-
- self.assertFloatTuplesAlmostEqual (expected_result, actual_result, 3)
-
-
-if __name__ == '__main__':
- gr_unittest.run(test_complex_ops, "test_complex_ops.xml")
-
diff --git a/gr-analog/examples/tags/uhd_burst_detector.py b/gr-analog/examples/tags/uhd_burst_detector.py
index 8d846bbae8..4bcf5a77cc 100755
--- a/gr-analog/examples/tags/uhd_burst_detector.py
+++ b/gr-analog/examples/tags/uhd_burst_detector.py
@@ -61,7 +61,7 @@ class uhd_burst_detector(gr.top_block):
## use squelch to detect energy
self.det = analog.simple_squelch_cc(self.threshold, 0.01)
## convert to mag squared (float)
- self.c2m = gr.complex_to_mag_squared()
+ self.c2m = blocks.complex_to_mag_squared()
## average to debounce
self.avg = filter.single_pole_iir_filter_ff(0.01)
## rescale signal for conversion to short
diff --git a/gr-analog/python/am_demod.py b/gr-analog/python/am_demod.py
index 64a3909f51..3459e825f4 100644
--- a/gr-analog/python/am_demod.py
+++ b/gr-analog/python/am_demod.py
@@ -43,7 +43,7 @@ class am_demod_cf(gr.hier_block2):
gr.io_signature(1, 1, gr.sizeof_gr_complex), # Input signature
gr.io_signature(1, 1, gr.sizeof_float)) # Input signature
- MAG = gr.complex_to_mag()
+ MAG = blocks.complex_to_mag()
DCR = blocks.add_const_ff(-1.0)
audio_taps = filter.optfir.low_pass(0.5, # Filter gain
diff --git a/gr-analog/python/wfm_rcv_fmdet.py b/gr-analog/python/wfm_rcv_fmdet.py
index 735b39912f..f3627d378d 100644
--- a/gr-analog/python/wfm_rcv_fmdet.py
+++ b/gr-analog/python/wfm_rcv_fmdet.py
@@ -153,7 +153,7 @@ class wfm_rcv_fmdet(gr.hier_block2):
# pick off the real component of the basebanded L-R
# signal. The imaginary SHOULD be zero
- self.LmR_real = gr.complex_to_real();
+ self.LmR_real = blocks.complex_to_real();
self.Make_Left = blocks.add_ff();
self.Make_Right = blocks.sub_ff();
diff --git a/gr-analog/python/wfm_rcv_pll.py b/gr-analog/python/wfm_rcv_pll.py
index 0c5c83db21..7452de731f 100644
--- a/gr-analog/python/wfm_rcv_pll.py
+++ b/gr-analog/python/wfm_rcv_pll.py
@@ -141,7 +141,7 @@ class wfm_rcv_pll(gr.hier_block2):
# pick off the real component of the basebanded L-R signal. The imaginary SHOULD be zero
- self.LmR_real = gr.complex_to_real();
+ self.LmR_real = blocks.complex_to_real();
self.Make_Left = blocks.add_ff();
self.Make_Right = blocks.sub_ff();
diff --git a/gr-atsc/src/python/all_atsc.py b/gr-atsc/src/python/all_atsc.py
index 0137839bdc..6fcb02fda7 100644
--- a/gr-atsc/src/python/all_atsc.py
+++ b/gr-atsc/src/python/all_atsc.py
@@ -33,6 +33,8 @@
# then at 0 with edges at -3.2MHz and 3.2MHz.
from gnuradio import gr, atsc
+from gnuradio import filter
+from gnuradio import blocks
import sys, os, math
def graph (args):
@@ -48,24 +50,24 @@ def graph (args):
# Convert to a from shorts to a stream of complex numbers.
srcf = gr.file_source (gr.sizeof_short,infile)
- s2ss = gr.stream_to_streams(gr.sizeof_short,2)
- s2f1 = gr.short_to_float()
- s2f2 = gr.short_to_float()
- src0 = gr.float_to_complex()
+ s2ss = blocks.stream_to_streams(gr.sizeof_short,2)
+ s2f1 = blocks.short_to_float()
+ s2f2 = blocks.short_to_float()
+ src0 = blocks.float_to_complex()
tb.connect(srcf, s2ss)
tb.connect((s2ss, 0), s2f1, (src0, 0))
tb.connect((s2ss, 1), s2f2, (src0, 1))
# Low pass filter it and increase sample rate by a factor of 3.
- lp_coeffs = gr.firdes.low_pass ( 3, 19.2e6, 3.2e6, .5e6, gr.firdes.WIN_HAMMING )
- lp = gr.interp_fir_filter_ccf ( 3, lp_coeffs )
+ lp_coeffs = filter.firdes.low_pass ( 3, 19.2e6, 3.2e6, .5e6, filter.firdes.WIN_HAMMING )
+ lp = filter.interp_fir_filter_ccf ( 3, lp_coeffs )
tb.connect(src0, lp)
# Upconvert it.
- duc_coeffs = gr.firdes.low_pass ( 1, 19.2e6, 9e6, 1e6, gr.firdes.WIN_HAMMING )
- duc = gr.freq_xlating_fir_filter_ccf ( 1, duc_coeffs, 5.75e6, 19.2e6 )
+ duc_coeffs = filter.firdes.low_pass ( 1, 19.2e6, 9e6, 1e6, filter.firdes.WIN_HAMMING )
+ duc = filter.freq_xlating_fir_filter_ccf ( 1, duc_coeffs, 5.75e6, 19.2e6 )
# Discard the imaginary component.
- c2f = gr.complex_to_float()
+ c2f = blocks.complex_to_float()
tb.connect(lp, duc, c2f)
# Frequency Phase Lock Loop
@@ -74,7 +76,7 @@ def graph (args):
# 1/2 as wide because we're designing lp filter
symbol_rate = atsc.ATSC_SYMBOL_RATE/2.
NTAPS = 279
- tt = gr.firdes.root_raised_cosine (1.0, input_rate, symbol_rate, .115, NTAPS)
+ tt = filter.firdes.root_raised_cosine (1.0, input_rate, symbol_rate, .115, NTAPS)
# heterodyne the low pass coefficients up to the specified bandpass
# center frequency. Note that when we do this, the filter bandwidth
# is effectively twice the low pass (2.69 * 2 = 5.38) and hence
@@ -83,7 +85,7 @@ def graph (args):
t=[]
for i in range(len(tt)):
t += [tt[i] * 2. * math.cos(arg * i)]
- rrc = gr.fir_filter_fff(1, t)
+ rrc = filter.fir_filter_fff(1, t)
fpll = atsc.fpll()
@@ -91,17 +93,17 @@ def graph (args):
lower_edge = 6e6 - 0.31e6
upper_edge = IF_freq - 3e6 + pilot_freq
transition_width = upper_edge - lower_edge
- lp_coeffs = gr.firdes.low_pass (1.0,
- input_rate,
- (lower_edge + upper_edge) * 0.5,
- transition_width,
- gr.firdes.WIN_HAMMING);
+ lp_coeffs = filter.firdes.low_pass(1.0,
+ input_rate,
+ (lower_edge + upper_edge) * 0.5,
+ transition_width,
+ filter.firdes.WIN_HAMMING);
- lp_filter = gr.fir_filter_fff (1,lp_coeffs)
+ lp_filter = filter.fir_filter_fff(1,lp_coeffs)
alpha = 1e-5
- iir = gr.single_pole_iir_filter_ff(alpha)
- remove_dc = gr.sub_ff()
+ iir = filter.single_pole_iir_filter_ff(alpha)
+ remove_dc = blocks.sub_ff()
tb.connect(c2f, fpll, lp_filter)
tb.connect(lp_filter, iir)
diff --git a/gr-atsc/src/python/xlate.py b/gr-atsc/src/python/xlate.py
index 68e280a8ce..ca7aa667e7 100755
--- a/gr-atsc/src/python/xlate.py
+++ b/gr-atsc/src/python/xlate.py
@@ -32,6 +32,8 @@
# Input complex -3.2 to 3.2Mhz, output float 2.55 to 8.95Mhz.
from gnuradio import gr
+from gnuradio import filter
+from gnuradio import blocks
import os
def graph ():
@@ -40,12 +42,12 @@ def graph ():
tb = gr.top_block ()
- src0 = gr.file_source (gr.sizeof_gr_complex,"/tmp/atsc_pipe_1")
+ src0 = gr.file_source(gr.sizeof_gr_complex,"/tmp/atsc_pipe_1")
- duc_coeffs = gr.firdes.low_pass ( 1, 19.2e6, 9e6, 1e6, gr.firdes.WIN_HAMMING )
- duc = gr.freq_xlating_fir_filter_ccf ( 1, duc_coeffs, 5.75e6, 19.2e6 )
+ duc_coeffs = filter.firdes.low_pass( 1, 19.2e6, 9e6, 1e6, filter.firdes.WIN_HAMMING )
+ duc = filter.freq_xlating_fir_filter_ccf( 1 duc_coeffs, 5.75e6, 19.2e6 )
- c2f = gr.complex_to_float()
+ c2f = blocks.complex_to_float()
file = gr.file_sink(gr.sizeof_float,"/tmp/atsc_pipe_2")
tb.connect( src0, duc, c2f, file )
diff --git a/gr-digital/python/ofdm_sync_ml.py b/gr-digital/python/ofdm_sync_ml.py
index 69cfcbc7ea..76c00f3a54 100644
--- a/gr-digital/python/ofdm_sync_ml.py
+++ b/gr-digital/python/ofdm_sync_ml.py
@@ -62,8 +62,8 @@ class ofdm_sync_ml(gr.hier_block2):
self.connect(self.input, self.delay)
# magnitude squared blocks
- self.magsqrd1 = gr.complex_to_mag_squared()
- self.magsqrd2 = gr.complex_to_mag_squared()
+ self.magsqrd1 = blocks.complex_to_mag_squared()
+ self.magsqrd2 = blocks.complex_to_mag_squared()
self.adder = blocks.add_ff()
moving_sum_taps = [rho/2 for i in range(cp_length)]
@@ -126,7 +126,7 @@ class ofdm_sync_ml(gr.hier_block2):
kstime = [k.conjugate() for k in kstime]
kstime.reverse()
self.kscorr = filter.fir_filter_ccc(1, kstime)
- self.corrmag = gr.complex_to_mag_squared()
+ self.corrmag = blocks.complex_to_mag_squared()
self.div = blocks.divide_ff()
# The output signature of the correlation has a few spikes because the rest of the
diff --git a/gr-digital/python/ofdm_sync_pn.py b/gr-digital/python/ofdm_sync_pn.py
index dcccebc30f..63e85135bc 100644
--- a/gr-digital/python/ofdm_sync_pn.py
+++ b/gr-digital/python/ofdm_sync_pn.py
@@ -67,7 +67,7 @@ class ofdm_sync_pn(gr.hier_block2):
self.moving_sum_filter = filter.fft_filter_ccc(1,moving_sum_taps)
# Create a moving sum filter for the input
- self.inputmag2 = gr.complex_to_mag_squared()
+ self.inputmag2 = blocks.complex_to_mag_squared()
movingsum2_taps = [1.0 for i in range(fft_length//2)]
if 1:
@@ -79,8 +79,8 @@ class ofdm_sync_pn(gr.hier_block2):
self.normalize = blocks.divide_ff()
# Get magnitude (peaks) and angle (phase/freq error)
- self.c2mag = gr.complex_to_mag_squared()
- self.angle = gr.complex_to_arg()
+ self.c2mag = blocks.complex_to_mag_squared()
+ self.angle = blocks.complex_to_arg()
self.sample_and_hold = blocks.sample_and_hold_ff()
diff --git a/gr-digital/python/ofdm_sync_pnac.py b/gr-digital/python/ofdm_sync_pnac.py
index 1de2c5f395..547b1e93c0 100644
--- a/gr-digital/python/ofdm_sync_pnac.py
+++ b/gr-digital/python/ofdm_sync_pnac.py
@@ -79,13 +79,13 @@ class ofdm_sync_pnac(gr.hier_block2):
self.corr = blocks.multiply_cc();
# Create a moving sum filter for the input
- self.mag = gr.complex_to_mag_squared()
+ self.mag = blocks.complex_to_mag_squared()
movingsum_taps = (fft_length//1)*[1.0,]
self.power = filter.fir_filter_fff(1,movingsum_taps)
# Get magnitude (peaks) and angle (phase/freq error)
- self.c2mag = gr.complex_to_mag_squared()
- self.angle = gr.complex_to_arg()
+ self.c2mag = blocks.complex_to_mag_squared()
+ self.angle = blocks.complex_to_arg()
self.compare = blocks.sub_ff()
self.sample_and_hold = blocks.sample_and_hold_ff()
diff --git a/gr-digital/python/qa_cpm.py b/gr-digital/python/qa_cpm.py
index bfeb2bcdd4..070e69a982 100755
--- a/gr-digital/python/qa_cpm.py
+++ b/gr-digital/python/qa_cpm.py
@@ -23,6 +23,7 @@
from gnuradio import gr, gr_unittest
import digital_swig as digital
import analog_swig as analog
+import blocks_swig as blocks
import numpy
class test_cpm(gr_unittest.TestCase):
@@ -39,7 +40,7 @@ class test_cpm(gr_unittest.TestCase):
in_bits = (1,) * 20
src = gr.vector_source_b(in_bits, False)
cpm = digital.cpmmod_bc(type, 0.5, sps, L)
- arg = gr.complex_to_arg()
+ arg = blocks.complex_to_arg()
sink = gr.vector_sink_f()
self.tb.connect(src, cpm, arg, sink)
@@ -70,7 +71,7 @@ class test_cpm(gr_unittest.TestCase):
in_bits = (1,) * 20
src = gr.vector_source_b(in_bits, False)
gmsk = digital.gmskmod_bc(sps, L, bt)
- arg = gr.complex_to_arg()
+ arg = blocks.complex_to_arg()
sink = gr.vector_sink_f()
self.tb.connect(src, gmsk, arg, sink)
diff --git a/gr-fft/python/logpwrfft.py b/gr-fft/python/logpwrfft.py
index 0513169275..98303b1e1e 100644
--- a/gr-fft/python/logpwrfft.py
+++ b/gr-fft/python/logpwrfft.py
@@ -65,7 +65,7 @@ class _logpwrfft_base(gr.hier_block2):
fft = self._fft_block[0](fft_size, True, fft_window)
window_power = sum(map(lambda x: x*x, fft_window))
- c2magsq = gr.complex_to_mag_squared(fft_size)
+ c2magsq = blocks.complex_to_mag_squared(fft_size)
self._avg = filter.single_pole_iir_filter_ff(1.0, fft_size)
self._log = blocks.nlog10_ff(10, fft_size,
-20*math.log10(fft_size) # Adjust for number of bins
diff --git a/gr-uhd/apps/hf_explorer/hfx.py b/gr-uhd/apps/hf_explorer/hfx.py
index 15962f9e4d..9e00805134 100755
--- a/gr-uhd/apps/hf_explorer/hfx.py
+++ b/gr-uhd/apps/hf_explorer/hfx.py
@@ -305,7 +305,7 @@ class MyFrame(wx.Frame):
sample_rate=self.af_sample_rate,
average=True, size=(640,240))
- c2f = gr.complex_to_float()
+ c2f = blocks.complex_to_float()
# AM branch
self.sel_am = blocks.multiply_const_cc(0)
@@ -318,8 +318,8 @@ class MyFrame(wx.Frame):
am_det = blocks.multiply_cc()
# these are for converting +7.5kHz to -7.5kHz
# for some reason blocks.conjugate_cc() adds noise ??
- c2f2 = gr.complex_to_float()
- c2f3 = gr.complex_to_float()
+ c2f2 = blocks.complex_to_float()
+ c2f3 = blocks.complex_to_float()
f2c = blocks.float_to_complex()
phaser1 = blocks.multiply_const_ff(1)
phaser2 = blocks.multiply_const_ff(-1)
diff --git a/gr-uhd/apps/hf_radio/ssbdemod.py b/gr-uhd/apps/hf_radio/ssbdemod.py
index a77fb6cfcb..4e3d57ac30 100644
--- a/gr-uhd/apps/hf_radio/ssbdemod.py
+++ b/gr-uhd/apps/hf_radio/ssbdemod.py
@@ -60,7 +60,7 @@ class ssb_demod( gr.hier_block2 ):
0,
self.if_rate )
- self.split = gr.complex_to_float()
+ self.split = blocks.complex_to_float()
self.lpf = gr.fir_filter_fff(
1, self.audio_taps )
@@ -69,7 +69,7 @@ class ssb_demod( gr.hier_block2 ):
self.am_sel = blocks.multiply_const_ff( 0 )
self.sb_sel = blocks.multiply_const_ff( 1 )
self.mixer = blocks.add_ff()
- self.am_det = gr.complex_to_mag()
+ self.am_det = blocks.complex_to_mag()
self.connect(self, self.xlate)
self.connect(self.xlate, self.split)
diff --git a/gr-uhd/examples/python/usrp_am_mw_rcv.py b/gr-uhd/examples/python/usrp_am_mw_rcv.py
index 6e9c3fed67..eebbd7c041 100755
--- a/gr-uhd/examples/python/usrp_am_mw_rcv.py
+++ b/gr-uhd/examples/python/usrp_am_mw_rcv.py
@@ -116,7 +116,7 @@ class wfm_rx_block (stdgui2.std_top_block):
self.chan_filt = filter.fir_filter_ccf(chanfilt_decim, chan_filt_coeffs)
self.agc = analog.agc_cc(0.1, 1, 1, 100000)
- self.am_demod = gr.complex_to_mag()
+ self.am_demod = blocks.complex_to_mag()
self.volume_control = blocks.multiply_const_ff(self.vol)
audio_filt_coeffs = filter.firdes.low_pass_2(1, # gain
diff --git a/gr-uhd/examples/python/usrp_spectrum_sense.py b/gr-uhd/examples/python/usrp_spectrum_sense.py
index 8456d8bdf2..077365a916 100755
--- a/gr-uhd/examples/python/usrp_spectrum_sense.py
+++ b/gr-uhd/examples/python/usrp_spectrum_sense.py
@@ -162,7 +162,7 @@ class my_top_block(gr.top_block):
for tap in mywindow:
power += tap*tap
- c2mag = gr.complex_to_mag_squared(self.fft_size)
+ c2mag = blocks.complex_to_mag_squared(self.fft_size)
# FIXME the log10 primitive is dog slow
log = blocks.nlog10_ff(10, self.fft_size,
diff --git a/gr-uhd/examples/python/usrp_tv_rcv.py b/gr-uhd/examples/python/usrp_tv_rcv.py
index cd54fad3ae..3e612f6a02 100755
--- a/gr-uhd/examples/python/usrp_tv_rcv.py
+++ b/gr-uhd/examples/python/usrp_tv_rcv.py
@@ -197,7 +197,7 @@ class tv_rx_block (stdgui2.std_top_block):
self.dst =file_sink
self.agc = analog.agc_cc(1e-7,1.0,1.0) #1e-7
- self.am_demod = gr.complex_to_mag ()
+ self.am_demod = blocks.complex_to_mag ()
self.set_blacklevel = blocks.add_const_ff(0.0)
self.invert_and_scale = blocks.multiply_const_ff (0.0) #-self.contrast *128.0*255.0/(200.0)
@@ -225,7 +225,7 @@ class tv_rx_block (stdgui2.std_top_block):
elif process_type=='do_nullsink':
#self.connect (self.src, self.am_demod,self.invert_and_scale,f2uc,video_sink)
- c2r=gr.complex_to_real()
+ c2r=blocks.complex_to_real()
nullsink=gr.null_sink(gr.sizeof_float)
self.connect (self.src, c2r,nullsink) #video_sink)
elif process_type=='do_tv_sync_corr':
diff --git a/gr-uhd/examples/python/usrp_tv_rcv_nogui.py b/gr-uhd/examples/python/usrp_tv_rcv_nogui.py
index dfa6ceec1f..5eef4a00f6 100755
--- a/gr-uhd/examples/python/usrp_tv_rcv_nogui.py
+++ b/gr-uhd/examples/python/usrp_tv_rcv_nogui.py
@@ -161,7 +161,7 @@ class my_top_block(gr.top_block):
self.agc = analog.agc_cc(1e-7,1.0,1.0) #1e-7
- self.am_demod = gr.complex_to_mag ()
+ self.am_demod = blocks.complex_to_mag ()
self.set_blacklevel = blocks.add_const_ff(options.brightness +255.0)
self.invert_and_scale = blocks.multiply_const_ff(-options.contrast *128.0*255.0/(200.0))
self.f2uc = blocks.float_to_uchar()
diff --git a/gr-wxgui/python/fftsink_gl.py b/gr-wxgui/python/fftsink_gl.py
index b5bb5c6c60..272a2456ce 100644
--- a/gr-wxgui/python/fftsink_gl.py
+++ b/gr-wxgui/python/fftsink_gl.py
@@ -190,7 +190,7 @@ class test_app_block (stdgui2.std_top_block):
vbox.Add(sink2.win, 1, wx.EXPAND)
combine2 = blocks.add_ff()
- c2f2 = gr.complex_to_float()
+ c2f2 = blocks.complex_to_float()
self.connect(src2, (combine2,0))
self.connect(noise,c2f2,(combine2,1))
diff --git a/gr-wxgui/python/fftsink_nongl.py b/gr-wxgui/python/fftsink_nongl.py
index ee5145dfd7..73bc7f41b0 100644
--- a/gr-wxgui/python/fftsink_nongl.py
+++ b/gr-wxgui/python/fftsink_nongl.py
@@ -130,7 +130,7 @@ class fft_sink_f(gr.hier_block2, fft_sink_base):
for tap in mywindow:
power += tap*tap
- self.c2mag = gr.complex_to_mag(self.fft_size)
+ self.c2mag = blocks.complex_to_mag(self.fft_size)
self.avg = filter.single_pole_iir_filter_ff(1.0, self.fft_size)
# FIXME We need to add 3dB to all bins but the DC bin
@@ -176,7 +176,7 @@ class fft_sink_c(gr.hier_block2, fft_sink_base):
for tap in mywindow:
power += tap*tap
- self.c2mag = gr.complex_to_mag(self.fft_size)
+ self.c2mag = blocks.complex_to_mag(self.fft_size)
self.avg = filter.single_pole_iir_filter_ff(1.0, self.fft_size)
# FIXME We need to add 3dB to all bins but the DC bin
diff --git a/gr-wxgui/python/scopesink_gl.py b/gr-wxgui/python/scopesink_gl.py
index 8fca9f9a20..21d7169026 100644
--- a/gr-wxgui/python/scopesink_gl.py
+++ b/gr-wxgui/python/scopesink_gl.py
@@ -158,7 +158,7 @@ class _scope_sink_base(gr.hier_block2, common.wxgui_hb):
)
else:
for i in range(num_inputs):
- c2f = gr.complex_to_float()
+ c2f = blocks.complex_to_float()
self.wxgui_connect((self, i), c2f)
for j in range(2):
self.connect(
diff --git a/gr-wxgui/python/scopesink_nongl.py b/gr-wxgui/python/scopesink_nongl.py
index 5f44eeca74..2c5ff9278a 100644
--- a/gr-wxgui/python/scopesink_nongl.py
+++ b/gr-wxgui/python/scopesink_nongl.py
@@ -66,7 +66,7 @@ class scope_sink_c(gr.hier_block2):
msgq = gr.msg_queue(2) # message queue that holds at most 2 messages
self.guts = gr.oscope_sink_f(sample_rate, msgq)
for i in range(num_inputs):
- c2f = gr.complex_to_float()
+ c2f = blocks.complex_to_float()
self.connect((self, i), c2f)
self.connect((c2f, 0),(self.guts, 2*i+0))
self.connect((c2f, 1),(self.guts, 2*i+1))
diff --git a/gr-wxgui/python/waterfallsink_nongl.py b/gr-wxgui/python/waterfallsink_nongl.py
index 11dfd106c5..37b8281927 100644
--- a/gr-wxgui/python/waterfallsink_nongl.py
+++ b/gr-wxgui/python/waterfallsink_nongl.py
@@ -95,7 +95,7 @@ class waterfall_sink_f(gr.hier_block2, waterfall_sink_base):
mywindow = window.blackmanharris(self.fft_size)
self.fft = fft.fft_vfc(self.fft_size, True, mywindow)
- self.c2mag = gr.complex_to_mag(self.fft_size)
+ self.c2mag = blocks.complex_to_mag(self.fft_size)
self.avg = filter.single_pole_iir_filter_ff(1.0, self.fft_size)
self.log = blocks.nlog10_ff(20, self.fft_size, -20*math.log10(self.fft_size))
self.sink = blocks.message_sink(gr.sizeof_float * self.fft_size, self.msgq, True)
@@ -126,7 +126,7 @@ class waterfall_sink_c(gr.hier_block2, waterfall_sink_base):
mywindow = window.blackmanharris(self.fft_size)
self.fft = fft.fft_vcc(self.fft_size, True, mywindow)
- self.c2mag = gr.complex_to_mag(self.fft_size)
+ self.c2mag = blocks.complex_to_mag(self.fft_size)
self.avg = filter.single_pole_iir_filter_ff(1.0, self.fft_size)
self.log = blocks.nlog10_ff(20, self.fft_size, -20*math.log10(self.fft_size))
self.sink = blocks.message_sink(gr.sizeof_float * self.fft_size, self.msgq, True)
diff --git a/grc/blocks/block_tree.xml b/grc/blocks/block_tree.xml
index 61455b9861..74430f94d2 100644
--- a/grc/blocks/block_tree.xml
+++ b/grc/blocks/block_tree.xml
@@ -36,18 +36,6 @@
<block>gr_endian_swap</block>
</cat>
<cat>
- <name>Type Conversions</name>
- <block>gr_complex_to_arg</block>
- <block>gr_complex_to_mag</block>
- <block>gr_complex_to_mag_squared</block>
- <block>gr_complex_to_real</block>
- <block>gr_complex_to_imag</block>
-
- <block>gr_complex_to_float</block>
-
- <block>gr_complex_to_interleaved_short</block>
- </cat>
- <cat>
<name>Stream Conversions</name>
<block>gr_burst_tagger</block>
</cat>
diff --git a/grc/blocks/gr_complex_to_arg.xml b/grc/blocks/gr_complex_to_arg.xml
deleted file mode 100644
index a7bbacd74f..0000000000
--- a/grc/blocks/gr_complex_to_arg.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Complex to Arg
-###################################################
- -->
-<block>
- <name>Complex to Arg</name>
- <key>gr_complex_to_arg</key>
- <import>from gnuradio import gr</import>
- <make>gr.complex_to_arg($vlen)</make>
- <param>
- <name>Vec Length</name>
- <key>vlen</key>
- <value>1</value>
- <type>int</type>
- </param>
- <check>$vlen &gt; 0</check>
- <sink>
- <name>in</name>
- <type>complex</type>
- <vlen>$vlen</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>float</type>
- <vlen>$vlen</vlen>
- </source>
-</block>
diff --git a/grc/blocks/gr_complex_to_float.xml b/grc/blocks/gr_complex_to_float.xml
deleted file mode 100644
index 05681b0b90..0000000000
--- a/grc/blocks/gr_complex_to_float.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Complex to Float:
-## one or two output streams
-###################################################
- -->
-<block>
- <name>Complex To Float</name>
- <key>gr_complex_to_float</key>
- <import>from gnuradio import gr</import>
- <make>gr.complex_to_float($vlen)</make>
- <param>
- <name>Vec Length</name>
- <key>vlen</key>
- <value>1</value>
- <type>int</type>
- </param>
- <check>$vlen &gt; 0</check>
- <sink>
- <name>in</name>
- <type>complex</type>
- <vlen>$vlen</vlen>
- </sink>
- <source>
- <name>re</name>
- <type>float</type>
- <vlen>$vlen</vlen>
- </source>
- <source>
- <name>im</name>
- <type>float</type>
- <vlen>$vlen</vlen>
- <optional>1</optional>
- </source>
-</block>
diff --git a/grc/blocks/gr_complex_to_imag.xml b/grc/blocks/gr_complex_to_imag.xml
deleted file mode 100644
index 7c120eedda..0000000000
--- a/grc/blocks/gr_complex_to_imag.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Complex to Imaginary
-###################################################
- -->
-<block>
- <name>Complex to Imag</name>
- <key>gr_complex_to_imag</key>
- <import>from gnuradio import gr</import>
- <make>gr.complex_to_imag($vlen)</make>
- <param>
- <name>Vec Length</name>
- <key>vlen</key>
- <value>1</value>
- <type>int</type>
- </param>
- <check>$vlen &gt; 0</check>
- <sink>
- <name>in</name>
- <type>complex</type>
- <vlen>$vlen</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>float</type>
- <vlen>$vlen</vlen>
- </source>
-</block>
diff --git a/grc/blocks/gr_complex_to_interleaved_short.xml b/grc/blocks/gr_complex_to_interleaved_short.xml
deleted file mode 100644
index 5e999599ac..0000000000
--- a/grc/blocks/gr_complex_to_interleaved_short.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Complex to Interleaved Short:
-###################################################
- -->
-<block>
- <name>Complex To IShort</name>
- <key>gr_complex_to_interleaved_short</key>
- <import>from gnuradio import gr</import>
- <make>gr.complex_to_interleaved_short()</make>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>short</type>
- </source>
-</block>
diff --git a/grc/blocks/gr_complex_to_mag.xml b/grc/blocks/gr_complex_to_mag.xml
deleted file mode 100644
index adc95f2075..0000000000
--- a/grc/blocks/gr_complex_to_mag.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Complex to Magnitude
-###################################################
- -->
-<block>
- <name>Complex to Mag</name>
- <key>gr_complex_to_mag</key>
- <import>from gnuradio import gr</import>
- <make>gr.complex_to_mag($vlen)</make>
- <param>
- <name>Vec Length</name>
- <key>vlen</key>
- <value>1</value>
- <type>int</type>
- </param>
- <check>$vlen &gt; 0</check>
- <sink>
- <name>in</name>
- <type>complex</type>
- <vlen>$vlen</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>float</type>
- <vlen>$vlen</vlen>
- </source>
-</block>
diff --git a/grc/blocks/gr_complex_to_mag_squared.xml b/grc/blocks/gr_complex_to_mag_squared.xml
deleted file mode 100644
index cd23bfb5c5..0000000000
--- a/grc/blocks/gr_complex_to_mag_squared.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Complex to Magnitude Squared
-###################################################
- -->
-<block>
- <name>Complex to Mag^2</name>
- <key>gr_complex_to_mag_squared</key>
- <import>from gnuradio import gr</import>
- <make>gr.complex_to_mag_squared($vlen)</make>
- <param>
- <name>Vec Length</name>
- <key>vlen</key>
- <value>1</value>
- <type>int</type>
- </param>
- <check>$vlen &gt; 0</check>
- <sink>
- <name>in</name>
- <type>complex</type>
- <vlen>$vlen</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>float</type>
- <vlen>$vlen</vlen>
- </source>
-</block>
diff --git a/grc/blocks/gr_complex_to_real.xml b/grc/blocks/gr_complex_to_real.xml
deleted file mode 100644
index ae9ec7b142..0000000000
--- a/grc/blocks/gr_complex_to_real.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Complex to Real
-###################################################
- -->
-<block>
- <name>Complex to Real</name>
- <key>gr_complex_to_real</key>
- <import>from gnuradio import gr</import>
- <make>gr.complex_to_real($vlen)</make>
- <param>
- <name>Vec Length</name>
- <key>vlen</key>
- <value>1</value>
- <type>int</type>
- </param>
- <check>$vlen &gt; 0</check>
- <sink>
- <name>in</name>
- <type>complex</type>
- <vlen>$vlen</vlen>
- </sink>
- <source>
- <name>out</name>
- <type>float</type>
- <vlen>$vlen</vlen>
- </source>
-</block>