下面我們一wav頭文件來分析一下:
下面是雙聲道的,16位,48000采樣錄的wav文件:
打開屬性,能看到的有用信息只有比特率了:
上圖的比特率就是
wav頭文件里的bitrate:
1536kbps=量化采樣點*位深*聲道數
這個比特率是按照 '位' 來算的,,,480 000 * 16 * 2 :每秒內消耗多少位
用GoldWave軟件打開,滑動滾輪進行放大:
200us總共輸出了20個數據,,但是每個數據是16位(因為消耗兩個8位得到的數據)
這20個數據是由40個8位的音頻數據組成的.
200us消耗了40個數據
20us消耗4個數據
消耗4個數據就是完成一個 '音' 單元的播放 一個音,也就是圖中的一個階梯
所以產生一個 '音' 需要20us [也就是 一個音對應一個中斷,當產生一個中斷的時候,讓兩個DAC分別播放出去一個階梯]
1秒產生500 000 個約等於480 000個 '音' :頻率是根據 '音' 的設置,,一個 '音' 可能等於好幾個音頻數據
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
實際上這個音頻的定時器是這樣設置的
通過仿真得到:
轉換成十進制 48000
bitrate=0x00177000 ------轉換成十進制就是1536000
得到:
samplerate=48000 #在我們編寫程序的時候,這個是中斷設定的參數
這個是WAV頭文件里得到的
按照程序里計算,48000就相當於20.833us
取整就相當於20us
20us播放兩個聲道,每個聲道是由兩個數據得到的,,
也就是20us消耗4個數據
這個結果,和我們用軟件打開的查看一樣的.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
用 UltraEdit軟件打開
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
這是百度文庫的一篇文章,講解的很清楚
https://wenku.baidu.com/view/45960348551810a6f424863f.html
上面的例子屬於16位立體聲道,,,
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
下面是摘自網上的:可以不用看,有些事不對的:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
推薦文檔:http://www.sohu.com/a/115830046_119709
通過調整計時器,,每25us控制ADC進行一次采集,,,,采集的數據交給DMA,,,,然后DMA給一個數組緩存,,,之后存入SD卡
如果25us采集一個
采樣率就是SampleRate=40000; 其值為通道數×每秒樣本數×每樣本的數據位數/8
怎么得到的呢?
采樣率實際上意義是每秒采集的位數:
那么就是 25us采1個8位數,,,那么100us采集4個8位數,,,,1000 000us 就是1s采集 40 000個8位數
所以就是采樣率為40000
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////