如图,看到很多关于3个数取中的程序,感觉都有点复杂,不满足本人简单复制黏贴的需要,
所以整理了一个看上去最简明的函数,部分类型,直接定义如下:
#define mid3v(a,b,c) (a>b? (a<c? a:(a>c? b:c)):(b<c? b:(b>c? a:c)))
将需要取中的三个值分别付给a、b、c,
调用时只需 Ymid = mid3v(a,b,c)即可。
关键是只有一行代码,便于复制黏贴,
常用于简单快速采样3次取中,然后再加上简单的LAG惯性滤波,即可消除大部分的随机干扰。
注意:a + b = 1 。LAG计算如下:
Yout = a*x + b*Y0 ;
Y0 = Yout ;
end;