从原始 wav 音频中获取信号的正负分量

Posted

技术标签:

【中文标题】从原始 wav 音频中获取信号的正负分量【英文标题】:Getting positive and negative component of a signal from raw wav audio 【发布时间】:2014-04-01 09:58:38 【问题描述】:

我正在阅读这篇 *** 帖子:

How is audio represented with numbers?

根据答案,数字信号将具有一个 +ve 分量和一个负分量。所以我试图将它与一个非常基本的 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 音频的正负分量..??

提前致谢,

【问题讨论】:

可能重复:How to read *.wav file in Python? 【参考方案1】:

大于 32767 的值需要从 2^16 中减去,才能将其负值从 16 位 2 补码有符号表示转换。

【讨论】:

感谢您的回复.. 2^16 = 65536 的意义是什么?? 得到了我的答案...matrixmultimedia.com/wiki/…参考

以上是关于从原始 wav 音频中获取信号的正负分量的主要内容,如果未能解决你的问题,请参考以下文章

Matlab 音频信号处理

.wav 信号的音频分离

如何从 wav 文件中获取原始音频?

在matlab中提取具有多个频率分量的信号

音频信号处理

在matlab中提取具有多个频率分量的信号