c 语言 滑动滤波代码
时间: 2024-09-26 09:14:38 浏览: 38
TIA博途SCL语言_滑动平均值滤波算法_FB库文件.rar
5星 · 资源好评率100%
滑动滤波是一种常见的数字信号处理技术,用于平滑数据并减少噪声。在C语言中,我们通常会使用数组和循环结构来实现简单的滑动窗口平均滤波算法。这里是一个基本示例,假设我们要对一维数组进行线性加权平均滤波:
```c
#include <stdio.h>
#include <stdlib.h>
#define FILTER_SIZE 5 // 窗口大小
// 滤波函数,计算给定索引i处的数据
double sliding_filter(int *data, int len, int i) {
double sum = 0;
for (int j = max(0, i - FILTER_SIZE + 1); j <= min(i, len - FILTER_SIZE); j++) {
sum += data[j];
}
return sum / FILTER_SIZE; // 平均值
}
int main() {
int data[] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; // 示例数据
int len = sizeof(data) / sizeof(data[0]);
int window_len = FILTER_SIZE;
for (int i = 0; i < len - window_len + 1; i++) {
printf("Filtered value at index %d: %.2f\n", i, sliding_filter(data, len, i));
}
return 0;
}
```
在这个例子中,`sliding_filter`函数接收输入数据数组、数据长度以及当前处理位置i。它遍历窗口内的数据元素,计算总和并除以窗口大小得到滑动平均值。
阅读全文