滑动窗口滤波算法C代码实现
时间: 2023-11-07 13:05:53 浏览: 190
滑动窗口滤波算法是一种常用的信号处理方法,可以用于平滑信号或去除噪声。下面是一个示例的C代码实现:
```c
#include <stdio.h>
#define WINDOW_SIZE 8
float sliding_window_filter(float data[], int index) {
float sum = 0.0;
int i;
// 计算窗口内数据的和
for (i = index; i < index + WINDOW_SIZE; i++) {
sum += data[i];
}
// 返回窗口内数据的平均值
return sum / WINDOW_SIZE;
}
int main() {
float data[] = {1.2, 2.3, 3.4, 4.5, 5.6, 6.7, 7.8, 8.9, 9.0, 10.1};
int num_data = sizeof(data) / sizeof(data[0]);
int i;
// 对每个数据应用滑动窗口滤波算法
for (i = 0; i < num_data - WINDOW_SIZE + 1; i++) {
float filtered_data = sliding_window_filter(data, i);
printf("Filtered data at index %d: %f\n", i, filtered_data);
}
return 0;
}
```
这段代码中,`data`数组存储了原始数据,`WINDOW_SIZE`定义了滑动窗口的大小。`sliding_window_filter`函数接受一个数据数组和一个索引作为参数,计算该索引处滑动窗口内数据的平均值并返回。
在`main`函数中,遍历数据数组的每个索引,调用`sliding_window_filter`函数进行滤波处理,并输出滤波后的结果。
希望这个示例能帮助到你!如果还有其他问题,请继续提问。
阅读全文