wav文件格式分析


  雖然自己是搞視頻圖像的,不過偶爾看看音頻方面的資料也是可以調節一下的。

  下面就來分析一下wav波形文件的格式。

  我們先隨便找一個wav文件,查看其屬性,就能得到下面的結果。

         

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

  上面主要注意文件大小,聲音長度與比特率。

  文件占用空間就不用關心了,如果有人想知道為什么文件占用空間比文件大小要大,我在這里也解釋一下。這和文件在硬盤中的組織方式有關系,這里的硬盤分區是以最小4096Byte為單位的,我文件的大小是1325044Byte,那么1325044/4096=323.49,為了能把文件對齊的放到硬盤中,所以占用的空間就要是324*4096=1327104Byte了,所以占用的空間就是這么多了。你也可以建立一個只寫一個字母的txt文件試試,文件大小雖然為1Byte,不過占用空間也為4096Byte。

  上面說的當然和wav文件沒什么關系,下面就正式說wav文件的問題。

  用ultraedit打開就是下面這個樣子:

  用表格說明一下文件的格式:

起始地址

占用空間

本地址數字的含義

00H

4byte

RIFF,資源交換文件標志。

04H

4byte

從下一個地址開始到文件尾的總字節數。高位字節在后面,這里就是001437ECH,換成十進制是1325036byte,算上這之前的8byte就正好1325044byte了。

08H

4byte

WAVE,代表wav文件格式。

0CH

4byte

FMT ,波形格式標志

10H

4byte

00000010H,16PCM,我的理解是用16bit的數據表示一個量化結果。

14H

2byte

為1時表示線性PCM編碼,大於1時表示有壓縮的編碼。這里是0001H。

16H

2byte

1為單聲道,2為雙聲道,這里是0001H。

18H

4byte

采樣頻率,這里是00002B11H,也就是11025Hz。

1CH

4byte

Byte率=采樣頻率*音頻通道數*每次采樣得到的樣本位數/8,00005622H,也就是22050Byte/s=11025*1*16/2。

20H

2byte

塊對齊=通道數*每次采樣得到的樣本位數/8,0002H,也就是2=1*16/8。

22H

2byte

樣本數據位數,0010H即16,一個量化樣本占2byte。

24H

4byte

data,一個標志而已。

28H

4byte

Wav文件實際音頻數據所占的大小,這里是001437C8H即1325000,再加上2CH就正好是1325044,整個文件的大小。

2CH

不定

量化數據。

  注意屬性中的比特率是176kbps,而1CH中為22050Byte/s,換算一下就會發現22050*8/1024並不等於176,而是等於172,這里我想可能是通信中的1K並不等於1024而是等於1000的原因(通信原理書中好像有),如果按22050*8/1000這樣算,就正好等於176了。其實比特率也可以這樣算,總字節除以時長得到每秒字節率,再乘以8除以1000就得到比特率了,即(1325000/60)*8/1000=176kbps。

  最后是量化數據的表示。

  看數據結尾的表示吧,我這音頻最初那一段都是0,不好解釋。

  Ultraedit中的表示:

  Matlab中的表示:

  上面的matlab是662500個數,正好也是11325000的一半。可以看出數據是有正有負的浮點數,為正負雙向PCM量化編碼,得到的十六進制位的最高位是一個符號位,為0表示正數,為1表示負數,正好表示-32768~32767。而且十六進制的數據正數要除以32767,負數要除以32768才能得到結果,如果是單向PCM就要除以65535了。

  比如最后一位十六進制為2710H,在Matlab中為0.3052,而2710H的十進制10000除以32767正好近似為0.3052。

  再比如matlab中662472這個數為-0.0206,考慮到44位的偏差,在ultraedit中為1437BAH位上的FD5DH,表示為十進制-675除以32768正好近似為-0.0206。

  當然,上面只是針對matlab和ultraedit中的數據進行具體的分析,真正編程處理時還是要根據情況有所不同的。量化位數的不同,32bit或是8bit處理又不同了。符號的表示也可能不同,原碼補碼反碼等等的知識可能也要用到。

  有機會自己也會編程實踐一下。

 注:相應代碼請看這篇文章:http://www.cnblogs.com/tiandsp/archive/2012/10/18/2730022.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM