在Julia中实现STFT(短时傅立叶变换)的最佳方法是什么?

时间:2016-05-16 13:37:53

标签: fft julia

所以,我想知道如何在Julia中实现STFT,可能使用Hamming窗口。我在网上找不到任何东西。

最好的方法是什么?我不想使用Python库,但如果可能的话,不要使用纯粹的原生Julia。也许这是Juila的一个特色......?

谢谢!

1 个答案:

答案 0 :(得分:4)

我不知道Julia中有任何原生的STFT实现。正如大卫在评论中所说,你必须自己实施。这很简单:

1)将您的信号分解为短时间段

2)应用你选择的窗口(在你的情况下,汉明)

3)使用Julia的fft函数进行FFT。

以上所有都是相当标准的数学运算,你会在网上找到很多参考资料。下面的代码会生成一个Hamming窗口,如果你还没有这个窗口(在使用在线参考时请注意Julia' 1-indexing,因为很多信号处理参考资料都喜欢使用{{1在描述窗口生成时)。

0-indexing

你也可以使用DSP.jl的汉明窗函数。

P.S如果你在OS X上运行Julia,请查看Julia interface到Apple的Accelerate框架。这提供了一个非常快速的汉明窗口实现,以及可能有用的卷积和元素乘法函数。