GNU Radio 3.6.5 C++ API
|
Fast FFT filter with gr_complex input, gr_complex output and gr_complex taps. More...
#include <fft_filter_ccc.h>
Public Types | |
typedef boost::shared_ptr < fft_filter_ccc > | sptr |
Public Member Functions | |
virtual void | set_taps (const std::vector< gr_complex > &taps)=0 |
virtual std::vector< gr_complex > | taps () const =0 |
virtual void | set_nthreads (int n)=0 |
Set number of threads to use. | |
virtual int | nthreads () const =0 |
Get number of threads being used. | |
Static Public Member Functions | |
static sptr | make (int decimation, const std::vector< gr_complex > &taps, int nthreads=1) |
Fast FFT filter with gr_complex input, gr_complex output and gr_complex taps.
This block implements a complex decimating filter using the fast convolution method via an FFT. The decimation factor is an interger that is greater than or equal to 1.
The filter takes a set of complex (or real) taps to use in the filtering operation. These taps can be defined as anything that satisfies the user's filtering needs. For standard filters such as lowpass, highpass, bandpass, etc., the filter.firdes and filter.optfir classes provide convenient generating methods.
This filter is implemented by using the FFTW package to perform the required FFTs. An optional argument, nthreads, may be passed to the constructor (or set using the set_nthreads member function) to split the FFT among N number of threads. This can improve performance on very large FFTs (that is, if the number of taps used is very large) if you have enough threads/cores to support it.
static sptr gr::filter::fft_filter_ccc::make | ( | int | decimation, |
const std::vector< gr_complex > & | taps, | ||
int | nthreads = 1 |
||
) | [static] |
Build an FFT filter blocks.
decimation | >= 1 |
taps | complex filter taps |
nthreads | number of threads for the FFT to use |
virtual int gr::filter::fft_filter_ccc::nthreads | ( | ) | const [pure virtual] |
Get number of threads being used.
Implemented in gr::filter::fft_filter_ccc_impl.
virtual void gr::filter::fft_filter_ccc::set_nthreads | ( | int | n | ) | [pure virtual] |
Set number of threads to use.
Implemented in gr::filter::fft_filter_ccc_impl.
virtual void gr::filter::fft_filter_ccc::set_taps | ( | const std::vector< gr_complex > & | taps | ) | [pure virtual] |
Implemented in gr::filter::fft_filter_ccc_impl.
virtual std::vector<gr_complex> gr::filter::fft_filter_ccc::taps | ( | ) | const [pure virtual] |
Implemented in gr::filter::fft_filter_ccc_impl.