用C代码编写移动平均滤波有主函数
时间: 2023-09-25 14:13:07 浏览: 30
好的,这里给出一个具有主函数的完整示例代码:
```c
#include <stdio.h>
#define N 10 // 移动平均滤波器的窗口大小
#define LEN 20 // 采样值序列的长度
void MovingAverageFilter(int* data, int len);
int main() {
int data[LEN] = { 10, 12, 13, 11, 15, 14, 13, 16, 12, 11,
10, 12, 13, 11, 15, 14, 13, 16, 12, 11 };
printf("Original data:\n");
for (int i = 0; i < LEN; i++) {
printf("%d ", data[i]);
}
printf("\n");
MovingAverageFilter(data, LEN);
printf("Filtered data:\n");
for (int i = 0; i < LEN; i++) {
printf("%d ", data[i]);
}
printf("\n");
return 0;
}
void MovingAverageFilter(int* data, int len) {
int buffer[N]; // 存储最近 N 个采样值的缓冲区
int sum = 0;
int i, j;
// 初始化缓冲区
for (i = 0; i < N; i++) {
buffer[i] = data[0];
}
// 对每个采样值进行滤波
for (i = 0; i < len; i++) {
// 将新的采样值加入缓冲区
for (j = 0; j < N - 1; j++) {
buffer[j] = buffer[j + 1];
}
buffer[N - 1] = data[i];
// 计算缓冲区中所有采样值的平均值
sum = 0;
for (j = 0; j < N; j++) {
sum += buffer[j];
}
data[i] = sum / N;
}
}
```
以上代码定义了一个长度为 20 的采样值序列,然后将它送入移动平均滤波器中进行滤波。运行程序后,可以看到原始数据和滤波后的数据分别被输出。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)