GNU Radio 3.6.5 C++ API

gr::filter::fft_filter_ccc Class Reference

Fast FFT filter with gr_complex input, gr_complex output and gr_complex taps. More...

#include <fft_filter_ccc.h>

Inheritance diagram for gr::filter::fft_filter_ccc:
gr_sync_decimator gr_sync_block gr_block gr_basic_block gr_msg_accepter gruel::msg_accepter gr::filter::fft_filter_ccc_impl

List of all members.

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_complextaps () 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)

Detailed Description

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.


Member Typedef Documentation


Member Function Documentation

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.

Parameters:
decimation>= 1
tapscomplex filter taps
nthreadsnumber 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]
virtual std::vector<gr_complex> gr::filter::fft_filter_ccc::taps ( ) const [pure virtual]

The documentation for this class was generated from the following file: