Linux下如何抓取串口码流,linux alsa音频中采样率fs、比特率BCLK 、主时钟MCLK关系...
轉(zhuǎn):https://blog.csdn.net/lugandong/article/details/72468831
一、
拿512fs說話:
看圖知道采樣的位深是32bit(位),左右聲道各占了8*32BCLK,那一個完整的LRCLK一共8*32*2=512BCLK。
其實xxxfs就是這么算出來的,也是固定的,當(dāng)你定了幾個channel,多少位深,就幾乎可以確認(rèn)是多少fs了。從主觀的角度來看,fs的數(shù)值越大,那么一個完整的LRCLK越多,那承載的數(shù)據(jù)量就越大,隨之的就是音質(zhì)就會更加好。
上圖是32位的采樣,2channel,xxxfs的選擇有:
128fs、256fs、512fs
如果是16bit的采樣,2channel呢?
16*2(channel)*2(每個LR有幾個16BCLK組成) = 64fs
按照倍數(shù)的增加,會有如下的選擇:
64fs、128fs、256fs、512fs
如果是24bit的采樣,2channel呢?
24*2(channel)*2(每個LR有幾個16BCLK組成) = 96fs
按照倍數(shù)的增加,會有如下的選擇:
96fs、192fs、384fs、768fs(這個級別的估計一般的ADC很難)
二、
那BCLK是怎么算的?
例在Android系統(tǒng)中,播放的音頻文件格式:
sample_rate=44.1Khz,sample_length=16,channel=2時,
那么BCLK應(yīng)該為2×44.1Khz×16=32xsample_rate=1.4112Mhz
MCLK存在著關(guān)系,這個一般要看芯片。如果存在這4倍的關(guān)系,那么:
MCLK = 4*BCLK=5.6448Mhz
至于MCLK的選擇還要看外部的晶振。
鑒于如上的,那它是xxxfs?
正常是fs=MCLK/ sample_rate=5.6448*1000/44.1=128fs
fs=16*2*(LRCLK各幾個16 BCLK組)=128fs,一共是4個。
如果現(xiàn)在你要對外部晶振進(jìn)行選型了,現(xiàn)在是sample_rate=48Khz,sample_length=16,channel=2,我們選擇512fs,那外部晶振MCLK要選擇多大?
MCLK=fs*sample_rate=512*48=24.576Mhz
---------------------
作者:慢幾步-深幾度-前行
來源:CSDN
原文:https://blog.csdn.net/lugandong/article/details/72468831
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!
總結(jié)
以上是生活随笔為你收集整理的Linux下如何抓取串口码流,linux alsa音频中采样率fs、比特率BCLK 、主时钟MCLK关系...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qt linux 添加库文件路径,Lin
- 下一篇: 为什么Linux红帽认证能经久不衰?