Answers:
时间与频率分辨率是一个众所周知的问题,确实有解决方法。对于音频信号,一些常用的技术包括:参数化方法;自适应分辨率(使用各种时间/频率配置进行分析,并将结果拼凑在一起-Wen X.和M. Sandler,“使用多重傅立叶变换的复合频谱图”);基于过度完备基的小波/分解; 并使用相位信息来提取频率峰值(IFgram)的精确位置。
但是,您显示的图形似乎没有使用其中的某些技术;所以我怀疑这不是您想要的。横轴上似乎有一些“污点”(例如,在t = 1.2s处),这肯定表明分析是在块之间有高度重叠的情况下完成的。
实际上,如果允许帧重叠,则块持续时间和每秒的分析帧数不必相互链接。因此,如果要使用40ms长的分析框架,则网格不必是:
框架1:t = 0..t = 40ms; 框架2:t = 40ms..t = 80ms
可能是:
框架1:t = 0..t = 40ms; 框架2:t = 10ms..t = 50ms
这种重叠可以在不减小FFT窗口大小的情况下给出更高的时间分辨率。请注意,这只能帮助在时间轴上准确定位事件-不能帮助解决两个时间上接近的事件...就像增加FFT大小可能有助于识别频率峰值的位置一样,但不能帮助确定频率峰值的位置。两个相邻频率峰值的分辨率。
是的,很多人都在进行时频分析。
“将我的数据切成块,对每个块执行FFT”的方法是一个好主意。在执行FFT之前,在每个块上应用“窗口函数”有助于避免许多伪像。允许块重叠也有帮助。经过这些调整后,您将获得Gabor变换,它似乎是最受欢迎的短时傅立叶变换(STFT)。
正如您已经指出的那样,正如Wikipedia文章所指出的那样,所有短时傅立叶变换技术都需要权衡:
这是一个著名的问题,但是,不仅没有解决它,而且还证明了两者之间的不确定性是不可避免的-Gabor极限,Heisenberg-Gabor极限,不确定性原理等。
如果您是我,我将从许多现成的库中的一个开始计算Gabor变换,然后尝试将时间序列切成各种长度。您很幸运会很幸运,最终您将获得一定的长度,可以提供足够的时间定位和足够的频率辨别力。
如果这不适用于该应用程序,那么我将继续使用其他方法进行时频表示和时频分析 -小波变换,chirplet变换,分数阶傅里叶变换(FRFT)等。
图像到频谱图的方向与上述实用程序相反。