FIR高通滤波器 C代码
时间: 2023-10-29 17:08:05 浏览: 207
FIR滤波C代码
5星 · 资源好评率100%
下面是一个FIR高通滤波器的C代码实现示例:
```c
#define N 64 // 滤波器长度
#define M (N-1)/2 // 中心点
#define PI 3.1415926 // π
float h[N]; // 滤波器系数数组
void fir_highpass(float *x, float *y, int len)
{
int i, j;
float sum;
// 生成滤波器系数
for(i = 0; i < N; i++){
if(i == M) {
h[i] = 1 - 2 * (float)(i % 2);
} else {
h[i] = -sin(2 * PI * (i - M) / N) / (PI * (i - M));
}
}
// FIR滤波
for(i = M; i < len; i++){
sum = 0;
for(j = 0; j < N; j++){
sum += h[j] * x[i-j];
}
y[i-M] = sum;
}
}
```
阅读全文