linux音频时钟bclk,linux alsa音频中采样率fs、比特率BCLK 、主时钟MCLK关系
轉:https://blog.csdn.net/lugandong/article/details/72468831
一、
拿512fs說話:
看圖知道采樣的位深是32bit(位),左右聲道各占了8*32BCLK,那一個完整的LRCLK一共8*32*2=512BCLK。
其實xxxfs就是這么算出來的,也是固定的,當你定了幾個channel,多少位深,就幾乎可以確認是多少fs了。從主觀的角度來看,fs的數值越大,那么一個完整的LRCLK越多,那承載的數據量就越大,隨之的就是音質就會更加好。
上圖是32位的采樣,2channel,xxxfs的選擇有:
128fs、256fs、512fs
如果是16bit的采樣,2channel呢?
16*2(channel)*2(每個LR有幾個16BCLK組成) = 64fs
按照倍數的增加,會有如下的選擇:
64fs、128fs、256fs、512fs
如果是24bit的采樣,2channel呢?
24*2(channel)*2(每個LR有幾個16BCLK組成) = 96fs
按照倍數的增加,會有如下的選擇:
96fs、192fs、384fs、768fs(這個級別的估計一般的ADC很難)
二、
那BCLK是怎么算的?
例在Android系統中,播放的音頻文件格式:
sample_rate=44.1Khz,sample_length=16,channel=2時,
那么BCLK應該為2×44.1Khz×16=32xsample_rate=1.4112Mhz
MCLK存在著關系,這個一般要看芯片。如果存在這4倍的關系,那么:
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個。
如果現在你要對外部晶振進行選型了,現在是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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
基于Linux ALSA音頻驅動的wav文件解析及播放程序 2012
本設計思路:先打開一個普通wav音頻文件,從定義的文件頭前面的44個字節中,取出文件頭的定義消息,置于一個文件頭的結構體中.然后打開alsa音頻驅動,從文件頭結構體取出采樣精度,聲道數,采樣頻率三個重 ...
嵌入式驅動開發之---Linux ALSA音頻驅動(一)
本文的部分內容參考來自DroidPhone的博客(http://blog.csdn.net/droidphone/article/details/6271122),關于ALSA寫得很不錯的文章,只是少 ...
Linux ALSA音頻庫(二) 環境測試+音頻合成+語音切換 項目代碼分享
1. 環境測試 alsa_test.c #include #include // 官方測試代碼, 運行后只要有一堆信息 ...
Linux ALSA 音頻庫 配置和使用
ALSA應用庫是核心功能,而alsa-utils是一些工具功能集合庫.單純地播放一個wav文件,使用alsa-utils即可,如果還需要合成音頻.調試音頻質量,那么就需要ALSA應用庫. 欲安裝使用A ...
Linux ALSA音頻PCM播放編程
使用ALSA播放兩個頻率的單音,并使用GNU Radio中的Audio Source和FFT來觀測聲音的頻譜. #include #include & ...
基于Orangpi Zero和Linux ALSA實現WIFI無線音箱(三)
作品已經完成,先上源碼: https://files.cnblogs.com/files/qzrzq1/WIFISpeaker.zip 全文包含三篇,這是第三篇,主要講述接收端程序的原理和過程. 第一 ...
Linux ALSA聲卡驅動之八:ASoC架構中的Platform
1.? Platform驅動在ASoC中的作用 前面幾章內容已經說過,ASoC被分為Machine,Platform和Codec三大部件,Platform驅動的主要作用是完成音頻數據的管理,最終通過C ...
Linux ALSA聲卡驅動之五:移動設備中的ALSA(ASoC)
轉自http://blog.csdn.net/droidphone/article/details/7165482 1.? ASoC的由來 ASoC--ALSA System on Chip ,是建立 ...
嵌入式Linux下ALSA音頻架構ALSA-lib移植與編譯心得
**************************************************************************************************** ...
隨機推薦
Environment類,獲取程序所在機器信息
一.屬性 CommandLine ?獲取該進程的命令行.CurrentDirectory 獲取或設置當前工作目錄的完全限定路徑.ExitCode 獲取或設置進程的退出代碼.HasShutdownSta ...
power designer 連接數據庫提示“connection test failed”
利用powerdesigner反向生成表結構時,需要mysql連接,配置好連接,測試時直接報:connection test failed”! OS:WIN7 旗艦版 64位 JDK: 64位 Pow ...
去除a標簽鏈接觸摸時產生邊框
排除誤解 網絡資料說這個屬性只用于iOS(iPhone和iPad),其實是錯誤的,android手機大部分也是支持的,只是顯示效果不一樣,移動開發并不成熟,更多的還需要大家去實踐來辨別真偽- - -w ...
UserControl 用戶定義組件
P2370 yyy2015c01的U盤(二分+背包)
思路:先說一下題意吧.就是給你n個文件大小為v,價值為c, 但是硬盤的大小為S, 而且要存的總價值大于等于p.問每次傳輸k大小的文件.問k的最大值是多少? 我們以k為二分對象. 直接講檢驗函數吧. 假 ...
計算機中K到底是1000還是1024?
1000和1024的爭論,其實是傳輸領域和存儲領域概念不清引起的;在傳輸領域,1秒鐘傳輸多少字位(即b,bit),肯定是用10進制表示,所以是1kb=1000b,即1秒鐘傳輸1000個比特位;就好像: ...
持續集成--Jenkins--1
持續集成之Jenkins安裝部署 ? 1.安裝JDK Jenkins是Java編寫的,所以需要先安裝JDK,這里采用yum安裝,如果對版本有需求,可以直接在Oracle官網下載JDK. [root@l ...
How to turn on syntax highlighting in osx
put follow code in?~/.vimrc set ai " auto indenting set history=100 " keep 100 lines of hi ...
android動手寫控件系列——老豬叫你寫相機
前記:Android這個開源而自由的系統,為我們帶來開發便利,同時也埋下太多的深坑.例如調用系統自帶的相機就會出現照片丟失,或者其他各種各樣的問題.因此,看來自定義一個相機十分的必要. 要自定義相機我 ...
總結
以上是生活随笔為你收集整理的linux音频时钟bclk,linux alsa音频中采样率fs、比特率BCLK 、主时钟MCLK关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 循环结构作业c语言,C语言循环结构练习题
- 下一篇: c语言编译 64位,cmake – 编译