summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rondeau <trondeau@vt.edu>2011-08-30 22:11:56 -0400
committerTom Rondeau <trondeau@vt.edu>2011-08-30 22:11:56 -0400
commitff8ce00c0457c213dcad0b1b460a5d0db1b7d155 (patch)
treeb096ec749ebc584bbe7d6de9b524cff91b4dbc19
parent6ca8b00d225cb02691068510dd9069d71bcc1e62 (diff)
digital: moved newly added CPM and GMSK hier blocks to gr-digital.
-rw-r--r--gnuradio-core/src/lib/hier/hier.i4
-rw-r--r--gr-digital/Makefile.am2
-rw-r--r--gr-digital/hier/gr_cpmmod_bc.cc (renamed from gnuradio-core/src/lib/hier/gr_cpmmod_bc.cc)41
-rw-r--r--gr-digital/hier/gr_cpmmod_bc.h (renamed from gnuradio-core/src/lib/hier/gr_cpmmod_bc.h)61
-rw-r--r--gr-digital/hier/gr_cpmmod_bc.i (renamed from gnuradio-core/src/lib/hier/gr_cpmmod_bc.i)8
-rw-r--r--gr-digital/hier/gr_gmskmod_bc.cc (renamed from gnuradio-core/src/lib/hier/gr_gmskmod_bc.cc)3
-rw-r--r--gr-digital/hier/gr_gmskmod_bc.h (renamed from gnuradio-core/src/lib/hier/gr_gmskmod_bc.h)13
-rw-r--r--gr-digital/hier/gr_gmskmod_bc.i (renamed from gnuradio-core/src/lib/hier/gr_gmskmod_bc.i)7
8 files changed, 79 insertions, 60 deletions
diff --git a/gnuradio-core/src/lib/hier/hier.i b/gnuradio-core/src/lib/hier/hier.i
index b8915e15b8..bec3de7ed6 100644
--- a/gnuradio-core/src/lib/hier/hier.i
+++ b/gnuradio-core/src/lib/hier/hier.i
@@ -26,11 +26,7 @@
#endif
#include <gr_channel_model.h>
-#include <gr_cpmmod_bc.h>
-#include <gr_gmskmod_bc.h>
%}
%include "gr_channel_model.i"
-%include "gr_cpmmod_bc.i"
-%include "gr_gmskmod_bc.i"
diff --git a/gr-digital/Makefile.am b/gr-digital/Makefile.am
index f1409793ff..57bfb1e0d8 100644
--- a/gr-digital/Makefile.am
+++ b/gr-digital/Makefile.am
@@ -21,7 +21,7 @@
include $(top_srcdir)/Makefile.common
-SUBDIRS = lib
+SUBDIRS = lib hier
if PYTHON
SUBDIRS += swig python apps grc examples
diff --git a/gnuradio-core/src/lib/hier/gr_cpmmod_bc.cc b/gr-digital/hier/gr_cpmmod_bc.cc
index 24c25e22f8..e0e39f0dcf 100644
--- a/gnuradio-core/src/lib/hier/gr_cpmmod_bc.cc
+++ b/gr-digital/hier/gr_cpmmod_bc.cc
@@ -28,34 +28,39 @@
// Shared pointer constructor
gr_cpmmod_bc_sptr
-gr_make_cpmmod_bc(int type, float h, unsigned samples_per_sym, unsigned L, double beta)
+gr_make_cpmmod_bc(int type, float h,
+ unsigned samples_per_sym,
+ unsigned L, double beta)
{
- return gnuradio::get_initial_sptr(new gr_cpmmod_bc((gr_cpm::cpm_type)type, h, samples_per_sym, L, beta));
+ return gnuradio::get_initial_sptr(new gr_cpmmod_bc((gr_cpm::cpm_type)type,
+ h, samples_per_sym,
+ L, beta));
}
-gr_cpmmod_bc::gr_cpmmod_bc(gr_cpm::cpm_type type, float h, unsigned samples_per_sym,
- unsigned L, double beta)
+gr_cpmmod_bc::gr_cpmmod_bc(gr_cpm::cpm_type type, float h,
+ unsigned samples_per_sym,
+ unsigned L, double beta)
: gr_hier_block2("gr_cpmmod_bc",
gr_make_io_signature(1, 1, sizeof(char)),
gr_make_io_signature2(1, 1, sizeof(gr_complex), sizeof(float))),
- d_taps(gr_cpm::phase_response(type, samples_per_sym, L, beta)),
- d_char_to_float(gr_make_char_to_float()),
- d_pulse_shaper(gr_make_interp_fir_filter_fff(samples_per_sym, d_taps)),
- d_fm(gr_make_frequency_modulator_fc(M_PI * h))
+ d_taps(gr_cpm::phase_response(type, samples_per_sym, L, beta)),
+ d_char_to_float(gr_make_char_to_float()),
+ d_pulse_shaper(gr_make_interp_fir_filter_fff(samples_per_sym, d_taps)),
+ d_fm(gr_make_frequency_modulator_fc(M_PI * h))
{
switch (type) {
- case gr_cpm::LRC:
- case gr_cpm::LSRC:
- case gr_cpm::LREC:
- case gr_cpm::TFM:
- case gr_cpm::GAUSSIAN:
- break;
-
- default:
- throw std::invalid_argument("invalid CPM type");
+ case gr_cpm::LRC:
+ case gr_cpm::LSRC:
+ case gr_cpm::LREC:
+ case gr_cpm::TFM:
+ case gr_cpm::GAUSSIAN:
+ break;
+
+ default:
+ throw std::invalid_argument("invalid CPM type");
}
-
+
connect(self(), 0, d_char_to_float, 0);
connect(d_char_to_float, 0, d_pulse_shaper, 0);
connect(d_pulse_shaper, 0, d_fm, 0);
diff --git a/gnuradio-core/src/lib/hier/gr_cpmmod_bc.h b/gr-digital/hier/gr_cpmmod_bc.h
index 210b30612a..55ea6edd17 100644
--- a/gnuradio-core/src/lib/hier/gr_cpmmod_bc.h
+++ b/gr-digital/hier/gr_cpmmod_bc.h
@@ -35,29 +35,34 @@ typedef boost::shared_ptr<gr_cpmmod_bc> gr_cpmmod_bc_sptr;
gr_cpmmod_bc_sptr
-gr_make_cpmmod_bc(int type, float h, unsigned samples_per_sym, unsigned L, double beta=0.3);
-
+gr_make_cpmmod_bc(int type, float h,
+ unsigned samples_per_sym,
+ unsigned L, double beta=0.3);
/*!
* \brief Generic CPM modulator
*
* \ingroup modulation_blk
*
- * \param type The modulation type. Can be one of LREC, LRC, LSRC, TFM or GAUSSIAN. See
- * gr_cpm::phase_response() for a detailed description.
- * \param h The modulation index. \f$ h \cdot \pi\f$ is the maximum phase change that can occur
- * between two symbols, i.e., if you only send ones, the phase will increase
- * by \f$ h \cdot \pi\f$ every \p samples_per_sym samples. Set this to 0.5 for Minimum Shift
- * Keying variants.
+ * \param type The modulation type. Can be one of LREC, LRC, LSRC, TFM
+ * or GAUSSIAN. See gr_cpm::phase_response() for a
+ * detailed description.
+ * \param h The modulation index. \f$ h \cdot \pi\f$ is the maximum
+ * phase change that can occur between two symbols, i.e., if
+ * you only send ones, the phase will increase by \f$ h \cdot
+ * \pi\f$ every \p samples_per_sym samples. Set this to 0.5
+ * for Minimum Shift Keying variants.
* \param samples_per_sym Samples per symbol.
- * \param L The length of the phase duration in symbols. For L=1, this yields full-
- * response CPM symbols, for L > 1, partial-response.
- * \param beta For LSRC, this is the rolloff factor. For Gaussian pulses, this is the 3 dB
- * time-bandwidth product.
+ * \param L The length of the phase duration in symbols. For L=1, this
+ * yields full- response CPM symbols, for L > 1,
+ * partial-response.
+ * \param beta For LSRC, this is the rolloff factor. For Gaussian
+ * pulses, this is the 3 dB time-bandwidth product.
*
* Examples:
* - Setting h = 0.5, L = 1, type = LREC yields MSK.
- * - Setting h = 0.5, type = GAUSSIAN and beta = 0.3 yields GMSK as used in GSM.
+ * - Setting h = 0.5, type = GAUSSIAN and beta = 0.3 yields GMSK
+ * as used in GSM.
*
* The input of this block are symbols from an M-ary alphabet
* +/-1, +/-3, ..., +/-(M-1). Usually, M = 2 and therefore, the
@@ -67,19 +72,23 @@ gr_make_cpmmod_bc(int type, float h, unsigned samples_per_sym, unsigned L, doubl
*/
class gr_cpmmod_bc : public gr_hier_block2
{
- friend gr_cpmmod_bc_sptr gr_make_cpmmod_bc(int type, float h, unsigned samples_per_sym, unsigned L, double beta);
-
- std::vector<float> d_taps;
- gr_char_to_float_sptr d_char_to_float;
- gr_interp_fir_filter_fff_sptr d_pulse_shaper;
- gr_frequency_modulator_fc_sptr d_fm;
-
- protected:
- gr_cpmmod_bc(gr_cpm::cpm_type type, float h, unsigned samples_per_sym, unsigned L, double beta);
-
- public:
- //! Return the phase response FIR taps
- std::vector<float> get_taps() { return d_taps; };
+ friend gr_cpmmod_bc_sptr gr_make_cpmmod_bc(int type, float h,
+ unsigned samples_per_sym,
+ unsigned L, double beta);
+
+ std::vector<float> d_taps;
+ gr_char_to_float_sptr d_char_to_float;
+ gr_interp_fir_filter_fff_sptr d_pulse_shaper;
+ gr_frequency_modulator_fc_sptr d_fm;
+
+protected:
+ gr_cpmmod_bc(gr_cpm::cpm_type type, float h,
+ unsigned samples_per_sym,
+ unsigned L, double beta);
+
+public:
+ //! Return the phase response FIR taps
+ std::vector<float> get_taps() { return d_taps; };
};
#endif /* INCLUDED_GR_CPMMOD_BC_H */
diff --git a/gnuradio-core/src/lib/hier/gr_cpmmod_bc.i b/gr-digital/hier/gr_cpmmod_bc.i
index 55116cda79..dc38fea175 100644
--- a/gnuradio-core/src/lib/hier/gr_cpmmod_bc.i
+++ b/gr-digital/hier/gr_cpmmod_bc.i
@@ -23,12 +23,16 @@
GR_SWIG_BLOCK_MAGIC(gr, cpmmod_bc)
gr_cpmmod_bc_sptr
-gr_make_cpmmod_bc(int type, float h, unsigned samples_per_sym, unsigned L, double beta=0.3);
+gr_make_cpmmod_bc(int type, float h,
+ unsigned samples_per_sym,
+ unsigned L, double beta=0.3);
class gr_cpmmod_bc : public gr_hier_block2
{
private:
- gr_cpmmod_bc(int type, float h, unsigned samples_per_sym, unsigned L, double beta);
+ gr_cpmmod_bc(int type, float h,
+ unsigned samples_per_sym,
+ unsigned L, double beta);
public:
std::vector<float> get_taps();
diff --git a/gnuradio-core/src/lib/hier/gr_gmskmod_bc.cc b/gr-digital/hier/gr_gmskmod_bc.cc
index 37128d99c8..22287d014e 100644
--- a/gnuradio-core/src/lib/hier/gr_gmskmod_bc.cc
+++ b/gr-digital/hier/gr_gmskmod_bc.cc
@@ -2,6 +2,8 @@
/*
* Copyright 2010 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)
@@ -25,7 +27,6 @@
#include <gr_gmskmod_bc.h>
#include <gr_io_signature.h>
-
// Shared pointer constructor
gr_gmskmod_bc_sptr
gr_make_gmskmod_bc(unsigned samples_per_sym, double bt, unsigned L)
diff --git a/gnuradio-core/src/lib/hier/gr_gmskmod_bc.h b/gr-digital/hier/gr_gmskmod_bc.h
index 39bd576e23..c3d2c8194a 100644
--- a/gnuradio-core/src/lib/hier/gr_gmskmod_bc.h
+++ b/gr-digital/hier/gr_gmskmod_bc.h
@@ -30,8 +30,8 @@ typedef boost::shared_ptr<gr_gmskmod_bc> gr_gmskmod_bc_sptr;
gr_gmskmod_bc_sptr
-gr_make_gmskmod_bc(unsigned samples_per_sym=2, double bt=0.3, unsigned L=4);
-
+gr_make_gmskmod_bc(unsigned samples_per_sym=2,
+ double bt=0.3, unsigned L=4);
/*!
* \brief GMSK modulator
@@ -40,8 +40,8 @@ gr_make_gmskmod_bc(unsigned samples_per_sym=2, double bt=0.3, unsigned L=4);
*
* \param samples_per_sym Samples per symbol.
* \param bt The 3 dB time-bandwidth product.
- * \param L The length of the phase duration in symbols. The Gaussian pulse is truncated
- * after L symbols.
+ * \param L The length of the phase duration in symbols. The Gaussian
+ * pulse is truncated after L symbols.
*
* The input of this block are symbols from an M-ary alphabet
* +/-1, +/-3, ..., +/-(M-1). Usually, M = 2 and therefore, the
@@ -51,8 +51,9 @@ gr_make_gmskmod_bc(unsigned samples_per_sym=2, double bt=0.3, unsigned L=4);
*/
class gr_gmskmod_bc : public gr_cpmmod_bc
{
- friend gr_gmskmod_bc_sptr gr_make_gmskmod_bc(unsigned samples_per_sym, double bt, unsigned L);
- gr_gmskmod_bc(unsigned samples_per_sym, double bt, unsigned L);
+ friend gr_gmskmod_bc_sptr gr_make_gmskmod_bc(unsigned samples_per_sym,
+ double bt, unsigned L);
+ gr_gmskmod_bc(unsigned samples_per_sym, double bt, unsigned L);
};
#endif /* INCLUDED_GR_GMSKMOD_BC_H */
diff --git a/gnuradio-core/src/lib/hier/gr_gmskmod_bc.i b/gr-digital/hier/gr_gmskmod_bc.i
index dadf3be62e..9e59b279b2 100644
--- a/gnuradio-core/src/lib/hier/gr_gmskmod_bc.i
+++ b/gr-digital/hier/gr_gmskmod_bc.i
@@ -23,12 +23,15 @@
GR_SWIG_BLOCK_MAGIC(gr, gmskmod_bc)
gr_gmskmod_bc_sptr
-gr_make_gmskmod_bc(unsigned samples_per_sym=2, double bt=0.3, unsigned L=4);
+gr_make_gmskmod_bc(unsigned samples_per_sym=2,
+ double bt=0.3, unsigned L=4);
class gr_gmskmod_bc : public gr_hier_block2
{
private:
- gr_cpmmod_bc(int type, float h, unsigned samples_per_sym, double beta, unsigned L);
+ gr_cpmmod_bc(int type, float h,
+ unsigned samples_per_sym,
+ double beta, unsigned L);
public:
std::vector<float> get_taps();