我正在使用MATLAB来处理一些频谱图。我对这种事情是陌生的,更多的是CS背景而不是信号背景,因此我不确定这里缺少什么,尽管可能看起来很基本。

我正在尝试计算光谱差异,从概念上讲,我非常确定我能够理解。我有一个信号,可以使用MATLAB的spectrogram()函数对其进行SFT。然后,我尝试遍历整个信号的频谱图,并在每个采样点上通过遍历每个频率的功率并相减来计算与上一个点的差。我以为我没有这个概念,但是当我尝试运行它时,我意识到当我写“MySpectrogram(n,k)”时返回的点是复数,或者至少是这样。它们形成为使得数字的第一部分为负,然后在其后有+ Coefficient * I(-.07 + 0.0061i)。我试图对这些结果求平方。对它们进行平方后,它们仍然显示为复数。现在我完全迷路了。有人可以解释发生了什么吗?

我叫s =频谱图(x,window,noverlap,nfft)。

最佳答案

这是spectrogram的文档

如果需要访问功率谱,请使用以下命令:

[s,f,t,ps] = spectrogram(x,window,noverlap,f,fs)

10-08 00:48