我必须阅读.mat文件并绘制其频谱图。当我从文件中读取内容时,会得到字典,然后将其转换为列表。转换是通过简单的for循环完成的(如代码所示)。 signal.stft函数中出现错误,该错误以“ ValueError:使用序列设置数组元素”。所以我错过了什么,有人可以帮助我编写这段代码。
Fs = 8000
dtmf = sio.loadmat('dtmf1.mat')
dictlist = []
for key, value in dtmf.items():
temp = [key,value]
dictlist.append(temp)
f1, t1, Zxx1 = signal.stft(dictlist, Fs, nperseg=512,
window=signal.hamming(512),
noverlap=512, boundary='even')
plt.figure()
plt.pcolormesh(t1, f1, 20*np.log10(np.abs(Zxx1)))
plt.xlabel('Time [s]')
plt.ylabel('Freq [Hz]')$
答案 0 :(得分:0)
我应该做的是
dictlist = dtmf['dtmf1']
代替
for key, value in dtmf.items():
temp = [key,value]
dictlist.append(temp)
因为在我的应用程序字典中有冗余键(“ dtmf1”以外的所有键)。
无论如何,非常感谢âńōŋŷXmoůŜ和balderman。