GNU Radio 2.x: gr_remez.cc File Reference

Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

# gr_remez.cc File Reference

`#include <gr_remez.h>`
`#include <cmath>`
`#include <assert.h>`
`#include <iostream>`
`#include <vector>`

Include dependency graph for gr_remez.cc:

## Defines
#define | LOCAL_BUFFER(T, buf, size)
#define | CONST const
#define | BANDPASS 1
#define | DIFFERENTIATOR 2
#define | HILBERT 3
#define | NEGATIVE 0
#define | POSITIVE 1
#define | Pi 3.14159265358979323846
#define | Pi2 (2*Pi)
#define | GRIDDENSITY 16
#define | MAXITERATIONS 40
## Functions
std::vector< double > | gr_remez (int order, const std::vector< double > &arg_bands, const std::vector< double > &arg_response, const std::vector< double > &arg_weight, const std::string filter_type, int grid_density) throw (std::runtime_error)
| Parks-McClellan FIR filter design.

## Define Documentation

#define BANDPASS 1

#define CONST const

#define DIFFERENTIATOR 2

#define GRIDDENSITY 16

#define HILBERT 3

#define LOCAL_BUFFER | ( | T,
|  | buf,
|  | size |  | ) |

| Value:
    std::vector<T> buf ## _vector (size); \
      T *buf = &(buf ## _vector[0])

#define MAXITERATIONS 40

#define NEGATIVE 0

#define Pi 3.14159265358979323846

#define Pi2 (2*Pi)

#define POSITIVE 1

## Function Documentation

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. Parameters:
  | 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) Returns: vector of computed taps Exceptions:
  | std::runtime_error | if args are invalid or calculation fails to converge.