diff options
Diffstat (limited to 'gr-blocks/lib')
-rw-r--r-- | gr-blocks/lib/CMakeLists.txt | 1 | ||||
-rw-r--r-- | gr-blocks/lib/qa_fxpt_nco.cc | 6 | ||||
-rw-r--r-- | gr-blocks/lib/qa_fxpt_vco.cc | 6 | ||||
-rw-r--r-- | gr-blocks/lib/vco_f_impl.cc | 68 | ||||
-rw-r--r-- | gr-blocks/lib/vco_f_impl.h | 53 |
5 files changed, 128 insertions, 6 deletions
diff --git a/gr-blocks/lib/CMakeLists.txt b/gr-blocks/lib/CMakeLists.txt index ad0af831f4..4506eaca39 100644 --- a/gr-blocks/lib/CMakeLists.txt +++ b/gr-blocks/lib/CMakeLists.txt @@ -209,6 +209,7 @@ list(APPEND gr_blocks_sources uchar_array_to_float.cc uchar_to_float_impl.cc unpack_k_bits_bb_impl.cc + vco_f_impl.cc vector_to_stream_impl.cc vector_to_streams_impl.cc ) diff --git a/gr-blocks/lib/qa_fxpt_nco.cc b/gr-blocks/lib/qa_fxpt_nco.cc index 12135dcf91..63c0a92902 100644 --- a/gr-blocks/lib/qa_fxpt_nco.cc +++ b/gr-blocks/lib/qa_fxpt_nco.cc @@ -26,7 +26,7 @@ #include <qa_fxpt_nco.h> #include <blocks/fxpt_nco.h> -#include <gr_nco.h> +#include <blocks/nco.h> #include <cppunit/TestAssert.h> #include <iostream> #include <stdio.h> @@ -50,7 +50,7 @@ static double max_d(double a, double b) void qa_fxpt_nco::t0() { - gr_nco<float,float> ref_nco; + nco<float,float> ref_nco; fxpt_nco new_nco; double max_error = 0, max_phase_error = 0; @@ -86,7 +86,7 @@ qa_fxpt_nco::t0() void qa_fxpt_nco::t1() { - gr_nco<float,float> ref_nco; + nco<float,float> ref_nco; fxpt_nco new_nco; gr_complex ref_block[SIN_COS_BLOCK_SIZE]; gr_complex new_block[SIN_COS_BLOCK_SIZE]; diff --git a/gr-blocks/lib/qa_fxpt_vco.cc b/gr-blocks/lib/qa_fxpt_vco.cc index ff26e0129e..2efce0506b 100644 --- a/gr-blocks/lib/qa_fxpt_vco.cc +++ b/gr-blocks/lib/qa_fxpt_vco.cc @@ -26,7 +26,7 @@ #include <qa_fxpt_vco.h> #include <blocks/fxpt_vco.h> -#include <gr_vco.h> +#include <blocks/vco.h> #include <cppunit/TestAssert.h> #include <iostream> #include <stdio.h> @@ -50,7 +50,7 @@ static double max_d(double a, double b) void qa_fxpt_vco::t0() { - gr_vco<float,float> ref_vco; + vco<float,float> ref_vco; fxpt_vco new_vco; double max_error = 0, max_phase_error = 0; float input[SIN_COS_BLOCK_SIZE]; @@ -79,7 +79,7 @@ qa_fxpt_vco::t0() void qa_fxpt_vco::t1() { - gr_vco<float,float> ref_vco; + vco<float,float> ref_vco; fxpt_vco new_vco; float ref_block[SIN_COS_BLOCK_SIZE]; float new_block[SIN_COS_BLOCK_SIZE]; diff --git a/gr-blocks/lib/vco_f_impl.cc b/gr-blocks/lib/vco_f_impl.cc new file mode 100644 index 0000000000..21e7d0a0f2 --- /dev/null +++ b/gr-blocks/lib/vco_f_impl.cc @@ -0,0 +1,68 @@ +/* -*- c++ -*- */ +/* + * Copyright 2005,2010,2013 Free Software Foundation, Inc. + * + * This file is part of GNU Radio + * + * GNU Radio is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3, or (at your option) + * any later version. + * + * GNU Radio is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Radio; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "vco_f_impl.h" +#include <gr_io_signature.h> +#include <math.h> + +namespace gr { + namespace blocks { + + vco_f::sptr + vco_f::make(double sampling_rate, double sensitivity, double amplitude) + { + return gnuradio::get_initial_sptr + (new vco_f_impl(sampling_rate, sensitivity, amplitude)); + } + + vco_f_impl::vco_f_impl(double sampling_rate, double sensitivity, double amplitude) + : gr_sync_block("vco_f", + gr_make_io_signature(1, 1, sizeof(float)), + gr_make_io_signature(1, 1, sizeof(float))), + d_sampling_rate(sampling_rate), d_sensitivity(sensitivity), + d_amplitude(amplitude), d_k(d_sensitivity/d_sampling_rate) + { + } + + vco_f_impl::~vco_f_impl() + { + } + + int + vco_f_impl::work(int noutput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items) + { + const float *input = (const float*)input_items[0]; + float *output = (float*)output_items[0]; + + d_vco.cos(output, input, noutput_items, d_k, d_amplitude); + + return noutput_items; + } + + } /* namespace blocks */ +} /* namespace gr */ diff --git a/gr-blocks/lib/vco_f_impl.h b/gr-blocks/lib/vco_f_impl.h new file mode 100644 index 0000000000..cecf72441f --- /dev/null +++ b/gr-blocks/lib/vco_f_impl.h @@ -0,0 +1,53 @@ +/* -*- c++ -*- */ +/* + * Copyright 2005,2013 Free Software Foundation, Inc. + * + * This file is part of GNU Radio + * + * GNU Radio is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3, or (at your option) + * any later version. + * + * GNU Radio is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Radio; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifndef INCLUDED_GR_VCO_F_IMPL_H +#define INCLUDED_GR_VCO_F_IMPL_H + +#include <blocks/vco_f.h> +#include <blocks/fxpt_vco.h> + +namespace gr { + namespace blocks { + + class vco_f_impl : public vco_f + { + private: + double d_sampling_rate; + double d_sensitivity; + double d_amplitude; + double d_k; + fxpt_vco d_vco; + + public: + vco_f_impl(double sampling_rate, double sensitivity, double amplitude); + ~vco_f_impl(); + + int work(int noutput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items); + }; + + } /* namespace blocks */ +} /* namespace gr */ + +#endif /* INCLUDED_GR_VCO_F_H */ |