ch3*_*0ke 4 c audio signal-processing fft
我正在搞乱一些音频和算法我试图实现对等式给出的带通二阶FIR滤波器的调用
H(z) = z - z^(-1)
Run Code Online (Sandbox Code Playgroud)
如何在C中实现这样的带通滤波器?
我有原始音频数据以及可用于我的音频数据的FFT,但我仍然不确定如何实现此滤波器,我也不确定该等式的含义.
在下图中,我正在尝试实施HF3:

z^-1是一个单位(一个样本)延迟,z是未来的一个样本.因此,在样本筛选器输出i取决于输入采样的i-1和i+1.(一般来说,你可以想到z^-n是一个n样本延迟.)
如果在输入缓冲区中有时域样本x[],并且想要将这些样本过滤到输出缓冲区y[],那么您将实现给定的传递函数,如下所示:
y[i] = x[i+1] - x[i-1]
Run Code Online (Sandbox Code Playgroud)
例如,在C中你可以处理N个样本的缓冲区,如下所示:
for (i = 1; i < N - 1; ++i)
{
y[i] = x[i + 1] - x[i - 1];
}
Run Code Online (Sandbox Code Playgroud)
这是一个非常简单的一阶非递归高通滤波器 - 它在+1和-1处为零,因此在DC(0)和Nyquist(Fs/2)处的幅度响应为零,并且它在Fs处达到峰值/ 4.因此它是一个非常宽的带通滤波器.