滑动滤波算法c语言实现
时间: 2023-08-17 17:26:06 浏览: 213
c代码-滑动滤波C语言实现
5星 · 资源好评率100%
滑动滤波算法是一种常用的数字信号处理方法,可以用来平滑信号并去除其中的噪声。以下是一个简单的C语言实现:
```c
#define WINDOW_SIZE 5 // 窗口大小
float sliding_filter(float new_data)
{
static float window[WINDOW_SIZE]; // 窗口数组
static int index = 0; // 窗口当前位置
float sum = 0.0f;
int i;
// 将新数据加入窗口
window[index++] = new_data;
// 如果窗口已满,计算平均值并将窗口往前移动
if (index >= WINDOW_SIZE) {
for (i = 0; i < WINDOW_SIZE; i++) {
sum += window[i];
}
index = 0;
return sum / WINDOW_SIZE;
}
// 如果窗口未满,返回当前数据
else {
return new_data;
}
}
```
在该实现中,我们使用一个静态数组来存储窗口中的数据,并使用一个静态变量来记录当前窗口位置。每次有新数据加入窗口时,我们将其存入数组中并将窗口位置往后移动。当窗口已满时,我们计算窗口中所有数据的平均值,将窗口位置重置为0,并返回平均值作为当前滤波结果。如果窗口未满,则直接返回当前数据。
阅读全文