Ric*_*k T 2 matlab fft octave wavelet
我可以使用fft来获取加载的1秒音频文件的人,说"ahhhh"并重新创建它,频率,相位和幅度.我现在要做的是找出每个频率开始的位置以及它们在1秒音频文件中的结束位置并将数据放入数组中
示例:100hz从.23seconds开始到.34seconds,104.34hz从.35seconds开始,到.37seconds结束.
fft可以做到这一点还是我需要将整个程序转移到使用小波?还有八度音阶中的小波示例,说明如何做我想要完成的事情吗?
我正在使用来自repo的Ubuntu Linux 12.04和Octave 3.2.4
谢谢里克
FFT作为估算离散傅立叶变换(DFT)的算法,提供音频信号的频率内容(如您所述的幅度和相位).这将为您提供每个离散频率仓的一组幅度/相位值,您可以将其映射到连续频率值(基于bin索引或离散频率,FFT点的数量和信号的采样频率).
DFT虽然(通过FFT)是一个全局变换,即自从你移动到频域后你将失去时间的概念.您需要的是短时傅立叶变换(STFT),即信号的短时间帧(窗口)上的FFT.这将为您提供一个时频表示,您可以在其中指定每个分析窗口的频率内容,从而为每个短时间实例指定频率内容.
逼近草图:定义时间窗口长度和窗口偏移(基于所需的时间分辨率或线性采样的时间实例),运行STFT,然后在每个窗口中对傅立叶幅度进行峰值拾取或局部最大值估计.这将为您提供可以跨时间跟踪的主导频率位置(起始等)
在MATLAB中检查频谱图以获得STFT的实现以帮助您入门.