FIR滤波的C语言示例代码
时间: 2023-09-13 12:08:08 浏览: 50
以下是FIR滤波的C语言示例代码:
```c
#include <stdio.h>
#define N 20 /* 滤波器长度 */
#define M 10 /* 输入信号长度 */
double h[N] = {0.2, 0.3, 0.5, 0.1, 0.3, 0.7, 0.2, 0.1, 0.5, 0.4, 0.6, 0.8, 0.5, 0.2, 0.3, 0.7, 0.9, 0.6, 0.3, 0.2}; /* FIR滤波器系数 */
double x[M] = {0.9, 0.8, 0.6, 0.3, 0.2, 0.1, 0.4, 0.6, 0.7, 0.8}; /* 输入信号 */
double y[M + N - 1] = {0}; /* 输出信号 */
int main()
{
int i, j;
for (i = 0; i < M + N - 1; ++i)
{
for (j = 0; j < N; ++j)
{
if (i >= j && i - j < M)
{
y[i] += h[j] * x[i - j];
}
}
}
for (i = 0; i < M + N - 1; ++i)
{
printf("%.2f ", y[i]); /* 输出结果 */
}
printf("\n");
return 0;
}
```
希望这段代码能对您有所帮助!