Real-time filtering

In this group, are defined some filtering structures with context, for the processing of streaming signals (real-time filtering).


Types

using dsp::filter::RIIStructure = typedef tsd::filtrage::RIIStructure

Functions

sptr<FilterGen<T>> delay_line(unsigned int n)
Delay the input signal by an integer number of samples.

sptr<Filter<float, cfloat, HilbertTransformeurConfig>> hilbert_transformer(unsigned int n=31, cstring fenetre="hn")
Defines a Hilbert transformer (conversion from a real signal to a complex, analytic one.

sptr<FilterGen<T>> filter_fir(const Vector<Tc> &h)
Direct implementation of a FIR filter.

sptr<FilterGen<T>> filter_id()
Identity filter.

sptr<FilterGen<T>> decimator(int R)
Decimation by a factor 1:R.

sptr<FilterGen<T>> filter_fir_fft(const Vecf &h)
Efficient implementation of a FIR filter in the frequency domain.

sptr<FilterGen<T>> filter_iir(const FRat<Tc> &h)
IIR filter, direct form I implementation, not recommanded (use rather filter_sois() instead).

sptr<FilterGen<T>> filter_cic(const CICConfig &config, char mode='d')
Creation of a CIC filter, processing on vectors of type T, and computing internally with samples of type Ti.

CICAnalyse cic_analysis(const CICConfig &config, float Fin, float Fint=0)
This function computes and shows the frequency response of a CIC filter and then analyse the aliasing that occurs after decimation.

Vecf cic_freq(const CICConfig &config, const Vecf &f)
Frequency response of a CIC filter.

sptr<FilterGen<T>> filter_sois(const FRat<cfloat> &h, RIIStructure structure=FormeDirecte2)
IIR filter implementation through a cascad of second order sections.

sptr<FilterGen<T>> filter_sois(const FRat<float> &h, RIIStructure structure=FormeDirecte2)

sptr<FilterGen<T>> filter_ema(float γ)
First order IIR filter (exponential filter).

sptr<FilterGen<T>> filter_dc(float fc)
Filter for DC (low frequencies) suppression.

sptr<FilterGen<T>> filter_ma(unsigned int K)
Moving average filter.