GNU Radio 3.6.5 C++ API
|
Classes | |
class | gr_firdes |
Finite Impulse Response (FIR) filter design functions. More... | |
class | gr::filter::firdes |
Finite Impulse Response (FIR) filter design functions. More... | |
Functions | |
GR_CORE_API std::vector< double > | gr_remez (int order, const std::vector< double > &bands, const std::vector< double > &l, 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. | |
FILTER_API std::vector< double > | gr::filter::pm_remez (int order, const std::vector< double > &bands, const std::vector< double > &l, 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. |
GR_CORE_API std::vector<double> gr_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.
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.
order | filter order (number of taps in the returned filter - 1) |
bands | frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...] |
ampl | desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...] |
error_weight | weighting applied to each band (usually 1) |
filter_type | one of "bandpass", "hilbert" or "differentiator" |
grid_density | determines 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)
std::runtime_error | if args are invalid or calculation fails to converge. |
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.
order | filter order (number of taps in the returned filter - 1) |
bands | frequency at the band edges [ b1 e1 b2 e2 b3 e3 ...] |
ampl | desired amplitude at the band edges [ a(b1) a(e1) a(b2) a(e2) ...] |
error_weight | weighting applied to each band (usually 1) |
filter_type | one of "bandpass", "hilbert" or "differentiator" |
grid_density | determines 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)
std::runtime_error | if args are invalid or calculation fails to converge. |