WAV格式学习

本文深入分析了WAV文件格式,包括从RIFF头开始的规范结构,详细阐述了'fmt'和'data'子块的作用。探讨了8比特与16比特样值的编码差异,并列举了WAV支持的多种音频压缩方法,如PCM、ADPCM等。此外,还介绍了如何使用MATLAB进行取样率转换,从44.1kHz转换到48kHz。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WAVE文件格式分析

WAVE文件格式是Microsoft的RIFF规范的一个子集,用于存储多媒体文件。 一个RIFF文件以一个文件头跟随一个数据块序列开头。WAVE文件通常只是一个具有单个“WAVE”块的RIFF文件,它由两个子块组成 —— 一个指定数据格式的“fmt”块和包含实际采样数据的“data”块。
这里写图片描述

这里写图片描述

规范的WAVE格式从RIFF头开始
offset size name description
0 4 ChuckID 包含ASCII格式的字母“RIFF”0x52494646
4 4 ChuckSize 36 + SubChunk2Size,或更准确地说:4 +(8 + SubChunk1Size)+(8 + SubChunk2Size)这是这个数字后面的块的其余部分的大小。这是以字节为单位减去8个字节的不包括在此计数中的两个字段(ChunkID和ChunkSize)后整个文件的大小。有图可看出,作为例子的WAV文件chuck大小为0x24F03F02。
8 4 Format 包含ASCII格式的字母“WAVE”0x57415645
WAVE格式由两个subchunks组成:“fmt”和“data”
“fmt”子块描述声音数据的格式:
offset size name description
12 4 Subchunk1ID 包含字母“fmt”(0x666d7420)
16 4 Subchunk1Size PCM编码时,这是Subchunk的其余部分的大小,字节大小为16。本例中为16(0x10000000),即采用pcm编码
20 2 AudioFormat PCM = 1(即线性量化)除1之外的值表示某种形式的压缩(0x0100)
22 2 NumChannels 表示声道数,单声道为1,双声道为2,等等(本例中为双声道)
24 4 SampleRate 采样率,有 8000, 44100等等,(本例中为0x44AC0000,即44100)
28 4 ByteRate ==SampleRateN<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值