一阶低通滤波器代码分享
传感器返回的数据里面有用数据的频率都比较滴,而噪声信号的频率普遍都 比较高。所以可以通过设计一个低通滤波器来对数据进行滤波。#ifndef _LPF_FIRST_ORDER_H
#define _LPF_FIRST_ORDER_H
typedef struct _lpf_first_order
{
float fc; // cut-off frequency
float uk;
float alpha; // filter coefficient
float T; // samping period
}LpfFirstOderObj;
void lpf_first_order_init(LpfFirstOderObj *filter, float alpha);
float lpf_first_order(LpfFirstOderObj *filter, float k);
void lpf_first_order_fc_set(LpfFirstOderObj *filter, float fc, float T);
#endif
#include "lpf_first_order.h"
#define LPF_PI3.1415926
void lpf_first_order_init(LpfFirstOderObj *filter, float alpha)
{
filter->alpha = alpha;
filter->fc = 0;
filter->T = 0;
filter->uk = 0;
}
float lpf_first_order(LpfFirstOderObj *filter, float k)
{
float uo;
uo = filter->alpha * k + (1 - filter->alpha) * filter->uk;
filter->uk = uo;
return uo;
}
void lpf_first_order_fc_set(LpfFirstOderObj *filter, float fc, float T)
{
filter->fc = fc;
filter->T = T;
filter->alpha = (2 * LPF_PI * fc * T) / (1 + 2 * LPF_PI * fc * T);
}
如何用c语言实现截止频率为200hz的巴特沃斯低通滤波器 离散的数据序列如何进行低通滤波? 在FPGA里面做滤波器很好 一阶rc低通滤波器公式是什么? RC低通滤波,取相同的截止频率,用不同的R、C值有什么差别? 求用C语言实现一个FIR数字低通滤波 求一个卡尔曼滤波用C语言实现 y=x*wc/(s+wc)这个一阶低通滤波器用c语言代码如何实现呢? 二阶滤波器用C语言怎么写? 如何用C语言来实现数字滤波器? 软件如何实现低通数字滤波器? 求一个卡尔曼滤波用C语言实现
页:
[1]