GNU Radio Manual and C++ API Reference 3.7.14.0
The Free & Open Software Radio Ecosystem
moving_average_ii.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2008,2013,2017 Free Software Foundation, Inc.
4 *
5 * This file is part of GNU Radio
6 *
7 * GNU Radio is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3, or (at your option)
10 * any later version.
11 *
12 * GNU Radio is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with GNU Radio; see the file COPYING. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street,
20 * Boston, MA 02110-1301, USA.
21 */
22
23// WARNING: this file is machine generated. Edits will be overwritten
24
25#ifndef INCLUDED_BLOCKS_MOVING_AVERAGE_II_H
26#define INCLUDED_BLOCKS_MOVING_AVERAGE_II_H
27
28#include <gnuradio/blocks/api.h>
29#include <gnuradio/sync_block.h>
30
31namespace gr {
32 namespace blocks {
33
34 /*!
35 * \brief output is the moving sum of the last N samples, scaled by the scale factor
36 * \ingroup level_controllers_blk
37 */
39 {
40 public:
41 // gr::blocks::moving_average_ii::sptr
42 typedef boost::shared_ptr<moving_average_ii> sptr;
43
44 /*!
45 * Create a moving average block.
46 *
47 * \param length Number of samples to use in the average.
48 * \param scale scale factor for the result.
49 * \param max_iter limits how long we go without flushing the accumulator
50 * This is necessary to avoid numerical instability for float and complex.
51 * \param vlen When > 1, do a per-vector-element moving average
52 */
53 static sptr make(int length, int scale,
54 int max_iter = 4096,
55 unsigned int vlen = 1);
56
57 /*!
58 * Get the length used in the avaraging calculation.
59 */
60 virtual int length() const = 0;
61
62 /*!
63 * Get the scale factor being used.
64 */
65 virtual int scale() const = 0;
66
67 /*!
68 * Set both the length and the scale factor together.
69 */
70 virtual void set_length_and_scale(int length, int scale) = 0;
71
72 /*!
73 * Set the length.
74 */
75 virtual void set_length(int length) = 0;
76
77 /*!
78 * Set the scale factor.
79 */
80 virtual void set_scale(int scale) = 0;
81 };
82
83 } /* namespace blocks */
84} /* namespace gr */
85
86#endif /* INCLUDED_BLOCKS_MOVING_AVERAGE_II_H */
output is the moving sum of the last N samples, scaled by the scale factor
Definition: moving_average_ii.h:39
virtual void set_length_and_scale(int length, int scale)=0
virtual void set_length(int length)=0
virtual int length() const =0
boost::shared_ptr< moving_average_ii > sptr
Definition: moving_average_ii.h:42
virtual int scale() const =0
virtual void set_scale(int scale)=0
static sptr make(int length, int scale, int max_iter=4096, unsigned int vlen=1)
synchronous 1:1 input to output with history
Definition: sync_block.h:38
#define BLOCKS_API
Definition: gr-blocks/include/gnuradio/blocks/api.h:30
Include this header to use the message passing features.
Definition: basic_block.h:45
PMT_API size_t length(const pmt_t &v)
Return the number of elements in v.