将带通滤波器应用于swift中的浮点数组

时间:2017-10-08 17:59:04

标签: ios swift filter

我现在已经有一段时间了。对于iOS应用程序,我正在使用设备的麦克风录制一些音频。我后来尝试评估录音。我使用SciPy在Python中完成了所有工作并且它非常好用。我使用了SciPy的butterworth过滤器实现。

但是当我试图将我的代码翻译成Swift时,我无法找到一种将带通滤波器应用于我的浮点数组的好方法。

有没有人可以引导我进入正确的方向,或者您是否已完成代码示例?我需要一个频率范围为1100到2100 Hz的带通滤波器。

1 个答案:

答案 0 :(得分:2)

对于今后任何访客来说,这是解决方案:

https://github.com/bartolsthoorn/NVDSP
感谢答案,这个图书馆解决了它 我不得不为Swift创建一个桥接头,但这不是什么大问题。最终代码如下所示。

let bandpass: NVBandpassFilter = NVBandpassFilter(samplingRate: fs)
bandpass.centerFrequency = 1600.0
bandpass.q = 1.6
bandpass.filterData(&DATA, numFrames: nsamples, numChannels: 1)

Q值可以这样计算:

Q = center_frequency / (top_frequency - bottom_frequency)