summaryrefslogtreecommitdiff
path: root/gr-digital/lib/digital_kurtotic_equalizer_cc.cc
diff options
context:
space:
mode:
authorTom Rondeau <trondeau@vt.edu>2012-08-14 21:00:26 -0400
committerTom Rondeau <trondeau@vt.edu>2012-08-14 21:00:26 -0400
commitc537cf7d85f59db21c98ac859bc08fbe55031314 (patch)
treefd260f991eeb7fe1e2b7e2c2f781bfa50f6b2704 /gr-digital/lib/digital_kurtotic_equalizer_cc.cc
parente45449570984c0a709a21ea5ab078f9747e4b9c5 (diff)
digital: converted equalizers and fixed cma equalizer.
Diffstat (limited to 'gr-digital/lib/digital_kurtotic_equalizer_cc.cc')
-rw-r--r--gr-digital/lib/digital_kurtotic_equalizer_cc.cc87
1 files changed, 0 insertions, 87 deletions
diff --git a/gr-digital/lib/digital_kurtotic_equalizer_cc.cc b/gr-digital/lib/digital_kurtotic_equalizer_cc.cc
deleted file mode 100644
index f10ec83482..0000000000
--- a/gr-digital/lib/digital_kurtotic_equalizer_cc.cc
+++ /dev/null
@@ -1,87 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2011,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 <digital_kurtotic_equalizer_cc.h>
-#include <gr_io_signature.h>
-#include <volk/volk.h>
-
-digital_kurtotic_equalizer_cc_sptr
-digital_make_kurtotic_equalizer_cc(int num_taps, float mu)
-{
- return gnuradio::get_initial_sptr
- (new digital_kurtotic_equalizer_cc(num_taps, mu));
-}
-
-digital_kurtotic_equalizer_cc::digital_kurtotic_equalizer_cc(int num_taps, float mu)
- : gr_sync_decimator("kurtotic_equalizer_cc",
- gr_make_io_signature(1, 1, sizeof(gr_complex)),
- gr_make_io_signature(1, 1, sizeof(gr_complex)),
- 1),
- gr::filter::kernel::adaptive_fir_ccc(1, std::vector<gr_complex>(num_taps, gr_complex(0,0)))
-{
- set_gain(mu);
- if (num_taps > 0)
- d_taps[0] = 1.0;
- set_taps(d_taps);
-
- d_alpha_p = 0.01;
- d_alpha_q = 0.01;
- d_alpha_m = 0.01;
-
- d_p = 0.0f;
- d_m = 0.0f;
- d_q = gr_complex(0,0);
- d_u = gr_complex(0,0);
-
- const int alignment_multiple =
- volk_get_alignment() / sizeof(gr_complex);
- set_alignment(std::max(1,alignment_multiple));
- set_history(num_taps+1);
-}
-
-int
-digital_kurtotic_equalizer_cc::work(int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
-{
- gr_complex *in = (gr_complex *)input_items[0];
- gr_complex *out = (gr_complex *)output_items[0];
-
- int j = 0, k, l = d_taps.size();
- for(int i = 0; i < noutput_items; i++) {
- out[i] = filter(&in[j]);
-
- // Adjust taps
- d_error = error(out[i]);
- for(k = 0; k < l; k++) {
- update_tap(d_taps[l-k-1], in[j+k]);
- }
-
- j += decimation();
- }
-
- return noutput_items;
-}