单片机数字滤波算法如何实现?(附代码)
扫描二维码
随时随地手机看文章
关注、星标公众号
,
直达精彩内容
ID:技术让梦想更伟大
整理:李肖遥
数字滤波无需其他的硬件成本,只用一个计算过程,可靠性高,不存在阻抗匹配问题。尤其是数字滤波可以对频率很低的信号进行滤波,这是模拟滤波器做不到的。
数字滤波使用软件算法实现,多输入通道可共用一个滤波程序,降低系统开支。
只要适当改变滤波器的滤波程序或运算,就能方便地改变其滤波特性,这对于滤除低频干扰和随机信号会有较大的效果。
在单片机系统中常用的滤波算法有限幅滤波法、中值滤波法、算术平均滤波法、加权平均滤波法、滑动平均滤波等。
限幅滤波算法
1#define A
//允许的最大差值
2
3char data;
//上一次的数据
4
5char filter()
6
7{
8
9
char
datanew;
//新数据变量
10
11 datanew=get_data();
//获得新数据变量
12
13
if((datanew-
data)>A||(
data-datanew>A))
14
15
return
data;
16
17
else
18
19
return
datanew;
20
21}
中值滤波算法
1
#define N 11 //定义获得的数据个数
2 3
char filter()
4
5
{
6 7
char value_buff[N];
//定义存储数据的数组
8 9
char
count,i,j,temp;
1011
for
(count=
0
;count
1213
{
1415
value_buf[count]=get_data();
1617
delay();
//如果采集数据比较慢,那么就需要延时或中断
1819
}
2021
for
(j=
0
;j
2223
{
2425
if
(value_buff[i]>value_buff[i+
1
])
2627
{
2829
temp=value_buff[i];
3031
value_buff[i]=value_buff[i+
1
];
3233
value_buff[i+
1
]=temp;
3435
}
3637
}
3839
return value_buff[(N
-1
)/
2
];
4041
}
算术平均滤波算法
1
char filter()
2
3{
4
5
int sum=
0;
6
7
for(count=
0;count
8
9 {
10
11 sum+=get_data();
12
13 delay():
14
15 }
16
17
return (
char)(sum/N);
18
19}
加权平均滤波算法
1char codej
q[N]={
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12};
//code数组为加权系数表,存在程序存储区
2
3char codesum_jq=
1+
2+
3+
4+
5+
6+
7+
8+
9+
10+
11+
12;
4
5char filter()
6
7{
8
9 char count;
10
11 char value_buff[N];
12
13
int sum=
0;
14
15
for(count=
0;count
16
17 {
18
19 value_buff[count]=get_data();
20
21 delay();
22
23 }
24
25
for(count=
0;count
26
27 sum+=value_buff[count]*j
q[count];
28
29
return (char)(sum/sum_jq);
30
31}
滑动平均滤波算法
1
char value_buff[N];
2
3
char i=
0;
4
5
char filter()
6
7{
8
9
char count;
10
11
int sum=
0;
12
13 value_buff[i++]=get_data();
14
15
if(i==N)
16
17 i=
0;
18
19
for(count=
0;count
20
21 sum=value_buff[count];
22
23
return (
char)(sum/N);
24
25}
低通滤波
1Yn=a* Xn+(1-a) *Yn-1
2
3式中 Xn——本次采样值
4
5Yn-1——上次的滤波输出值;
6
7a——滤波系数,其值通常远小于1;
8
9Yn——本次滤波的输出值。
1fL=a/2Pit pi为圆周率3.14…
2
3式中 a——滤波系数;
4
5t——采样间隔时间;
6
7例如:当t=0.5s(即每秒2次),a=1/32时;
8
9fL=(1/32)/(2*3.14*0.5)=0.01Hz
往期好文合集
最 后
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!





