summaryrefslogtreecommitdiff
path: root/gr-blocks/include/gnuradio/blocks/moving_average.h
diff options
context:
space:
mode:
Diffstat (limited to 'gr-blocks/include/gnuradio/blocks/moving_average.h')
-rw-r--r--gr-blocks/include/gnuradio/blocks/moving_average.h86
1 files changed, 42 insertions, 44 deletions
diff --git a/gr-blocks/include/gnuradio/blocks/moving_average.h b/gr-blocks/include/gnuradio/blocks/moving_average.h
index 8448c45ded..a66decfc64 100644
--- a/gr-blocks/include/gnuradio/blocks/moving_average.h
+++ b/gr-blocks/include/gnuradio/blocks/moving_average.h
@@ -29,63 +29,61 @@
#include <cstdint>
namespace gr {
- namespace blocks {
+namespace blocks {
+
+/*!
+ * \brief output is the moving sum of the last N samples, scaled by the scale factor
+ * \ingroup level_controllers_blk
+ */
+template <class T>
+class BLOCKS_API moving_average : virtual public sync_block
+{
+public:
+ // gr::blocks::moving_average::sptr
+ typedef boost::shared_ptr<moving_average<T>> sptr;
/*!
- * \brief output is the moving sum of the last N samples, scaled by the scale factor
- * \ingroup level_controllers_blk
+ * Create a moving average block.
+ *
+ * \param length Number of samples to use in the average.
+ * \param scale scale factor for the result.
+ * \param max_iter limits how long we go without flushing the accumulator
+ * This is necessary to avoid numerical instability for float and complex.
+ * \param vlen When > 1, do a per-vector-element moving average
*/
-template<class T>
- class BLOCKS_API moving_average : virtual public sync_block
- {
- public:
- // gr::blocks::moving_average::sptr
- typedef boost::shared_ptr< moving_average<T> > sptr;
+ static sptr make(int length, T scale, int max_iter = 4096, unsigned int vlen = 1);
- /*!
- * Create a moving average block.
- *
- * \param length Number of samples to use in the average.
- * \param scale scale factor for the result.
- * \param max_iter limits how long we go without flushing the accumulator
- * This is necessary to avoid numerical instability for float and complex.
- * \param vlen When > 1, do a per-vector-element moving average
- */
- static sptr make(int length, T scale,
- int max_iter = 4096,
- unsigned int vlen = 1);
-
- /*!
- * Get the length used in the avaraging calculation.
- */
- virtual int length() const = 0;
+ /*!
+ * Get the length used in the avaraging calculation.
+ */
+ virtual int length() const = 0;
- /*!
- * Get the scale factor being used.
- */
- virtual T scale() const = 0;
+ /*!
+ * Get the scale factor being used.
+ */
+ virtual T scale() const = 0;
- /*!
- * Set both the length and the scale factor together.
- */
- virtual void set_length_and_scale(int length, T scale) = 0;
+ /*!
+ * Set both the length and the scale factor together.
+ */
+ virtual void set_length_and_scale(int length, T scale) = 0;
- /*!
- * Set the length.
- */
- virtual void set_length(int length) = 0;
+ /*!
+ * Set the length.
+ */
+ virtual void set_length(int length) = 0;
- /*!
- * Set the scale factor.
- */
- virtual void set_scale(T scale) = 0;
- };
+ /*!
+ * Set the scale factor.
+ */
+ virtual void set_scale(T scale) = 0;
+};
typedef moving_average<std::int16_t> moving_average_ss;
typedef moving_average<std::int32_t> moving_average_ii;
typedef moving_average<float> moving_average_ff;
typedef moving_average<gr_complex> moving_average_cc;
- } /* namespace blocks */
+} /* namespace blocks */
} /* namespace gr */
#endif /* MOVING_AVERAGE_H */