diff options
Diffstat (limited to 'gr-digital')
-rw-r--r-- | gr-digital/grc/digital_cma_equalizer_cc.xml | 2 | ||||
-rw-r--r-- | gr-digital/lib/digital_cma_equalizer_cc.cc | 10 | ||||
-rw-r--r-- | gr-digital/lib/digital_cma_equalizer_cc.h | 15 | ||||
-rw-r--r-- | gr-digital/swig/digital_cma_equalizer_cc.i | 11 |
4 files changed, 26 insertions, 12 deletions
diff --git a/gr-digital/grc/digital_cma_equalizer_cc.xml b/gr-digital/grc/digital_cma_equalizer_cc.xml index 8f069649a..118c18e29 100644 --- a/gr-digital/grc/digital_cma_equalizer_cc.xml +++ b/gr-digital/grc/digital_cma_equalizer_cc.xml @@ -22,7 +22,7 @@ <type>real</type> </param> <param> - <name>Mu</name> + <name>Gain</name> <key>mu</key> <type>real</type> </param> diff --git a/gr-digital/lib/digital_cma_equalizer_cc.cc b/gr-digital/lib/digital_cma_equalizer_cc.cc index 113b50ab8..c6c46c2d8 100644 --- a/gr-digital/lib/digital_cma_equalizer_cc.cc +++ b/gr-digital/lib/digital_cma_equalizer_cc.cc @@ -30,15 +30,17 @@ digital_cma_equalizer_cc_sptr 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, sps)); + 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, int sps) - : gr_adaptive_fir_ccc("cma_equalizer_cc", sps, std::vector<gr_complex>(num_taps, gr_complex(0,0))) +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); if (num_taps > 0) d_taps[0] = 1.0; } - diff --git a/gr-digital/lib/digital_cma_equalizer_cc.h b/gr-digital/lib/digital_cma_equalizer_cc.h index ba94854d1..0dd99debd 100644 --- a/gr-digital/lib/digital_cma_equalizer_cc.h +++ b/gr-digital/lib/digital_cma_equalizer_cc.h @@ -72,12 +72,23 @@ protected: } public: + float get_gain() + { + return d_mu; + } + void set_gain(float mu) { - if(mu < 0) - throw std::out_of_range("digital_cma_equalizer::set_gain: Gain value must be >= 0"); + if(mu < 0.0f || mu > 1.0f) { + throw std::out_of_range("digital_cma_equalizer::set_gain: Gain value must be in [0,1]"); + } d_mu = mu; } + + float get_modulus() + { + return d_modulus; + } void set_modulus(float mod) { 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); }; |