我有以下信号:
我正在尝试计算一个频谱图算法,但是,我认为我做得不对..
我计算了以下内容:
1)STFT(大小256,重叠128) 2)使用以下命令计算日志:'10 * log10(sqrt(re * re + im + im)
这是我得到的结果:
但是当我在Python中使用pylab
时(对于相同的信号):
x = pl.specgram(signal)
我得到以下结果:
使用matplotlib
我得到以下内容:
显然,这些是非常不同的结果。我不知道为什么我会得到这些,我是信号处理和频谱图的新手。希望有人可以提供帮助
编辑:
这是Python代码。
def wavToSpec(wavefile,log=False,norm=False):
wavArr,wavParams = wavToArr(wavefile)
print wavParams
return mlab.specgram(wavArr,
NFFT=256,Fs=wavParams[2],window=mlab.window_hanning,noverlap=128)
p, freqs, bins = wavToSpec("test.wav")
pylab.plot(p);
pylab.show()