OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2996|回复: 2

软件滤波

[复制链接]

36

主题

227

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3096
金钱
3096
注册时间
2016-4-15
在线时间
350 小时
发表于 2016-4-25 15:24:39 | 显示全部楼层 |阅读模式
1金钱
我想对采集到的经过A/D的心电波形进行软件滤波,但是从来没做过,有小伙伴可以教我一下吗?

最佳答案

查看完整内容[请看2#楼]

/******************************************************************************************** 函数名:GlideValueFilter() 8次递推(滑动)平均滤波法+一阶滞后滤波法 调 用:x=GlideValueFilter() 参 数:当前ADC转换的结果值 返回值:滤波后的ADC采样值 说 明: Datah[]当前函数用来保存数据的数组,属于全局变量 Value 前一次采样的结果(全局变量) 一阶滞后滤波系数取128 Radc 本次采样的 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

507

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3347
金钱
3347
注册时间
2013-4-10
在线时间
333 小时
发表于 2016-4-25 15:24:40 | 显示全部楼层
/********************************************************************************************
函数名:GlideValueFilter() 8次递推(滑动)平均滤波法+一阶滞后滤波法
调  用:x=GlideValueFilter()
参  数:当前ADC转换的结果值
返回值:滤波后的ADC采样值
说  明: Datah[]当前函数用来保存数据的数组,属于全局变量
        Value 前一次采样的结果(全局变量)
        一阶滞后滤波系数取128
        Radc 本次采样的新数据
/*******************************************************************************************/
void GlideValueFilter(void)
     {
     unsigned int NEW_DATA,result;
     unsigned char k;
     ADC_Dat[8] = GetADCResult(0); //采样数据,放到数组的最高位
     NEW_DATA = 0;
     for(k = 0; k < 8; k++)
        {
        ADC_Dat[k]=ADC_Dat[k+1];//所有数据左移,低位去掉
        NEW_DATA += ADC_Dat[k]; //求和
        }
     NEW_DATA = NEW_DATA/8;//求平均值
     k = 200;//设备权重,A/D采样滤波系数
     if(NEW_DATA < OLD_DATA) // 如果新采样值小于前次采样值
       {
       result = OLD_DATA - NEW_DATA;
       result *= k;
       result += 128;  //+128是为了四舍五入
       result /=256;
       OLD_DATA -= result;
       }
     else{
         if(NEW_DATA > OLD_DATA) // 如果新采样值大于前次采样值
           {
           result = NEW_DATA - OLD_DATA;
           result *= k;
           result += 128;  //+128是为了四舍五入
           result /=256;
           OLD_DATA += result;
           }
         }
     }
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2016-4-25 16:57:29 | 显示全部楼层
滤波的目的是排除干扰项,滤波算法有很多,你可以百度找一下软件滤波算法
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 03:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表