GNU Radio C++ API
gr_pfb_synthesis_filterbank_ccf.h
Go to the documentation of this file.
1
/* -*- c++ -*- */
2
/*
3
* Copyright 2010 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
24
#ifndef INCLUDED_GR_PFB_SYNTHESIS_FILTERBANK_CCF_H
25
#define INCLUDED_GR_PFB_SYNTHESIS_FILTERBANK_CCF_H
26
27
#include <
gr_core_api.h
>
28
#include <
gr_sync_interpolator.h
>
29
#include <
gri_fir_filter_with_buffer_ccf.h
>
30
31
class
gr_pfb_synthesis_filterbank_ccf
;
32
typedef
boost::shared_ptr<gr_pfb_synthesis_filterbank_ccf>
gr_pfb_synthesis_filterbank_ccf_sptr
;
33
GR_CORE_API
gr_pfb_synthesis_filterbank_ccf_sptr
gr_make_pfb_synthesis_filterbank_ccf
34
(
unsigned
int
numchans,
const
std::vector<float> &
taps
);
35
36
class
gri_fft_complex
;
37
38
39
/*!
40
* \class gr_pfb_synthesis_filterbank_ccf
41
*
42
* \brief Polyphase synthesis filterbank with
43
* gr_complex input, gr_complex output and float taps
44
*
45
* \ingroup filter_blk
46
* \ingroup pfb_blk
47
*/
48
49
class
GR_CORE_API
gr_pfb_synthesis_filterbank_ccf
:
public
gr_sync_interpolator
50
{
51
private
:
52
/*!
53
* Build the polyphase synthesis filterbank.
54
* \param numchans (unsigned integer) Specifies the number of
55
channels <EM>M</EM>
56
* \param taps (vector/list of floats) The prototype filter to
57
populate the filterbank.
58
*/
59
friend
GR_CORE_API
gr_pfb_synthesis_filterbank_ccf_sptr
gr_make_pfb_synthesis_filterbank_ccf
60
(
unsigned
int
numchans,
const
std::vector<float> &
taps
);
61
62
bool
d_updated;
63
unsigned
int
d_numchans;
64
unsigned
int
d_taps_per_filter;
65
gri_fft_complex
*d_fft;
66
std::vector< gri_fir_filter_with_buffer_ccf*> d_filters;
67
std::vector< std::vector<float> > d_taps;
68
69
70
/*!
71
* Build the polyphase synthesis filterbank.
72
* \param numchans (unsigned integer) Specifies the number of
73
channels <EM>M</EM>
74
* \param taps (vector/list of floats) The prototype filter
75
to populate the filterbank.
76
*/
77
gr_pfb_synthesis_filterbank_ccf
(
unsigned
int
numchans,
78
const
std::vector<float> &taps);
79
80
public
:
81
~
gr_pfb_synthesis_filterbank_ccf
();
82
83
/*!
84
* Resets the filterbank's filter taps with the new prototype filter
85
* \param taps (vector/list of floats) The prototype filter to
86
populate the filterbank.
87
*/
88
void
set_taps (
const
std::vector<float> &taps);
89
90
/*!
91
* Print all of the filterbank taps to screen.
92
*/
93
void
print_taps();
94
95
int
work
(
int
noutput_items,
96
gr_vector_const_void_star
&input_items,
97
gr_vector_void_star
&output_items);
98
};
99
100
#endif
gnuradio-core
src
lib
filter
gr_pfb_synthesis_filterbank_ccf.h
Generated on Mon Jul 8 2013 15:25:01 for GNU Radio C++ API by
1.8.4