xtos_ bandpass_ init
初始化二阶高通串联二阶低通的四阶带通基线及其状态。
本页目录
声明
#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);参数
| 参数 | 类型 | 说明 |
|---|---|---|
| filter | struct xtos_bandpass_filter * | 非 NULL 输出状态,由调用方拥有。 |
| sample_rate_hz | double | 采样率,单位 Hz;须大于 0,未显式检查 finite。 |
| low_cut_hz | double | 低截止频率,单位 Hz;须大于 0,未显式检查 finite。 |
| high_cut_hz | double | 高截止频率,单位 Hz;须大于 low_cut 且小于 fs/2,未显式检查 finite。 |
返回值
成功返回 0;失败返回 -1。成功时清零两个阶段的历史状态。
错误
| errno | 条件 |
|---|---|
| EINVAL | filter 为 NULL,或 fs、low、high 不满足正值和 low<high<fs/2 约束。 |
注意事项
- 两个 biquad 的 Q 固定为约 0.7071;公开实现没有 isfinite 检查。
- 初始化和重新初始化会清零状态并产生瞬态;变更采样率或截止频率后必须重新计算。
示例
源码
本文按 OpenXTOS 提交 dd313955ad57542bcd2af8827157d1bbd0cf5e83 的头文件和实现编写。