陳凱
大家知道,無論是哪一種媒體文件,其數據在計算機內部都是以二進制形式存儲的。不同的文件都有文件頭,用來說明文件中二進制數據的格式,如果把文件頭去掉,只剩下二進制數據,那么計算機軟件就不知道這個文件究竟是哪一種媒體文件了。根據這個原理,可以做一些奇怪的事情。例如,用畫圖軟件來畫音樂。本期實驗需要用到的工具是任意一款畫圖軟件,為簡便起見,我們可使用Windows操作系統自帶的“畫圖”;本文示例中所用的聲音編輯工具是開源軟件Audacity;文件編輯器為在線二進制文件編輯工具onlinehexeditor,其地址是http://www.onlinehexeditor.com/。為了便于瀏覽和編輯,所有的二進制數據都是以十六進制形式表示的。
● 用畫圖軟件畫出一個波
空氣分子以一定頻率振動就會發出某個音階的音,振動頻率高,則發音高,振動頻率低,則發音也低。所謂的音頻數據,就是一大串用于表示振動波形的二進制數據,其中最容易實現的波是方波(如圖1)。

那么,怎樣在畫圖軟件里畫波形呢?當然不是直接畫波的形狀,而是畫不同顏色的垂直條紋。例如,最簡單的方波可以由黑色和灰色兩條垂直的條紋組成(如圖2),畫好后保存為BMP格式。

為什么兩條不同顏色的垂直條紋就是方波呢?想象一下,軟件會按行的順序來讀取數據,若讀取到一行灰色,其二進制數據就是連續的“10000000”,以十六進制表示就是80;若讀到一行黑色,其二進制數據就是連續的“00000000”,以十六進制表示就是00。因為BMP圖像有許多行,所以依次讀取,就是“00000000”和“10000000”交替出現,恰好就對應著方波圖形。……