所以,我想知道如何在Julia中实现STFT,可能使用Hamming窗口。我在网上找不到任何东西。
最好的方法是什么?我不想使用Python库,但如果可能的话,不要使用纯粹的原生Julia。也许这是Juila的一个特色......?
谢谢!
答案 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框架。这提供了一个非常快速的汉明窗口实现,以及可能有用的卷积和元素乘法函数。