gr::filter::kernel::fft_filter_fff
gnuradio/filter/fft_filter.h
int int gr::filter::kernel::fft_filter_fff::d_ntaps d_ntaps gr::filter::kernel::fft_filter_fff::d_ntaps
int int gr::filter::kernel::fft_filter_fff::d_nsamples d_nsamples gr::filter::kernel::fft_filter_fff::d_nsamples
int int gr::filter::kernel::fft_filter_fff::d_fftsize d_fftsize gr::filter::kernel::fft_filter_fff::d_fftsize
int int gr::filter::kernel::fft_filter_fff::d_decimation d_decimation gr::filter::kernel::fft_filter_fff::d_decimation
std::unique_ptr< fft::fft_real_fwd > std::unique_ptr<fft::fft_real_fwd> gr::filter::kernel::fft_filter_fff::d_fwdfft d_fwdfft gr::filter::kernel::fft_filter_fff::d_fwdfft
std::unique_ptr< fft::fft_real_rev > std::unique_ptr<fft::fft_real_rev> gr::filter::kernel::fft_filter_fff::d_invfft d_invfft gr::filter::kernel::fft_filter_fff::d_invfft
int int gr::filter::kernel::fft_filter_fff::d_nthreads d_nthreads gr::filter::kernel::fft_filter_fff::d_nthreads
std::vector< float > std::vector<float> gr::filter::kernel::fft_filter_fff::d_tail d_tail gr::filter::kernel::fft_filter_fff::d_tail
std::vector< float > std::vector<float> gr::filter::kernel::fft_filter_fff::d_taps d_taps gr::filter::kernel::fft_filter_fff::d_taps
volk::vector< gr_complex > volk::vector<gr_complex> gr::filter::kernel::fft_filter_fff::d_xformed_taps d_xformed_taps gr::filter::kernel::fft_filter_fff::d_xformed_taps
gr::logger_ptr gr::logger_ptr gr::filter::kernel::fft_filter_fff::d_logger d_logger gr::filter::kernel::fft_filter_fff::d_logger
gr::logger_ptr gr::logger_ptr gr::filter::kernel::fft_filter_fff::d_debug_logger d_debug_logger gr::filter::kernel::fft_filter_fff::d_debug_logger
void void gr::filter::kernel::fft_filter_fff::compute_sizes (int ntaps) compute_sizes gr::filter::kernel::fft_filter_fff::compute_sizes int ntaps
int int gr::filter::kernel::fft_filter_fff::tailsize () const tailsize gr::filter::kernel::fft_filter_fff::tailsize
gr::filter::kernel::fft_filter_fff::fft_filter_fff
(int decimation, const std::vector< float > &taps, int nthreads=1)
fft_filter_fff
gr::filter::kernel::fft_filter_fff::fft_filter_fff
int decimation
const std::vector< float > & taps
int nthreads 1

Construct an FFT filter for float vectors with the given taps and decimation rate.

This is the basic implementation for performing FFT filter for fast convolution in other blocks (e.g., gr::filter::fft_filter_fff).

decimation

The decimation rate of the filter (int)

taps

The filter taps (vector of float)

nthreads

The number of threads for the FFT to use (int)

gr::filter::kernel::fft_filter_fff::fft_filter_fff
(const fft_filter_fff &)=delete
fft_filter_fff
gr::filter::kernel::fft_filter_fff::fft_filter_fff
const fft_filter_fff &
fft_filter_fff & fft_filter_fff & gr::filter::kernel::fft_filter_fff::operator= (const fft_filter_fff &)=delete operator= gr::filter::kernel::fft_filter_fff::operator= const fft_filter_fff &
gr::filter::kernel::fft_filter_fff::fft_filter_fff
(fft_filter_fff &&)=default
fft_filter_fff
gr::filter::kernel::fft_filter_fff::fft_filter_fff
fft_filter_fff &&
fft_filter_fff & fft_filter_fff & gr::filter::kernel::fft_filter_fff::operator= (fft_filter_fff &&)=default operator= gr::filter::kernel::fft_filter_fff::operator= fft_filter_fff &&
int int gr::filter::kernel::fft_filter_fff::set_taps (const std::vector< float > &taps) set_taps gr::filter::kernel::fft_filter_fff::set_taps const std::vector< float > & taps

Set new taps for the filter.

Sets new taps and resets the class properties to handle different sizes taps

The filter taps (complex)

void void gr::filter::kernel::fft_filter_fff::set_nthreads (int n) set_nthreads gr::filter::kernel::fft_filter_fff::set_nthreads int n

Set number of threads to use.

std::vector< float > std::vector< float > gr::filter::kernel::fft_filter_fff::taps () const taps gr::filter::kernel::fft_filter_fff::taps

Returns the taps.

unsigned int unsigned int gr::filter::kernel::fft_filter_fff::ntaps () const ntaps gr::filter::kernel::fft_filter_fff::ntaps

Returns the number of taps in the filter.

int int gr::filter::kernel::fft_filter_fff::nthreads () const nthreads gr::filter::kernel::fft_filter_fff::nthreads

Get number of threads being used.

int int gr::filter::kernel::fft_filter_fff::filter (int nitems, const float *input, float *output) filter gr::filter::kernel::fft_filter_fff::filter int nitems const float * input float * output

Perform the filter operation.

nitems

The number of items to produce

input

The input vector to be filtered

output

The result of the filter operation

Fast FFT filter with float input, float output and float taps.

This block performs fast convolution using the overlap-and-save algorithm. The filtering is performand in the frequency domain instead of the time domain (see gr::filter::kernel::fir_filter_fff). For an input signal x and filter coefficients (taps) t, we compute y as:

    y=ifft(fft(x)*fft(t))

This kernel computes the FFT of the taps when they are set to only perform this operation once. The FFT of the input signal x is done every time.

Because this is designed as a very low-level kernel operation, it is designed for speed and avoids certain checks in the filter() function itself. The filter function expects that the input signal is a multiple of d_nsamples in the class that's computed internally to be as fast as possible. The function set_taps will return the value of nsamples that can be used externally to check this boundary. Notice that all implementations of the fft_filter GNU Radio blocks (e.g., gr::filter::fft_filter_fff) use this value of nsamples to compute the value to call gr::block::set_output_multiple that ensures the scheduler always passes this block the right number of samples.

- gr::filter::kernel::fft_filter_fff
  compute_sizes
- gr::filter::kernel::fft_filter_fff
  d_debug_logger
- gr::filter::kernel::fft_filter_fff
  d_decimation
- gr::filter::kernel::fft_filter_fff
  d_fftsize
- gr::filter::kernel::fft_filter_fff
  d_fwdfft
- gr::filter::kernel::fft_filter_fff
  d_invfft
- gr::filter::kernel::fft_filter_fff
  d_logger
- gr::filter::kernel::fft_filter_fff
  d_nsamples
- gr::filter::kernel::fft_filter_fff
  d_ntaps
- gr::filter::kernel::fft_filter_fff
  d_nthreads
- gr::filter::kernel::fft_filter_fff
  d_tail
- gr::filter::kernel::fft_filter_fff
  d_taps
- gr::filter::kernel::fft_filter_fff
  d_xformed_taps
- gr::filter::kernel::fft_filter_fff
  fft_filter_fff
- gr::filter::kernel::fft_filter_fff
  fft_filter_fff
- gr::filter::kernel::fft_filter_fff
  fft_filter_fff
- gr::filter::kernel::fft_filter_fff
  filter
- gr::filter::kernel::fft_filter_fff
  ntaps
- gr::filter::kernel::fft_filter_fff
  nthreads
- gr::filter::kernel::fft_filter_fff
  operator=
- gr::filter::kernel::fft_filter_fff
  operator=
- gr::filter::kernel::fft_filter_fff
  set_nthreads
- gr::filter::kernel::fft_filter_fff
  set_taps
- gr::filter::kernel::fft_filter_fff
  tailsize
- gr::filter::kernel::fft_filter_fff
  taps