summaryrefslogtreecommitdiff
path: root/gr-blocks/lib
diff options
context:
space:
mode:
Diffstat (limited to 'gr-blocks/lib')
-rw-r--r--gr-blocks/lib/CMakeLists.txt1
-rw-r--r--gr-blocks/lib/qa_fxpt_nco.cc6
-rw-r--r--gr-blocks/lib/qa_fxpt_vco.cc6
-rw-r--r--gr-blocks/lib/vco_f_impl.cc68
-rw-r--r--gr-blocks/lib/vco_f_impl.h53
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 */