我试图加载波形文件并使用傅立叶变换打印其频谱。我遵循了我找到的书并从那里得到了一些代码,但是结果有点不同。
File "/anaconda3/lib/python3.7/json/__init__.py", line 296, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "/anaconda3/lib/python3.7/json/__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "/anaconda3/lib/python3.7/json/decoder.py", line 340, in decode
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 366)
但是我得到的频谱看起来像这样,看起来不正确,有什么帮助吗?
答案 0 :(得分:1)
在 f = 0处有一个巨大的峰值,表明信号具有恒定的偏移量。
这可能与使用无符号整数类型有关
dtype_map={1:np.uint8,2:np.uint16}
尝试使用带符号的类型,或者从信号中减去平均值以消除偏移。
答案 1 :(得分:1)
存储在WAVE文件中的无符号8位样本的范围为0到255,因此具有DC偏移。您的FFT在一开始就显示此DC偏移具有巨大的尖峰。从每个样本中减去DC偏移(应为128,或由于记录错误而导致的某个值在128左右),将从FFT中消除巨大的DC偏移尖峰,并允许图自动缩放以更好地显示其他频率段。
WAVE文件中的16位样本为带符号整数格式,因此将其读取为无符号值可能会破坏数据。