给我一个四阶的FIR滤波器的C语言程序
时间: 2023-06-02 15:06:17 浏览: 250
基于C语言的FIR滤波器
4星 · 用户满意度95%
以下是一个四阶的FIR滤波器的C语言程序:
```
#define N 4 // 滤波器阶数
float b[N+1] = {0.1, 0.2, 0.3, 0.2, 0.1}; // 系数数组
float x[N+1] = {0}; // 输入数组
float y = 0; // 输出值
float fir_filter(float input) {
int i;
y = 0;
x[0] = input;
for (i = 0; i <= N; i++) {
y += b[i] * x[N-i];
}
for (i = N; i > 0; i--) {
x[i] = x[i-1];
}
return y;
}
```
其中,`b`数组为滤波器的系数数组,`x`数组为滤波器的输入数组,`y`为滤波器的输出值。`fir_filter`函数为滤波器的处理函数,它以`input`作为输入值,返回滤波器的输出值。在函数中,首先将输入值存入数组`x`的第一个元素,然后通过循环计算输出值`y`,最后将数组`x`中的元素向右移动一个位置,以便存储下一个输入值。
阅读全文