【ADC采集相关滤波算法】

ADC采集相关滤波算法

1、一阶互补滤波

一阶互补滤波

方法:取a=0~1,本次滤波结果=(1-a)本次采样值+a上次滤波结果
优点:对周期性干扰具有良好的抑制作用适用于波动频率较高的场合
缺点:相位滞后,灵敏度低滞后程度取决于a值大小不能消除滤波频率高于采样频率的1/2的干扰信号

代码如下:

//一阶互补滤波
int firstOrderFilter(int newValue, int oldValue, float a)
{
	return a * newValue + (1-a) * oldValue;
}

ADC_value=HAL_ADC_GetValue(&hadc1);			//获取ADC1的数值
//主函数
while(1){
	HAL_ADC_Start(&hadc1);						//开启ADC1,放置在while循环中
	Filtering_Value = firstOrderFilter(HAL_ADC_GetValue(&hadc1),ADC_value,0.3);    //滤波算法
	HAL_Delay(10);								//延迟函数,防止采样失效
	printf("ADC_value:%d\n", ADC_value);
}
    //一阶互补滤波
	int firstOrderFilter(int newValue, int oldValue, float a)
	{
		return a * newValue + (1-a) * oldValue;
	}
 
	ADC_value=HAL_ADC_GetValue(&hadc1);			//获取ADC1的数值
	//主函数
	while(1){
    	HAL_ADC_Start(&hadc1);						//开启ADC1,放置在while循环中
    	Filtering_Value = firstOrderFilter(HAL_ADC_GetValue(&hadc1),ADC_value,0.3);    //滤波算法
		HAL_Delay(10);								//延迟函数,防止采样失效
		printf("ADC_value:%d\n", ADC_value);
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cl°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值