用C语言写一个平均滤波函数
时间: 2023-12-29 10:07:41 浏览: 101
基于C与arduino的算术平均滤波法设计与实现
下面是一个简单的平均滤波函数的C语言实现,其中n为滤波器窗口大小,data为输入数据,filtered为输出数据:
```
void averageFilter(int n, int* data, int* filtered) {
int i, j, sum;
for (i = 0; i < n; i++) {
sum = 0;
for (j = -n/2; j <= n/2; j++) {
if (i+j >= 0 && i+j < n) {
sum += data[i+j];
}
}
filtered[i] = sum / n;
}
}
```
该函数将输入数据data中每个点的前后n/2个点的平均值作为该点的输出,即实现了一个窗口大小为n的平均滤波器。注意该函数没有做边缘处理,即在输入数据边缘处可能会出现输出数据不准确的情况。如果需要更复杂的滤波器,可以参考数字信号处理相关的文献。
阅读全文