1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
C语言代码(本代码仅供学习参考使用,还需要优化,才能实现图片中的效果)
代码中使用的Q值和R值滤波收敛速度慢,滤波效果较为滞后,需要对代码进行修改后方可使用,修改后的效果如第二张和第三张图片所显示的那样。 unsigned long kalman_filter(unsigned long ADC_Value){ float x_k1_k1,x_k_k1; static float ADC_OLD_Value; float Z_k; static float P_k1_k1; static float Q = 0.0003; static float R = 5; static float Kg = 0; static float P_k_k1 = 1; float kalman_adc; static float kalman_adc_old=0; Z_k = ADC_Value; x_k1_k1 = kalman_adc_old; x_k_k1 = x_k1_k1; P_k_k1 = P_k1_k1 + Q; Kg = P_k_k1/(P_k_k1 + R); kalman_adc = x_k_k1 + Kg * (Z_k - kalman_adc_old); P_k1_k1 = (1 - Kg)*P_k_k1; P_k_k1 = P_k1_k1; ADC_OLD_Value = ADC_Value; kalman_adc_old = kalman_adc; return get_int_num(kalman_adc);}滤波效果(CS5532 24高精度ADC采样芯片) 图1(蓝线为ADC采样原值,红线为滤波后的结果)
|
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1348 浏览 0 评论
2111 浏览 0 评论
7991 浏览 0 评论
写了一个用DMA读取ADC数据的程序,记录下整个过程和一点心得
3267 浏览 0 评论
3552 浏览 0 评论
1312浏览 0评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 22:34 , Processed in 0.533762 second(s), Total 73, Slave 54 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号