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 版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值