Linear filter design
Types
using dsp::filter::FreqIntervalSpec = typedef tsdf::SpecFreqIntervalle
Specificaton of a frequency response on an interval. 
using dsp::filter::BiquadSpec = typedef tsdf::BiquadSpec
typedef tsdf::Fréquence dsp::filter::Frequency
Normalized frequency. 
Structures
struct CICConfig
Main parameters for a CIC filter. 
Functions
Vecf design_fir_hilbert(int n, cstring window="hn")
Hilbert filter FIR approximation. 
FRat<float> design_biquad(const BiquadSpec &spec)
Biquad filter design. 
FRat<float> design_biquad(cstring type, float f, float Q, float gain_dB=0)
Biquad filter design. 
FRat<cfloat> design_iira(int n, cstring type, cstring prototype, float fc, float δ_bp=0.1f, float δ_bc=60)
IIR design from a classical analog prototype. 
Vecf design_fir_freq(int n, const Vecf &d)
Frequency sampling design. 
Vecf design_fir_freq_freqs(int n)
Computes the \(m\) frequencie values used for the sampling frequency technique design. 
Vecf design_fir_eq(int n, const Vecf &d, const Vecf &w)
Equiripple FIR design (IRLS method). 
Vecf design_fir_eq(int n, const vector<FreqIntervalSpec> &spec)
Equiripple FIR design (IRLS method). 
Vecf design_fir_half_band(int n, float fc)
Half-band FIR design. 
Vecf design_fir_wnd(int n, cstring type, float fc, cstring fen="hn", float fc2=0)
Windowed cardinal sine FIR design. 
Vecf design_rif_wnd_kaiser(cstring type, float fc, float atten_db, float df, float fc2=0)
Windowed cardinal sine FIR design (Kaiser window). 
Vecf design_fir_wnd_chebychev(int n, cstring type, float fc, float atten_db, float fc2=0)
Windowed cardinal sine FIR design (Chebychev window). 
Vecf design_fir_rc(int n, float β, float fc)
Raised cosine filter design. 
Vecf design_fir_srrc(int n, float β, float fc)
Square-root raised cosine filter design. 
Vecf design_fir_srrc1(int n, float β, float osf, char nrm='s')
Square-root raised cosine filter design (1). 
Vecf design_fir_gaussian(int n, float σ)
Coefficients for FIR approximation of a Gaussian filter (non windowed). 
Vecf design_fir_gaussian_telecom(int n, float BT, int osf)
Coefficients for FIR approximation of a Gaussian filter, for a GFSK modulation. 
float design_fir_gaussian_telecom_BT2sigma(float BT)
Computes the standard deviation (relative to the sample period) as a function of the Bandwidt - Time product (BT). 
Vecf design_fir_prod(const Vecf &h1, const Vecf &h2)
Computes the FIR filter equivalent to the serie concatenation of two other FIR filters. 
static Vecf design_fir_pb2ph_is(const Vecf &h)
Spectral inversion. 
static Vecf design_fir_pb2ph_rs(const Vecf &h)
Spectral reflexion. 
static Vecf design_fir_pb2pb(const Vecf &h)
static Vecf design_fir_pb2pm(const Vecf &h)
FRat<float> design_cic(const CICConfig &config)
CIC filter theorical transfert function. 
CICComp design_cic_comp(const CICConfig &config, float Fin, int R2, float fc, int ncoefs)
Design of a compensation FIR filter for a CIC filter. 
FRat<float> design_dc_blocker(float fc)
Transfert function for a DC blocker. 
static FRat<float> design_notch(float f0, float fc)
static FRat<float> design_ma(int K)
Transfert function of a moving average filter with order \(K\). 
static FRat<float> design_ema(Frequency fc)
Transfert function of an exponential filter. 
static FRat<float> design_ema(float γ)
Transfert function of an exponential filter (from the forget factor) 
float ema_coef(Frequency fc)
Generate first order IIR filter forget factor (unique coefficient) from cut-off frequency. 
float ema_tc2coef(float tc)
Same as previous function, but take as input the time constant (in samples). 
float ema_coef2tc(float γ)
Frequency ema_fcut(float γ)
Compute cut-off frequency, from forget factor of first order IIR filter. 
Tableau<T> polyphase_form(const Vector<T> &x, unsigned int M)
Creation of the polyphase representation of a signal. 
Vector<T> polyphase_iform(const Tableau<T> &X)
Compute the standard form from the polyphase representation. 
FRat<cfloat> bilinear_transform(const FRat<cfloat> &ha, float fe)
Bilinear transform: conversion from Laplace transform to z transform. 
float fd2fa(float fd)
Bilinear transform frequency warping (digital to analog). 
float fa2fd(float fa)
Bilinear transform frequency warping (analog to digital). 
