Skip to content

File syn_filter_design.h

File List > dsp > syn_filter_design.h

Go to the documentation of this file

#ifndef SYN_FILTER_DESIGN_H
#define SYN_FILTER_DESIGN_H

#include "../common/syn_defs.h"
#include "../util/syn_qmath.h"
#include "syn_biquad.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef struct {
    q16_t b0; 
    q16_t b1; 
    q16_t b2; 
    q16_t a1; 
    q16_t a2; 
} SYN_BiquadCoeffs;

SYN_Status syn_filter_design_lowpass(q16_t fc_hz, q16_t fs_hz, q16_t Q, SYN_BiquadCoeffs *out);

SYN_Status syn_filter_design_highpass(q16_t fc_hz, q16_t fs_hz, q16_t Q, SYN_BiquadCoeffs *out);

SYN_Status syn_filter_design_bandpass(q16_t fc_hz, q16_t fs_hz, q16_t Q, SYN_BiquadCoeffs *out);

SYN_Status syn_filter_design_notch(q16_t fc_hz, q16_t fs_hz, q16_t Q, SYN_BiquadCoeffs *out);

SYN_Status syn_filter_design_apply_to_biquad(const SYN_BiquadCoeffs *coeffs,
                                             SYN_FilterBiquad *biquad);

#ifdef __cplusplus
}
#endif

#endif /* SYN_FILTER_DESIGN_H */