GNU Radio Manual and C++ API Reference  3.7.4.1
The Free & Open Software Radio Ecosystem
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
gr::filter::firdes Class Reference

Finite Impulse Response (FIR) filter design functions. More...

#include <gnuradio/filter/firdes.h>

Public Types

enum  win_type {
  WIN_NONE = -1, WIN_HAMMING = 0, WIN_HANN = 1, WIN_BLACKMAN = 2,
  WIN_RECTANGULAR = 3, WIN_KAISER = 4, WIN_BLACKMAN_hARRIS = 5, WIN_BLACKMAN_HARRIS = 5,
  WIN_BARTLETT = 6, WIN_FLATTOP = 7
}
 

Static Public Member Functions

static std::vector< float > window (win_type type, int ntaps, double beta)
 
static std::vector< float > low_pass (double gain, double sampling_freq, double cutoff_freq, double transition_width, win_type window=WIN_HAMMING, double beta=6.76)
 use "window method" to design a low-pass FIR filter More...
 
static std::vector< float > low_pass_2 (double gain, double sampling_freq, double cutoff_freq, double transition_width, double attenuation_dB, win_type window=WIN_HAMMING, double beta=6.76)
 use "window method" to design a low-pass FIR filter More...
 
static std::vector< float > high_pass (double gain, double sampling_freq, double cutoff_freq, double transition_width, win_type window=WIN_HAMMING, double beta=6.76)
 use "window method" to design a high-pass FIR filter More...
 
static std::vector< float > high_pass_2 (double gain, double sampling_freq, double cutoff_freq, double transition_width, double attenuation_dB, win_type window=WIN_HAMMING, double beta=6.76)
 use "window method" to design a high-pass FIR filter More...
 
static std::vector< float > band_pass (double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, win_type window=WIN_HAMMING, double beta=6.76)
 use "window method" to design a band-pass FIR filter More...
 
static std::vector< float > band_pass_2 (double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, double attenuation_dB, win_type window=WIN_HAMMING, double beta=6.76)
 use "window method" to design a band-pass FIR filter More...
 
static std::vector< gr_complexcomplex_band_pass (double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, win_type window=WIN_HAMMING, double beta=6.76)
 use "window method" to design a complex band-pass FIR filter More...
 
static std::vector< gr_complexcomplex_band_pass_2 (double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, double attenuation_dB, win_type window=WIN_HAMMING, double beta=6.76)
 use "window method" to design a complex band-pass FIR filter More...
 
static std::vector< float > band_reject (double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, win_type window=WIN_HAMMING, double beta=6.76)
 use "window method" to design a band-reject FIR filter More...
 
static std::vector< float > band_reject_2 (double gain, double sampling_freq, double low_cutoff_freq, double high_cutoff_freq, double transition_width, double attenuation_dB, win_type window=WIN_HAMMING, double beta=6.76)
 use "window method" to design a band-reject FIR filter More...
 
static std::vector< float > hilbert (unsigned int ntaps=19, win_type windowtype=WIN_RECTANGULAR, double beta=6.76)
 design a Hilbert Transform Filter More...
 
static std::vector< float > root_raised_cosine (double gain, double sampling_freq, double symbol_rate, double alpha, int ntaps)
 design a Root Cosine FIR Filter (do we need a window?) More...
 
static std::vector< float > gaussian (double gain, double spb, double bt, int ntaps)
 design a Gaussian filter More...
 

Detailed Description

Finite Impulse Response (FIR) filter design functions.

Member Enumeration Documentation

Enumerator
WIN_NONE 

don't use a window

WIN_HAMMING 

Hamming window; max attenuation 53 dB.

WIN_HANN 

Hann window; max attenuation 44 dB.

WIN_BLACKMAN 

Blackman window; max attenuation 74 dB.

WIN_RECTANGULAR 

Basic rectangular window.

WIN_KAISER 

Kaiser window; max attenuation a function of beta, google it.

WIN_BLACKMAN_hARRIS 

Blackman-harris window.

WIN_BLACKMAN_HARRIS 

alias to WIN_BLACKMAN_hARRIS for capitalization consistency

WIN_BARTLETT 

Barlett (triangular) window.

WIN_FLATTOP 

flat top window; useful in FFTs

Member Function Documentation

static std::vector<float> gr::filter::firdes::band_pass ( double  gain,
double  sampling_freq,
double  low_cutoff_freq,
double  high_cutoff_freq,
double  transition_width,
win_type  window = WIN_HAMMING,
double  beta = 6.76 
)
static

use "window method" to design a band-pass FIR filter

gain: overall gain of filter (typically 1.0) sampling_freq: sampling freq (Hz) low_cutoff_freq: center of transition band (Hz) high_cutoff_freq: center of transition band (Hz) transition_width: width of transition band (Hz). The normalized width of the transition band is what sets the number of taps required. Narrow –> more taps window_type: What kind of window to use. Determines maximum attenuation and passband ripple. beta: parameter for Kaiser window

static std::vector<float> gr::filter::firdes::band_pass_2 ( double  gain,
double  sampling_freq,
double  low_cutoff_freq,
double  high_cutoff_freq,
double  transition_width,
double  attenuation_dB,
win_type  window = WIN_HAMMING,
double  beta = 6.76 
)
static

use "window method" to design a band-pass FIR filter

gain: overall gain of filter (typically 1.0) sampling_freq: sampling freq (Hz) low_cutoff_freq: center of transition band (Hz) high_cutoff_freq: center of transition band (Hz) transition_width: width of transition band (Hz). attenuation_dB out of band attenuation The normalized width of the transition band and the required stop band attenuation is what sets the number of taps required. Narrow –> more taps More attenuation –> more taps window_type: What kind of window to use. Determines maximum attenuation and passband ripple. beta: parameter for Kaiser window

static std::vector<float> gr::filter::firdes::band_reject ( double  gain,
double  sampling_freq,
double  low_cutoff_freq,
double  high_cutoff_freq,
double  transition_width,
win_type  window = WIN_HAMMING,
double  beta = 6.76 
)
static

use "window method" to design a band-reject FIR filter

gain: overall gain of filter (typically 1.0) sampling_freq: sampling freq (Hz) low_cutoff_freq: center of transition band (Hz) high_cutoff_freq: center of transition band (Hz) transition_width: width of transition band (Hz). The normalized width of the transition band is what sets the number of taps required. Narrow –> more taps window_type: What kind of window to use. Determines maximum attenuation and passband ripple. beta: parameter for Kaiser window

static std::vector<float> gr::filter::firdes::band_reject_2 ( double  gain,
double  sampling_freq,
double  low_cutoff_freq,
double  high_cutoff_freq,
double  transition_width,
double  attenuation_dB,
win_type  window = WIN_HAMMING,
double  beta = 6.76 
)
static

use "window method" to design a band-reject FIR filter

gain: overall gain of filter (typically 1.0) sampling_freq: sampling freq (Hz) low_cutoff_freq: center of transition band (Hz) high_cutoff_freq: center of transition band (Hz) transition_width: width of transition band (Hz). attenuation_dB out of band attenuation The normalized width of the transition band and the required stop band attenuation is what sets the number of taps required. Narrow –> more taps More attenuation –> more taps window_type: What kind of window to use. Determines maximum attenuation and passband ripple. beta: parameter for Kaiser window

static std::vector<gr_complex> gr::filter::firdes::complex_band_pass ( double  gain,
double  sampling_freq,
double  low_cutoff_freq,
double  high_cutoff_freq,
double  transition_width,
win_type  window = WIN_HAMMING,
double  beta = 6.76 
)
static

use "window method" to design a complex band-pass FIR filter

gain: overall gain of filter (typically 1.0) sampling_freq: sampling freq (Hz) low_cutoff_freq: center of transition band (Hz) high_cutoff_freq: center of transition band (Hz) transition_width: width of transition band (Hz). The normalized width of the transition band is what sets the number of taps required. Narrow –> more taps window_type: What kind of window to use. Determines maximum attenuation and passband ripple. beta: parameter for Kaiser window

static std::vector<gr_complex> gr::filter::firdes::complex_band_pass_2 ( double  gain,
double  sampling_freq,
double  low_cutoff_freq,
double  high_cutoff_freq,
double  transition_width,
double  attenuation_dB,
win_type  window = WIN_HAMMING,
double  beta = 6.76 
)
static

use "window method" to design a complex band-pass FIR filter

gain: overall gain of filter (typically 1.0) sampling_freq: sampling freq (Hz) low_cutoff_freq: center of transition band (Hz) high_cutoff_freq: center of transition band (Hz) transition_width: width of transition band (Hz). attenuation_dB out of band attenuation The normalized width of the transition band and the required stop band attenuation is what sets the number of taps required. Narrow –> more taps More attenuation –> more taps window_type: What kind of window to use. Determines maximum attenuation and passband ripple. beta: parameter for Kaiser window

static std::vector<float> gr::filter::firdes::gaussian ( double  gain,
double  spb,
double  bt,
int  ntaps 
)
static

design a Gaussian filter

gain: overall gain of filter (typically 1.0) symbols per bit: symbol rate, must be a factor of sample rate ntaps: number of taps

static std::vector<float> gr::filter::firdes::high_pass ( double  gain,
double  sampling_freq,
double  cutoff_freq,
double  transition_width,
win_type  window = WIN_HAMMING,
double  beta = 6.76 
)
static

use "window method" to design a high-pass FIR filter

gain: overall gain of filter (typically 1.0) sampling_freq: sampling freq (Hz) cutoff_freq: center of transition band (Hz) transition_width: width of transition band (Hz). The normalized width of the transition band is what sets the number of taps required. Narrow –> more taps window_type: What kind of window to use. Determines maximum attenuation and passband ripple. beta: parameter for Kaiser window

static std::vector<float> gr::filter::firdes::high_pass_2 ( double  gain,
double  sampling_freq,
double  cutoff_freq,
double  transition_width,
double  attenuation_dB,
win_type  window = WIN_HAMMING,
double  beta = 6.76 
)
static

use "window method" to design a high-pass FIR filter

gain: overall gain of filter (typically 1.0) sampling_freq: sampling freq (Hz) cutoff_freq: center of transition band (Hz) transition_width: width of transition band (Hz). attenuation_dB out of band attenuation The normalized width of the transition band and the required stop band attenuation is what sets the number of taps required. Narrow –> more taps More attenuation –> more taps window_type: What kind of window to use. Determines maximum attenuation and passband ripple. beta: parameter for Kaiser window

static std::vector<float> gr::filter::firdes::hilbert ( unsigned int  ntaps = 19,
win_type  windowtype = WIN_RECTANGULAR,
double  beta = 6.76 
)
static

design a Hilbert Transform Filter

ntaps: Number of taps, must be odd window_type: What kind of window to use beta: Only used for Kaiser

static std::vector<float> gr::filter::firdes::low_pass ( double  gain,
double  sampling_freq,
double  cutoff_freq,
double  transition_width,
win_type  window = WIN_HAMMING,
double  beta = 6.76 
)
static

use "window method" to design a low-pass FIR filter

gain: overall gain of filter (typically 1.0) sampling_freq: sampling freq (Hz) cutoff_freq: center of transition band (Hz) transition_width: width of transition band (Hz). The normalized width of the transition band is what sets the number of taps required. Narrow –> more taps window_type: What kind of window to use. Determines maximum attenuation and passband ripple. beta: parameter for Kaiser window

static std::vector<float> gr::filter::firdes::low_pass_2 ( double  gain,
double  sampling_freq,
double  cutoff_freq,
double  transition_width,
double  attenuation_dB,
win_type  window = WIN_HAMMING,
double  beta = 6.76 
)
static

use "window method" to design a low-pass FIR filter

gain: overall gain of filter (typically 1.0) sampling_freq: sampling freq (Hz) cutoff_freq: center of transition band (Hz) transition_width: width of transition band (Hz). attenuation_dB required stopband attenuation The normalized width of the transition band and the required stop band attenuation is what sets the number of taps required. Narrow –> more taps More attenuatin –> more taps window_type: What kind of window to use. Determines maximum attenuation and passband ripple. beta: parameter for Kaiser window

static std::vector<float> gr::filter::firdes::root_raised_cosine ( double  gain,
double  sampling_freq,
double  symbol_rate,
double  alpha,
int  ntaps 
)
static

design a Root Cosine FIR Filter (do we need a window?)

gain: overall gain of filter (typically 1.0) sampling_freq: sampling freq (Hz) symbol rate: symbol rate, must be a factor of sample rate alpha: excess bandwidth factor ntaps: number of taps

static std::vector<float> gr::filter::firdes::window ( win_type  type,
int  ntaps,
double  beta 
)
static

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