diff options
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 > 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 > 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 > 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 > 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 > 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 > 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> |