算法没调试过,请注意自行调试和甄别!!!:
/**
* @brief 一阶低通滤波器(IIR)
* @param current 当前原始采样值
* @param prev_output 上一次滤波器的输出值(需外部保持状态)
* @param alpha 滤波系数,范围 (0, 1),越小滤波越强但响应越慢
* @return 本次滤波后的输出值
*/
float low_pass_filter(float current, float prev_output, float alpha) {
return alpha * current + (1.0f - alpha) * prev_output;
}
prev = low_pass_filter((float)temp, prev, alpha); filteredi = prev; // 保存滤波后的值