PCM编码的WAV文件中的PCM数据是如何计算得出的

tongg 2008-11-18 06:03:26
用软件生成的一个PCM编码的WAV的声音波形文件.参数: 频率:1000Hz ; 幅值:1 ; 采样率: 8000 ; 采样位数:16 单通道

得到的WAV文件用"UltraEdit-32"读取出的数据如下(开头部分):

*******************************************

5249 4646 307D 0000 5741 5645 666D 7420
1000 0000 0100 0100 401F 0000 803E 0000
0200 1000 6661 6374 0400 0000 0000 0000
6461 7461 007D 0000
0000 1264 C97C 8937
77C8 3783 EE9B 0000 0000 1264 C97C 8937
77C8 3783 EE9B 0000 0000 1264 C97C 8937
77C8 3783 EE9B 0000 0000 1264 C97C 8937
77C8 3783 EE9B 0000 0000 1264 C97C 8937
77C8 3783 EE9B 0000

*******************************************
说明:上面的数据中:第一部分为WAV的头,后面的为采集的数据.

WAV的头数据的各部分含义我已经弄清楚了,需要了解的请见: http://www.vihome.net/bbs/viewthread.php?tid=11147&extra=page%3D1

关键是后面的数据是如何编码的?

数据说明:一个周期是取8个点,从WAV文件对应读出的数据为:
0000 1264 C97C 8937 77C8 3783 EE9B 0000

说明两个字节对应一个点的数据(高低位互换后,如:1264(存储时的样子),实际数值为:6412(16进制),他们对应的10进制浮点数如下:
0 0.781831482452 0.9749279121932 0.4338837391869 -0.4338837390251 -0.9749279121533 -0.781831482564 -1.79586368671E-10

如: 0.781831482452(10进制浮点数) 对应: 6412(16进制数)
问:
1 是如何编码实现上面的转换的?
2 如何从16进制数得到对应的浮点数?(解码)
3 如何从浮点数得到对应的16进制数?(编码)





...全文
1038 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liahoo 2011-07-12
  • 打赏
  • 举报
回复
首先都是整数。
另外根据周期和声道数决定左右左右还是单一。再具体就是FFT。。。大该就是这样。
tongg 2008-11-24
  • 打赏
  • 举报
回复
???

没人知道吗?
android2008 2008-11-21
  • 打赏
  • 举报
回复
mark
「已注销」 2008-11-21
  • 打赏
  • 举报
回复
那些浮点数你是怎样的来的?本身pcm数据和浮点无关
ttongg 2008-11-20
  • 打赏
  • 举报
回复
如何计算呢?
「已注销」 2008-11-19
  • 打赏
  • 举报
回复
都是short类型吧,跟浮点没关系

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧