从原始wav音频中获取信号的正负分量
我在看一个StackOverflow的帖子:
根据回答,数字信号会有一个正的部分和一个负的部分。所以我想把这个和一个非常基础的WAV音频文件联系起来。
我正在用Python读取一个WAV音频文件的所有帧。我使用的代码如下:
import wave
import sys
ip = wave.open(sys.argv[1], 'r')
print ip.getparams()
for i in range(ip.getnframes()):
iframe = ip.readframes(1)
print iframe.encode('hex') , ' >>> ',int(iframe.encode('hex'), 16)
ip.close()
'''
Output :
C:\>python readframe.py test.wav
(1, 2, 44100, 176400, 'NONE', 'not compressed')
0000 >>> 0
0204 >>> 516
0008 >>> 8
f70b >>> 63243
e10f >>> 57615
bb13 >>> 47891
8217 >>> 33303
311b >>> 12571
c41e >>> 50206
3922 >>> 14626
8b25 >>> 35621
b728 >>> 46888
bb2b >>> 47915
922e >>> 37422
3b31 >>> 15153
b233 >>> 45619
f535 >>> 62773
'''
我的问题是,如何从每一帧的数据中获取WAV音频的正负部分呢?
提前谢谢你,
1 个回答
1
如果一个数比32767大,我们需要从2的16次方(也就是65536)中减去这个数,才能把它转成负数。这是因为我们在用16位的补码表示法来表示负数。