File syn_filter_design.c¶
FileList > dsp > syn_filter_design.c
Go to the source code of this file
Dynamic runtime IIR Biquad filter coefficient generator implementation.
#include "syn_filter_design.h"#include <string.h>
Public Functions¶
| Type | Name |
|---|---|
| SYN_Status | syn_filter_design_apply_to_biquad (const SYN_BiquadCoeffs * coeffs, SYN_FilterBiquad * biquad) Apply calculated coefficients to a SYN_FilterBiquad instance. |
| SYN_Status | syn_filter_design_bandpass (q16_t fc_hz, q16_t fs_hz, q16_t Q, SYN_BiquadCoeffs * out) Calculate Bandpass filter coefficients (constant skirt gain). |
| SYN_Status | syn_filter_design_highpass (q16_t fc_hz, q16_t fs_hz, q16_t Q, SYN_BiquadCoeffs * out) Calculate Butterworth Highpass filter coefficients. |
| SYN_Status | syn_filter_design_lowpass (q16_t fc_hz, q16_t fs_hz, q16_t Q, SYN_BiquadCoeffs * out) Calculate Butterworth Lowpass filter coefficients. |
| SYN_Status | syn_filter_design_notch (q16_t fc_hz, q16_t fs_hz, q16_t Q, SYN_BiquadCoeffs * out) Calculate Notch / Bandstop filter coefficients. |
Public Static Functions¶
| Type | Name |
|---|---|
| SYN_Status | compute_intermediate_vars (q16_t fc_hz, q16_t fs_hz, q16_t Q, q16_t * cos_w0, q16_t * sin_w0, q16_t * alpha, q16_t * a0_inv) Helper to pre-warp frequency and compute intermediate bilinear transform constants. |
Public Functions Documentation¶
function syn_filter_design_apply_to_biquad¶
Apply calculated coefficients to a SYN_FilterBiquad instance.
SYN_Status syn_filter_design_apply_to_biquad (
const SYN_BiquadCoeffs * coeffs,
SYN_FilterBiquad * biquad
)
Parameters:
coeffsCalculated biquad coefficients.biquadTarget biquad filter instance.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if NULL.
function syn_filter_design_bandpass¶
Calculate Bandpass filter coefficients (constant skirt gain).
Parameters:
fc_hzCenter frequency in Hz (Q16.16).fs_hzSampling frequency in Hz (Q16.16).QQuality factor / bandwidth selectivity (Q16.16, e.g., Q16_FROM_FLOAT(2.0)).outPointer to output coefficient structure.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if invalid.
function syn_filter_design_highpass¶
Calculate Butterworth Highpass filter coefficients.
Parameters:
fc_hzCutoff frequency in Hz (Q16.16).fs_hzSampling frequency in Hz (Q16.16).QQuality factor (Q16.16, e.g., Q16_FROM_FLOAT(0.7071) for Butterworth).outPointer to output coefficient structure.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if invalid.
function syn_filter_design_lowpass¶
Calculate Butterworth Lowpass filter coefficients.
Parameters:
fc_hzCutoff frequency in Hz (Q16.16).fs_hzSampling frequency in Hz (Q16.16).QQuality factor (Q16.16, e.g., Q16_FROM_FLOAT(0.7071) for Butterworth).outPointer to output coefficient structure.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if invalid.
function syn_filter_design_notch¶
Calculate Notch / Bandstop filter coefficients.
Parameters:
fc_hzRejection frequency in Hz (Q16.16).fs_hzSampling frequency in Hz (Q16.16).QQuality factor / notch depth selectivity (Q16.16, e.g., Q16_FROM_FLOAT(5.0)).outPointer to output coefficient structure.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if invalid.
Public Static Functions Documentation¶
function compute_intermediate_vars¶
Helper to pre-warp frequency and compute intermediate bilinear transform constants.
static SYN_Status compute_intermediate_vars (
q16_t fc_hz,
q16_t fs_hz,
q16_t Q,
q16_t * cos_w0,
q16_t * sin_w0,
q16_t * alpha,
q16_t * a0_inv
)
Parameters:
fc_hzCutoff frequency in Hz.fs_hzSampling frequency in Hz.QQuality factor.cos_w0Output cos(w0).sin_w0Output sin(w0).alphaOutput alpha.a0_invOutput 1/a0 scale factor.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if invalid limits.
The documentation for this class was generated from the following file src/syntropic/dsp/syn_filter_design.c