From 8edabae54b3b7c64180d734d4525a94e2a2d1ac8 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Wed, 18 May 2011 11:05:10 +0100 Subject: digital: set number of samps per symbol for the equalizer. Also, explicitly set the initial taps of the adaptive filter to 0+j0 --- gr-digital/swig/digital_cma_equalizer_cc.i | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gr-digital/swig') diff --git a/gr-digital/swig/digital_cma_equalizer_cc.i b/gr-digital/swig/digital_cma_equalizer_cc.i index 346b744db..ad3b1245c 100644 --- a/gr-digital/swig/digital_cma_equalizer_cc.i +++ b/gr-digital/swig/digital_cma_equalizer_cc.i @@ -29,12 +29,13 @@ GR_SWIG_BLOCK_MAGIC(digital,cma_equalizer_cc) digital_cma_equalizer_cc_sptr digital_make_cma_equalizer_cc(int num_taps, float modulus, - float mu); + float mu, + int sps); class digital_cma_equalizer_cc : public gr_adaptive_fir_ccc { private: - digital_cma_equalizer_cc(int num_taps, float modulus, float mu); + digital_cma_equalizer_cc(int num_taps, float modulus, float mu, int sps); public: void set_gain(float mu); -- cgit From 1db1cabf26f9f543e35ae7082917fc1cdd5d6853 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Fri, 3 Jun 2011 17:14:05 -0400 Subject: digital: adding some comments to the swig file --- gr-digital/swig/digital_constellation.i | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gr-digital/swig') diff --git a/gr-digital/swig/digital_constellation.i b/gr-digital/swig/digital_constellation.i index 0eb0c59e2..7296ca114 100644 --- a/gr-digital/swig/digital_constellation.i +++ b/gr-digital/swig/digital_constellation.i @@ -118,6 +118,10 @@ public: unsigned int n_sectors); }; +/* + BPSK Constellation +*/ + class digital_constellation_bpsk; typedef boost::shared_ptr digital_constellation_bpsk_sptr; %template(digital_constellation_bpsk_sptr) boost::shared_ptr; @@ -131,6 +135,10 @@ public: digital_constellation_bpsk (); }; +/* + QPSK Constellation +*/ + class digital_constellation_qpsk; typedef boost::shared_ptr digital_constellation_qpsk_sptr; %template(digital_constellation_qpsk_sptr) boost::shared_ptr; @@ -144,3 +152,20 @@ public: digital_constellation_qpsk (); }; + +/* + 8PSK Constellation +*/ + +class digital_constellation_8psk; +typedef boost::shared_ptr digital_constellation_8psk_sptr; +%template(digital_constellation_8psk_sptr) boost::shared_ptr; +%rename(constellation_8psk) digital_make_constellation_8psk; +digital_constellation_8psk_sptr digital_make_constellation_8psk(); +%ignore digital_constellation_8psk; + +class digital_constellation_8psk : public digital_constellation +{ +public: + digital_constellation_8psk (); +}; -- cgit From 7d1d1902c54dc8feeb5742592e28403011602708 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Fri, 3 Jun 2011 17:14:28 -0400 Subject: digital: adding an LMS decision-directed equalizer block. --- gr-digital/swig/Makefile.am | 1 + gr-digital/swig/digital_lms_dd_equalizer_cc.i | 38 +++++++++++++++++++++++++++ gr-digital/swig/digital_swig.i | 2 ++ 3 files changed, 41 insertions(+) create mode 100644 gr-digital/swig/digital_lms_dd_equalizer_cc.i (limited to 'gr-digital/swig') diff --git a/gr-digital/swig/Makefile.am b/gr-digital/swig/Makefile.am index edbda6bda..1e5c1de6d 100644 --- a/gr-digital/swig/Makefile.am +++ b/gr-digital/swig/Makefile.am @@ -60,6 +60,7 @@ digital_swig_swiginclude_headers = \ digital_constellation.i \ digital_costas_loop_cc.i \ digital_cma_equalizer_cc.i \ + digital_lms_dd_equalizer_cc.i \ digital_kurtotic_equalizer_cc.i if GUILE diff --git a/gr-digital/swig/digital_lms_dd_equalizer_cc.i b/gr-digital/swig/digital_lms_dd_equalizer_cc.i new file mode 100644 index 000000000..ac6accc6b --- /dev/null +++ b/gr-digital/swig/digital_lms_dd_equalizer_cc.i @@ -0,0 +1,38 @@ +/* -*- c++ -*- */ +/* + * Copyright 2011 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(digital,lms_dd_equalizer_cc) + +digital_lms_dd_equalizer_cc_sptr digital_make_lms_dd_equalizer_cc (float mu, int ntaps, + digital_constellation_sptr cnst); + +class digital_lms_dd_equalizer_cc : public gr_sync_block +{ +public: + float get_mu(); + void set_mu(float mu); + +private: + digital_lms_dd_equalizer_cc (float mu, int ntaps, + digital_constellation_sptr cnst); +}; diff --git a/gr-digital/swig/digital_swig.i b/gr-digital/swig/digital_swig.i index 73d8edd8d..d87bdd852 100644 --- a/gr-digital/swig/digital_swig.i +++ b/gr-digital/swig/digital_swig.i @@ -25,12 +25,14 @@ #include "digital_constellation.h" #include "digital_costas_loop_cc.h" #include "digital_cma_equalizer_cc.h" +#include "digital_lms_dd_equalizer_cc.h" #include "digital_kurtotic_equalizer_cc.h" %} %include "digital_constellation.i" %include "digital_costas_loop_cc.i" %include "digital_cma_equalizer_cc.i" +%include "digital_lms_dd_equalizer_cc.i" %include "digital_kurtotic_equalizer_cc.i" #if SWIGGUILE -- cgit From 23ee6269df6f139ef6b85e7f404d452c10bb63a8 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Mon, 6 Jun 2011 11:35:28 -0400 Subject: digital: formatting CMA code; adding get_ functions and renaming things for consistency. --- gr-digital/swig/digital_cma_equalizer_cc.i | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'gr-digital/swig') diff --git a/gr-digital/swig/digital_cma_equalizer_cc.i b/gr-digital/swig/digital_cma_equalizer_cc.i index ad3b1245c..183e43ef9 100644 --- a/gr-digital/swig/digital_cma_equalizer_cc.i +++ b/gr-digital/swig/digital_cma_equalizer_cc.i @@ -27,17 +27,18 @@ GR_SWIG_BLOCK_MAGIC(digital,cma_equalizer_cc) %import "gr_adaptive_fir_ccc.i" digital_cma_equalizer_cc_sptr -digital_make_cma_equalizer_cc(int num_taps, - float modulus, - float mu, - int sps); +digital_make_cma_equalizer_cc(int num_taps, float modulus, + float mu, int sps); class digital_cma_equalizer_cc : public gr_adaptive_fir_ccc { private: - digital_cma_equalizer_cc(int num_taps, float modulus, float mu, int sps); + digital_cma_equalizer_cc(int num_taps, float modulus, + float mu, int sps); public: + float get_gain(); void set_gain(float mu); + float get_modulus(); void set_modulus(float mod); }; -- cgit From 86553ec410b1074bc4258b22027c5d31443d12ec Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Mon, 6 Jun 2011 11:36:24 -0400 Subject: digital: converting LMS algorithm to use the gr_adaptive_filter structure and making naming consistent (so CMA and LMS look and behave similary with different error and upate functions). --- gr-digital/swig/digital_lms_dd_equalizer_cc.i | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'gr-digital/swig') diff --git a/gr-digital/swig/digital_lms_dd_equalizer_cc.i b/gr-digital/swig/digital_lms_dd_equalizer_cc.i index ac6accc6b..bd5c6ae29 100644 --- a/gr-digital/swig/digital_lms_dd_equalizer_cc.i +++ b/gr-digital/swig/digital_lms_dd_equalizer_cc.i @@ -23,16 +23,24 @@ GR_SWIG_BLOCK_MAGIC(digital,lms_dd_equalizer_cc) -digital_lms_dd_equalizer_cc_sptr digital_make_lms_dd_equalizer_cc (float mu, int ntaps, - digital_constellation_sptr cnst); +// retrieve info on the base class, without generating wrappers since +// the base class has a pure virual method. +%import "gr_adaptive_fir_ccc.i" + + +digital_lms_dd_equalizer_cc_sptr +digital_make_lms_dd_equalizer_cc (int num_taps, + float mu, int sps, + digital_constellation_sptr cnst); class digital_lms_dd_equalizer_cc : public gr_sync_block { -public: - float get_mu(); - void set_mu(float mu); - private: - digital_lms_dd_equalizer_cc (float mu, int ntaps, + digital_lms_dd_equalizer_cc (int num_taps, + float mu, int sps, digital_constellation_sptr cnst); + +public: + float get_gain(); + void set_gain(float mu); }; -- cgit