11#ifndef INCLUDED_FILTER_FFT_FILTER_H
12#define INCLUDED_FILTER_FFT_FILTER_H
18#include <volk/volk_alloc.hh>
64 std::unique_ptr<fft::fft_real_fwd> d_fwdfft;
65 std::unique_ptr<fft::fft_real_rev> d_invfft;
67 std::vector<float> d_tail;
68 std::vector<float> d_taps;
69 volk::vector<gr_complex> d_xformed_taps;
71 void compute_sizes(
int ntaps);
72 int tailsize()
const {
return d_ntaps - 1; }
115 std::vector<float>
taps()
const;
134 int filter(
int nitems,
const float* input,
float* output);
177 std::unique_ptr<fft::fft_complex_fwd> d_fwdfft;
178 std::unique_ptr<fft::fft_complex_rev> d_invfft;
180 std::vector<gr_complex> d_tail;
181 std::vector<gr_complex> d_taps;
182 volk::vector<gr_complex> d_xformed_taps;
184 void compute_sizes(
int ntaps);
185 int tailsize()
const {
return d_ntaps - 1; }
228 std::vector<gr_complex>
taps()
const;
290 std::unique_ptr<fft::fft_complex_fwd> d_fwdfft;
291 std::unique_ptr<fft::fft_complex_rev> d_invfft;
293 std::vector<gr_complex> d_tail;
294 std::vector<float> d_taps;
295 volk::vector<gr_complex> d_xformed_taps;
297 void compute_sizes(
int ntaps);
298 int tailsize()
const {
return d_ntaps - 1; }
341 std::vector<float>
taps()
const;
Fast FFT filter with gr_complex input, gr_complex output and gr_complex taps.
Definition: fft_filter.h:171
fft_filter_ccc(const fft_filter_ccc &)=delete
unsigned int ntaps() const
Returns the number of taps in the filter.
void set_nthreads(int n)
Set number of threads to use.
fft_filter_ccc(int decimation, const std::vector< gr_complex > &taps, int nthreads=1)
Construct an FFT filter for complex vectors with the given taps and decimation rate.
fft_filter_ccc(fft_filter_ccc &&)=default
fft_filter_ccc & operator=(fft_filter_ccc &&)=default
fft_filter_ccc & operator=(const fft_filter_ccc &)=delete
int filter(int nitems, const gr_complex *input, gr_complex *output)
Perform the filter operation.
int set_taps(const std::vector< gr_complex > &taps)
Set new taps for the filter.
std::vector< gr_complex > taps() const
Returns the taps.
int nthreads() const
Get number of threads being used.
Fast FFT filter with gr_complex input, gr_complex output and float taps.
Definition: fft_filter.h:284
fft_filter_ccf(fft_filter_ccf &&)=default
fft_filter_ccf & operator=(const fft_filter_ccf &)=delete
unsigned int ntaps() const
Returns the number of taps in the filter.
fft_filter_ccf & operator=(fft_filter_ccf &&)=default
void set_nthreads(int n)
Set number of threads to use.
int filter(int nitems, const gr_complex *input, gr_complex *output)
Perform the filter operation.
int set_taps(const std::vector< float > &taps)
Set new taps for the filter.
fft_filter_ccf(int decimation, const std::vector< float > &taps, int nthreads=1)
Construct an FFT filter for complex vectors with the given taps and decimation rate.
fft_filter_ccf(const fft_filter_ccf &)=delete
unsigned int filtersize() const
Returns the actual size of the filter.
int nthreads() const
Get number of threads being used.
std::vector< float > taps() const
Returns the taps.
Fast FFT filter with float input, float output and float taps.
Definition: fft_filter.h:58
fft_filter_fff & operator=(fft_filter_fff &&)=default
int nthreads() const
Get number of threads being used.
unsigned int ntaps() const
Returns the number of taps in the filter.
fft_filter_fff(const fft_filter_fff &)=delete
fft_filter_fff(fft_filter_fff &&)=default
fft_filter_fff & operator=(const fft_filter_fff &)=delete
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.
void set_nthreads(int n)
Set number of threads to use.
int set_taps(const std::vector< float > &taps)
Set new taps for the filter.
std::vector< float > taps() const
Returns the taps.
int filter(int nitems, const float *input, float *output)
Perform the filter operation.
#define FILTER_API
Definition: gr-filter/include/gnuradio/filter/api.h:18
std::complex< float > gr_complex
Definition: gr_complex.h:15
static constexpr float taps[NSTEPS+1][NTAPS]
Definition: interpolator_taps.h:9
GNU Radio logging wrapper.
Definition: basic_block.h:29
std::shared_ptr< logger > logger_ptr
Definition: logger.h:225