GNU Radio Manual and C++ API Reference  3.7.9.2
The Free & Open Software Radio Ecosystem
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Digital Filter Design

Classes

class  gr::filter::firdes
 Finite Impulse Response (FIR) filter design functions. More...
 

Enumerations

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

Functions

FILTER_API std::vector< double > gr::filter::pm_remez (int order, const std::vector< double > &bands, const std::vector< double > &ampl, const std::vector< double > &error_weight, const std::string filter_type="bandpass", int grid_density=16) throw (std::runtime_error)
 Parks-McClellan FIR filter design using Remez algorithm. More...
 

Detailed Description

Enumeration Type 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

Function Documentation

FILTER_API std::vector<double> gr::filter::pm_remez ( int  order,
const std::vector< double > &  bands,
const std::vector< double > &  ampl,
const std::vector< double > &  error_weight,
const std::string  filter_type = "bandpass",
int  grid_density = 16 
)
throw (std::runtime_error
)

Parks-McClellan FIR filter design using Remez algorithm.

Calculates the optimal (in the Chebyshev/minimax sense) FIR filter inpulse reponse given a set of band edges, the desired reponse on those bands, and the weight given to the error in those bands.

Parameters
orderfilter order (number of taps in the returned filter - 1)
bandsfrequency at the band edges [ b1 e1 b2 e2 b3 e3 ...]
ampldesired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...]
error_weightweighting applied to each band (usually 1)
filter_typeone of "bandpass", "hilbert" or "differentiator"
grid_densitydetermines how accurately the filter will be constructed. \ The minimum value is 16; higher values are slower to compute.

Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2)

Returns
vector of computed taps
Exceptions
std::runtime_errorif args are invalid or calculation fails to converge.