Visual Studio实现C语言均值滤波一组数据
时间: 2024-01-18 15:03:30 浏览: 29
好的,以下是基于Visual Studio的C语言均值滤波一组数据的实现:
```c
#include <stdio.h>
#define N 10 // 数据长度
#define M 3 // 滤波器长度
float data[N] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0}; // 待滤波的数据
// 均值滤波函数
void mean_filter(float *input, float *output, int n, int m)
{
int i, j;
float sum;
for (i = 0; i < n; i++) {
sum = 0.0;
for (j = 0; j < m; j++) {
if (i - j >= 0 && i - j < n) {
sum += input[i - j];
}
}
output[i] = sum / m; // 滤波后的结果
}
}
int main()
{
float filtered_data[N]; // 存储滤波后的数据
int i;
mean_filter(data, filtered_data, N, M);
// 输出滤波前后的数据
printf("Original data: ");
for (i = 0; i < N; i++) {
printf("%.1f ", data[i]);
}
printf("\n");
printf("Filtered data: ");
for (i = 0; i < N; i++) {
printf("%.1f ", filtered_data[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
Original data: 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0
Filtered data: 1.3 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 9.7
```
注意:上述代码中的滤波器长度M应该为奇数,否则需要在函数中进行判断。