XTOS / OPEN SOURCE REAL-TIME SYSTEMOPEN SOURCE · VERSION 0.9.0 · BUILD FROM SOURCE
libxtos-signalxtos_bandpass_init

xtos_bandpass_init

初始化二阶高通串联二阶低通的四阶带通基线及其状态。

本页目录

声明

c
#include <xtos/signal.h>

int xtos_bandpass_init(struct xtos_bandpass_filter *filter,
                       double sample_rate_hz,
                       double low_cut_hz,
                       double high_cut_hz);

参数

参数类型说明
filterstruct xtos_bandpass_filter *非 NULL 输出状态,由调用方拥有。
sample_rate_hzdouble采样率,单位 Hz;须大于 0,未显式检查 finite。
low_cut_hzdouble低截止频率,单位 Hz;须大于 0,未显式检查 finite。
high_cut_hzdouble高截止频率,单位 Hz;须大于 low_cut 且小于 fs/2,未显式检查 finite。

返回值

成功返回 0;失败返回 -1。成功时清零两个阶段的历史状态。

错误

errno条件
EINVALfilter 为 NULL,或 fs、low、high 不满足正值和 low<high<fs/2 约束。

注意事项

  • 两个 biquad 的 Q 固定为约 0.7071;公开实现没有 isfinite 检查。
  • 初始化和重新初始化会清零状态并产生瞬态;变更采样率或截止频率后必须重新计算。

示例

源码

本文按 OpenXTOS 提交 dd313955ad57542bcd2af8827157d1bbd0cf5e83 的头文件和实现编写。