c语言编写均值滤波器
时间: 2023-07-09 17:11:39 浏览: 58
以下是C语言编写的均值滤波器示例代码:
```c
#include <stdio.h>
#define N 5 // 滤波器大小
int main()
{
int signal[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 原始信号
int filtered_signal[10]; // 滤波后的信号
int i, j;
int sum;
// 进行滤波
for (i = 0; i < 10; i++)
{
sum = 0;
for (j = i - N / 2; j <= i + N / 2; j++)
{
if (j >= 0 && j < 10)
{
sum += signal[j];
}
}
filtered_signal[i] = sum / N;
}
// 输出滤波后的信号
for (i = 0; i < 10; i++)
{
printf("%d ", filtered_signal[i]);
}
printf("\n");
return 0;
}
```
在该示例代码中,我们定义了一个大小为5的滤波器,并使用一个长度为10的原始信号进行滤波。滤波器的计算方式为:对于每个信号点,将它周围的N个信号点(包括它自己)相加,并求平均值作为滤波后的信号点。在实际应用中,可以根据需要调整滤波器的大小和计算方式。
相关推荐
![](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)
![](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)