看到一段这样的平均滤波算法 没看明白。
Sum 是静态变量。
Sum = (Sum * 127) >> 7 + 滤波前的值 << 3 ;
滤波后的值 = (Sum >> 10) + ((Sum >> 9) & 1);
Sum 是静态变量。
Sum = (Sum * 127) >> 7 + 滤波前的值 << 3 ;
滤波后的值 = (Sum >> 10) + ((Sum >> 9) & 1);
1
misdake Mar 21, 2022 翻译一下两个式子
sum = sum * 127/128 + input * 8 output = round(sum / 1024) 第二个式子可以看出 sum 是当前平均值的 1024 倍 sum / 1024 = (sum * 127 + input * 1) * 8 / 1024 第一个式子可以看出每次迭代中旧值和新值的比例为 127:1 |