eDSP  0.0.1
A cross-platform DSP library written in C++.
Classes | Enumerations | Functions
edsp::filter Namespace Reference

Classes

class  biquad
 This Biquad class implements a second-order recursive linear filter, containing two poles and two zeros. More...
 
class  biquad_cascade
 The BiquadCascade class implements a cascade of Biquad filters. More...
 
struct  designer
 
struct  designer< T, DesignerType::Butterworth, MaxOrder >
 Butterworth filter designer. More...
 
struct  designer< T, DesignerType::ChebyshevI, MaxOrder >
 Chebyshev filter designer. More...
 
struct  designer< T, DesignerType::ChebyshevII, MaxOrder >
 Inverse Chebyshev filter designer. More...
 
struct  designer< T, DesignerType::RBJ, MaxOrder >
 Robert Bristow-Johnson filter designer. More...
 
struct  designer< T, DesignerType::Zolzer, MaxOrder >
 Udo Zölzer filter designer. More...
 
class  moving_average
 This class implement a cumulative moving average (rolling average or running average) filter. More...
 
class  moving_median
 This class implement a cumulative moving median (rolling median or running median) filter. More...
 
class  moving_rms
 This class implement a cumulative moving rms (rolling rms or running rms) filter. More...
 

Enumerations

enum  FilterType {
  FilterType::LowPass, FilterType::HighPass, FilterType::BandPassSkirtGain, FilterType::BandPassPeakGain,
  FilterType::BandPass, FilterType::BandStop, FilterType::AllPass, FilterType::LowShelf,
  FilterType::HighShelf, FilterType::BandShelf, FilterType::Notch, FilterType::PeakingEQ
}
 The FilterType enum defines the different available filters. More...
 
enum  DesignerType {
  DesignerType::RBJ, DesignerType::Zolzer, DesignerType::Butterworth, DesignerType::ChebyshevI,
  DesignerType::ChebyshevII, DesignerType::Bessel, DesignerType::Elliptic, DesignerType::Legendre
}
 The DesignerType enum defines the different filter's implementation from different authors. More...
 

Functions

template<typename T , DesignerType Designer, FilterType Type, std::size_t MaxOrder, typename... Args>
constexpr auto make_filter (Args... arg) -> decltype(designer< T, Designer, MaxOrder >
 Creates a filter using args as the parameter list for the construction. More...
 
template design< Type > (std::declval< Args &&>()...))
 

Enumeration Type Documentation

◆ DesignerType

The DesignerType enum defines the different filter's implementation from different authors.

See also
FilterType
Enumerator
RBJ 

Robert Bristow-Johnson formulas from the Audio-EQ-Cookbook

Zolzer 

Udo Zölzer formulas from his book: Digital Audio Signal Processing

Butterworth 

Digital implementation of the classic Butterworth filter by using the bilinear transform

ChebyshevI 

Digital implementation of the Chebyshev polynomials (ripple in the passband) filter by using the bilinear transform

ChebyshevII 

Digital implementation of the "Inverse Chebyshev" filters (ripple in the stopband) by using the bilinear transform

Bessel 
Elliptic 

Elliptic filters design

Legendre 

Legendre filters design

◆ FilterType

The FilterType enum defines the different available filters.

Enumerator
LowPass 

Low pass filter

HighPass 

High pass filter

BandPassSkirtGain 

Band pass skirt filter

BandPassPeakGain 

Band pass peak filter

BandPass 

Band pass filter

BandStop 

Band stop filter

AllPass 

All pass filter

LowShelf 

Low shelf (shelving) filter

HighShelf 

High shelf (shelving) filter

BandShelf 

Band shelf (shelving) filter

Notch 

Notch filter

PeakingEQ 

Peaking EQ filter

Function Documentation

◆ design< Type >()

template edsp::filter::design< Type > ( std::declval< Args &&>()  ...)

◆ make_filter()

template<typename T , DesignerType Designer, FilterType Type, std::size_t MaxOrder, typename... Args>
constexpr auto edsp::filter::make_filter ( Args...  arg) -> decltype(designer<T, Designer, MaxOrder>

Creates a filter using args as the parameter list for the construction.

Template Parameters
TValue type
TypeTypes of filter to be created.
Parameters
argArguments parameters to constructs the filter.
Returns
A filter with the given configuration.