GNU Radio 3.7.1 C++ API
|
Fast FFT filter with float input, float output and float taps. More...
#include <fft_filter_fff.h>
Public Types | |
typedef boost::shared_ptr < fft_filter_fff > | sptr |
Public Member Functions | |
virtual void | set_taps (const std::vector< float > &taps)=0 |
virtual std::vector< float > | 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< float > &taps, int nthreads=1) |
Fast FFT filter with float input, float output and float taps.
This block implements a real-value 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 real-valued 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_fff::make | ( | int | decimation, |
const std::vector< float > & | taps, | ||
int | nthreads = 1 |
||
) | [static] |
Build an FFT filter block.
decimation | >= 1 |
taps | float filter taps |
nthreads | number of threads for the FFT to use |
virtual int gr::filter::fft_filter_fff::nthreads | ( | ) | const [pure virtual] |
Get number of threads being used.
virtual void gr::filter::fft_filter_fff::set_nthreads | ( | int | n | ) | [pure virtual] |
Set number of threads to use.
virtual void gr::filter::fft_filter_fff::set_taps | ( | const std::vector< float > & | taps | ) | [pure virtual] |
virtual std::vector<float> gr::filter::fft_filter_fff::taps | ( | ) | const [pure virtual] |