diff options
-rw-r--r-- | gr-digital/grc/digital_cma_equalizer_cc.xml | 7 | ||||
-rw-r--r-- | gr-digital/lib/digital_cma_equalizer_cc.cc | 9 | ||||
-rw-r--r-- | gr-digital/lib/digital_cma_equalizer_cc.h | 7 | ||||
-rw-r--r-- | gr-digital/swig/digital_cma_equalizer_cc.i | 5 |
4 files changed, 18 insertions, 10 deletions
diff --git a/gr-digital/grc/digital_cma_equalizer_cc.xml b/gr-digital/grc/digital_cma_equalizer_cc.xml index a21d700db..8f069649a 100644 --- a/gr-digital/grc/digital_cma_equalizer_cc.xml +++ b/gr-digital/grc/digital_cma_equalizer_cc.xml @@ -8,7 +8,7 @@ <name>CMA Equalizer</name> <key>digital_cma_equalizer_cc</key> <import>from gnuradio import digital</import> - <make>digital.cma_equalizer_cc($num_taps, $modulus, $mu)</make> + <make>digital.cma_equalizer_cc($num_taps, $modulus, $mu, $sps)</make> <callback>set_gain($mu)</callback> <callback>set_modulus($modulus)</callback> <param> @@ -26,6 +26,11 @@ <key>mu</key> <type>real</type> </param> + <param> + <name>Samples per Symbol</name> + <key>sps</key> + <type>int</type> + </param> <sink> <name>in</name> <type>complex</type> diff --git a/gr-digital/lib/digital_cma_equalizer_cc.cc b/gr-digital/lib/digital_cma_equalizer_cc.cc index 89f56c16f..113b50ab8 100644 --- a/gr-digital/lib/digital_cma_equalizer_cc.cc +++ b/gr-digital/lib/digital_cma_equalizer_cc.cc @@ -25,15 +25,16 @@ #endif #include <digital_cma_equalizer_cc.h> +#include <cstdio> digital_cma_equalizer_cc_sptr -digital_make_cma_equalizer_cc(int num_taps, float modulus, float mu) +digital_make_cma_equalizer_cc(int num_taps, float modulus, float mu, int sps) { - return gnuradio::get_initial_sptr(new digital_cma_equalizer_cc(num_taps, modulus, mu)); + return gnuradio::get_initial_sptr(new digital_cma_equalizer_cc(num_taps, modulus, mu, sps)); } -digital_cma_equalizer_cc::digital_cma_equalizer_cc(int num_taps, float modulus, float mu) - : gr_adaptive_fir_ccc("cma_equalizer_cc", 1, std::vector<gr_complex>(num_taps)) +digital_cma_equalizer_cc::digital_cma_equalizer_cc(int num_taps, float modulus, float mu, int sps) + : gr_adaptive_fir_ccc("cma_equalizer_cc", sps, std::vector<gr_complex>(num_taps, gr_complex(0,0))) { set_modulus(modulus); set_gain(mu); diff --git a/gr-digital/lib/digital_cma_equalizer_cc.h b/gr-digital/lib/digital_cma_equalizer_cc.h index 54cba319c..ba94854d1 100644 --- a/gr-digital/lib/digital_cma_equalizer_cc.h +++ b/gr-digital/lib/digital_cma_equalizer_cc.h @@ -31,7 +31,7 @@ class digital_cma_equalizer_cc; typedef boost::shared_ptr<digital_cma_equalizer_cc> digital_cma_equalizer_cc_sptr; digital_cma_equalizer_cc_sptr -digital_make_cma_equalizer_cc(int num_taps, float modulus, float mu); +digital_make_cma_equalizer_cc(int num_taps, float modulus, float mu, int sps); /*! * \brief Implements constant modulus adaptive filter on complex stream @@ -51,8 +51,9 @@ private: friend digital_cma_equalizer_cc_sptr digital_make_cma_equalizer_cc(int num_taps, float modulus, - float mu); - digital_cma_equalizer_cc(int num_taps, float modulus, float mu); + float mu, + int sps); + digital_cma_equalizer_cc(int num_taps, float modulus, float mu, int sps); protected: 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); |