1 Star 3 Fork 2

luoqi/qfoc

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
lpf_1st.c 1.24 KB
一键复制 编辑 原始数据 按行查看 历史
/*
* @Author: luoqi
* @Date: 2022-03-16 09:27:04
* @Last Modified by: luoqi
* @Last Modified time: 2022-11-29 09:54:57
*/
#include "lpf_1st.h"
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
int lpf_1st_init(Lpf1stObj *filter, qfp_t fc, qfp_t fs)
{
if (!filter || fs <= 0) {
return -1;
}
qfp_t ts = 1.0f / fs;
filter->alpha = (2 * M_PI * ts * fc) / (1 + 2 * M_PI * ts * fc);
filter->fc = fc;
filter->ts = ts;
filter->y_k1 = 0;
return 0;
}
int lpf_1st_fc_set(Lpf1stObj *filter, qfp_t fc)
{
if (!filter || filter->ts <= 0) {
return -1;
}
filter->alpha = (2 * M_PI * filter->ts * fc) / (1 + 2 * M_PI * filter->ts * fc);
filter->fc = fc;
return 0;
}
qfp_t lpf_1st_calc(Lpf1stObj *filter, qfp_t uk)
{
if(!filter) {
return 0;
}
qfp_t y_k = filter->alpha * uk + (1 - filter->alpha) * filter->y_k1;
filter->y_k1 = y_k;
return y_k;
}
qfp_t lpf_1st_kcalc(Lpf1stObj *filter, qfp_t uk, qfp_t fs)
{
if(!filter || fs <= 0) {
return 0;
}
qfp_t ts = 1.0f / fs;
qfp_t alpha = (2 * M_PI * ts * filter->fc) / (1 + 2 * M_PI * ts * filter->fc);
qfp_t y_k = alpha * uk + (1 - alpha) * filter->y_k1;
filter->y_k1 = y_k;
return y_k;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/logeexpluoqi/qfoc.git
git@gitee.com:logeexpluoqi/qfoc.git
logeexpluoqi
qfoc
qfoc
main

搜索帮助