GNU Radio Manual and C++ API Reference  3.8.1.0
The Free & Open Software Radio Ecosystem
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,
  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. The normalized width of the transition band is what sets the number of taps required. Narrow –> more taps. Window type determines maximum attenuation and passband ripple. 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. 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. The window type determines maximum attentuation and passband ripple. 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. The normalized width of the transition band is what sets the number of taps required. Narrow –> more taps. The window determines maximum attenuation and passband ripple. 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. 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. The window determines maximum attenuation and passband ripple. 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. The normalized width of the transition band is what sets the number of taps required. Narrow –> more taps. The window determines maximum attenuation and passband ripple. 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. 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 determines maximum attenuation and passband ripple. 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 the "window method" to design a complex band-pass FIR filter. The normalized width of the transition band is what sets the number of taps required. Narrow –> more taps. The window type determines maximum attenuation and passband ripple. 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. 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 determines maximum attenuation and passband ripple. 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. The normalized width of the transition band is what sets the number of taps required. Narrow –> more taps. Window type determines maximum attenuation and passband ripple. 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. 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 determines maximum attenuation and passband ripple. 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

◆ win_type

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

◆ band_pass()

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. The normalized width of the transition band is what sets the number of taps required. Narrow –> more taps. The window determines maximum attenuation and passband ripple.

Parameters
gainoverall gain of filter (typically 1.0)
sampling_freqsampling freq (Hz)
low_cutoff_freqcenter of transition band (Hz)
high_cutoff_freqcenter of transition band (Hz)
transition_widthwidth of transition band (Hz).
windowone of firdes::win_type
betaparameter for Kaiser window

◆ band_pass_2()

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. 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 determines maximum attenuation and passband ripple.

Parameters
gainoverall gain of filter (typically 1.0)
sampling_freqsampling freq (Hz)
low_cutoff_freqcenter of transition band (Hz)
high_cutoff_freqcenter of transition band (Hz)
transition_widthwidth of transition band (Hz).
attenuation_dBout of band attenuation
windowone of firdes::win_type
betaparameter for Kaiser window

◆ band_reject()

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. The normalized width of the transition band is what sets the number of taps required. Narrow –> more taps. Window type determines maximum attenuation and passband ripple.

Parameters
gainoverall gain of filter (typically 1.0)
sampling_freqsampling freq (Hz)
low_cutoff_freqcenter of transition band (Hz)
high_cutoff_freqcenter of transition band (Hz)
transition_widthwidth of transition band (Hz)
windowone of firdes::win_type
betaparameter for Kaiser window

◆ band_reject_2()

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. 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 determines maximum attenuation and passband ripple.

Parameters
gainoverall gain of filter (typically 1.0)
sampling_freqsampling freq (Hz)
low_cutoff_freqcenter of transition band (Hz)
high_cutoff_freqcenter of transition band (Hz)
transition_widthwidth of transition band (Hz).
attenuation_dBout of band attenuation
windowone of firdes::win_type
betaparameter for Kaiser window

◆ complex_band_pass()

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 the "window method" to design a complex band-pass FIR filter. The normalized width of the transition band is what sets the number of taps required. Narrow –> more taps. The window type determines maximum attenuation and passband ripple.

Parameters
gainoverall gain of filter (typically 1.0)
sampling_freqsampling freq (Hz)
low_cutoff_freqcenter of transition band (Hz)
high_cutoff_freqcenter of transition band (Hz)
transition_widthwidth of transition band (Hz)
windowone of firdes::win_type
betaparameter for Kaiser window

◆ complex_band_pass_2()

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. 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 determines maximum attenuation and passband ripple.

Parameters
gainoverall gain of filter (typically 1.0)
sampling_freqsampling freq (Hz)
low_cutoff_freqcenter of transition band (Hz)
high_cutoff_freqcenter of transition band (Hz)
transition_widthwidth of transition band (Hz)
attenuation_dBout of band attenuation
windowone of firdes::win_type
betaparameter for Kaiser window

◆ gaussian()

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

design a Gaussian filter

Parameters
gainoverall gain of filter (typically 1.0)
spbsymbol rate, must be a factor of sample rate
btbandwidth to bitrate ratio
ntapsnumber of taps

◆ high_pass()

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. The normalized width of the transition band is what sets the number of taps required. Narrow –> more taps. The window determines maximum attenuation and passband ripple.

Parameters
gainoverall gain of filter (typically 1.0)
sampling_freqsampling freq (Hz)
cutoff_freqcenter of transition band (Hz)
transition_widthwidth of transition band (Hz)
windowone of firdes::win_type
betaparameter for Kaiser window

◆ high_pass_2()

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. 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. The window determines maximum attenuation and passband ripple.

Parameters
gainoverall gain of filter (typically 1.0)
sampling_freqsampling freq (Hz)
cutoff_freqcenter of transition band (Hz)
transition_widthwidth of transition band (Hz).
attenuation_dBout of band attenuation
windowone of firdes::win_type
betaparameter for Kaiser window

◆ hilbert()

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

Parameters
ntapsnumber of taps, must be odd
windowtypeone kind of firdes::win_type
betaparameter for Kaiser window

◆ low_pass()

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. The normalized width of the transition band is what sets the number of taps required. Narrow –> more taps. Window type determines maximum attenuation and passband ripple.

Parameters
gainoverall gain of filter (typically 1.0)
sampling_freqsampling freq (Hz)
cutoff_freqcenter of transition band (Hz)
transition_widthwidth of transition band (Hz)
windowone of firdes::win_type
betaparameter for Kaiser window

◆ low_pass_2()

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. 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. The window type determines maximum attentuation and passband ripple.

Parameters
gainoverall gain of filter (typically 1.0)
sampling_freqsampling freq (Hz)
cutoff_freqbeginning of transition band (Hz)
transition_widthwidth of transition band (Hz)
attenuation_dBrequired stopband attenuation
windowone of firdes::win_type
betaparameter for Kaiser window

◆ root_raised_cosine()

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?)

Parameters
gainoverall gain of filter (typically 1.0)
sampling_freqsampling freq (Hz)
symbol_ratesymbol rate, must be a factor of sample rate
alphaexcess bandwidth factor
ntapsnumber of taps

◆ window()

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: