基于hamming窗的fir滤波器c语言
时间: 2023-08-10 15:00:36 浏览: 116
基于C语言的FIR滤波器
4星 · 用户满意度95%
使用C语言编写基于Hamming窗的FIR滤波器可以按照以下步骤进行:
1. 首先,定义输入信号的长度和输出信号的长度,以及滤波器的阶数(即滤波器系数的个数)。
例如,假设输入信号为x[n],长度为N,输出信号为y[n],长度为M,滤波器的阶数为L。
2. 接下来,定义一个长度为N的输入信号数组x[]和一个长度为L的滤波器系数数组h[]。
初始化输入信号数组和滤波器系数数组,并且把滤波器系数数组用Hamming窗函数进行赋值。
Hamming窗函数的公式可以用以下C代码表示:
```c
for (int n = 0; n < L; n++) {
h[n] = 0.54 - 0.46 * cos(2 * PI * n / (L - 1));
}
```
3. 定义一个长度为M的输出信号数组y[],并初始化其所有元素为0。
这个数组将用于存储滤波后的信号。
4. 使用循环结构计算输出信号数组y[]。
根据FIR滤波器的离散时间卷积公式,可以使用以下的C代码进行计算:
```c
for (int n = 0; n < M; n++) {
for (int k = 0; k < L; k++) {
if (n - k >= 0) {
y[n] += x[n - k] * h[k];
}
}
}
```
5. 最后,输出滤波后的信号数组y[],即为滤波器的输出信号。
以上是使用C语言编写基于Hamming窗的FIR滤波器的一种方式,可以根据具体的需求进行适当的修改和优化。
阅读全文