GNU Radio 3.5.3.2 C++ API
|
FIR filter combined with frequency translation with short input, gr_complex output and gr_complex tapsThis class efficiently combines a frequency translation (typically "down conversion") with a FIR filter (typically low-pass) and decimation. It is ideally suited for a "channel selection filter" and can be efficiently used to select and decimate a narrow band signal out of wide bandwidth input. More...
#include <gr_freq_xlating_fir_filter_scc.h>
Public Member Functions | |
virtual | ~gr_freq_xlating_fir_filter_scc () |
void | set_center_freq (double center_freq) |
void | set_taps (const std::vector< gr_complex > &taps) |
int | work (int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) |
just like gr_block::general_work, only this arranges to call consume_each for you | |
Protected Member Functions | |
virtual void | build_composite_fir () |
gr_freq_xlating_fir_filter_scc (int decimation, const std::vector< gr_complex > &taps, double center_freq, double sampling_freq) | |
Protected Attributes | |
std::vector< gr_complex > | d_proto_taps |
gr_fir_scc * | d_composite_fir |
gr_rotator | d_r |
double | d_center_freq |
double | d_sampling_freq |
bool | d_updated |
Friends | |
GR_CORE_API gr_freq_xlating_fir_filter_scc_sptr | gr_make_freq_xlating_fir_filter_scc (int decimation, const std::vector< gr_complex > &taps, double center_freq, double sampling_freq) |
FIR filter combined with frequency translation with short input, gr_complex output and gr_complex taps
This class efficiently combines a frequency translation (typically "down conversion") with a FIR filter (typically low-pass) and decimation. It is ideally suited for a "channel selection filter" and can be efficiently used to select and decimate a narrow band signal out of wide bandwidth input.
Uses a single input array to produce a single output array. Additional inputs and/or outputs are ignored.
virtual gr_freq_xlating_fir_filter_scc::~gr_freq_xlating_fir_filter_scc | ( | ) | [virtual] |
gr_freq_xlating_fir_filter_scc::gr_freq_xlating_fir_filter_scc | ( | int | decimation, |
const std::vector< gr_complex > & | taps, | ||
double | center_freq, | ||
double | sampling_freq | ||
) | [protected] |
Construct a FIR filter with the given taps and a composite frequency translation that shifts center_freq down to zero Hz. The frequency translation logically comes before the filtering operation.
virtual void gr_freq_xlating_fir_filter_scc::build_composite_fir | ( | ) | [protected, virtual] |
void gr_freq_xlating_fir_filter_scc::set_center_freq | ( | double | center_freq | ) |
void gr_freq_xlating_fir_filter_scc::set_taps | ( | const std::vector< gr_complex > & | taps | ) |
int gr_freq_xlating_fir_filter_scc::work | ( | int | noutput_items, |
gr_vector_const_void_star & | input_items, | ||
gr_vector_void_star & | output_items | ||
) | [virtual] |
just like gr_block::general_work, only this arranges to call consume_each for you
The user must override work to define the signal processing code
Implements gr_sync_block.
GR_CORE_API gr_freq_xlating_fir_filter_scc_sptr gr_make_freq_xlating_fir_filter_scc | ( | int | decimation, |
const std::vector< gr_complex > & | taps, | ||
double | center_freq, | ||
double | sampling_freq | ||
) | [friend] |
Construct a FIR filter with the given taps and a composite frequency translation that shifts center_freq down to zero Hz. The frequency translation logically comes before the filtering operation.
double gr_freq_xlating_fir_filter_scc::d_center_freq [protected] |
gr_rotator gr_freq_xlating_fir_filter_scc::d_r [protected] |
double gr_freq_xlating_fir_filter_scc::d_sampling_freq [protected] |
bool gr_freq_xlating_fir_filter_scc::d_updated [protected] |