GNU Radio Manual and C++ API Reference 3.7.14.0
The Free & Open Software Radio Ecosystem
single_pole_iir_filter_cc.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2004-2006,2012 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#ifndef INCLUDED_SINGLE_POLE_IIR_FILTER_CC_H
24#define INCLUDED_SINGLE_POLE_IIR_FILTER_CC_H
25
26#include <gnuradio/filter/api.h>
28#include <gnuradio/gr_complex.h>
29#include <gnuradio/sync_block.h>
30
31namespace gr {
32namespace filter {
33
34/*!
35 * \brief single pole IIR filter with complex input, complex output
36 * \ingroup filter_blk
37 *
38 * \details
39 * The input and output satisfy a difference equation of the form
40 \htmlonly
41 \f{
42 y[n] - (1-alpha) y[n-1] = alpha x[n]
43 \f}
44 \endhtmlonly
45
46 \xmlonly
47 y[n] - (1-alpha) y[n-1] = alpha x[n]
48 \endxmlonly
49
50 * with the corresponding rational system function
51 \htmlonly
52 \f{
53 H(z) = \frac{alpha}{1 - (1-alpha) z^{-1}}
54 \f}
55 \endhtmlonly
56
57 \xmlonly
58 H(z) = \ frac{alpha}{1 - (1-alpha) z^{-1}}
59 \endxmlonly
60
61 * Note that some texts define the system function with a + in the
62 * denominator. If you're using that convention, you'll need to
63 * negate the feedback tap.
64 */
66{
67public:
68 // gr::filter::single_pole_iir_filter_cc::sptr
69 typedef boost::shared_ptr<single_pole_iir_filter_cc> sptr;
70
71 static sptr make(double alpha, unsigned int vlen = 1);
72
73 virtual void set_taps(double alpha) = 0;
74};
75
76} /* namespace filter */
77} /* namespace gr */
78
79#endif /* INCLUDED_SINGLE_POLE_IIR_FILTER_CC_H */
single pole IIR filter with complex input, complex output
Definition: single_pole_iir_filter_cc.h:66
boost::shared_ptr< single_pole_iir_filter_cc > sptr
Definition: single_pole_iir_filter_cc.h:69
virtual void set_taps(double alpha)=0
static sptr make(double alpha, unsigned int vlen=1)
synchronous 1:1 input to output with history
Definition: sync_block.h:38
#define FILTER_API
Definition: gr-filter/include/gnuradio/filter/api.h:30
Include this header to use the message passing features.
Definition: basic_block.h:45