Linux下如何抓取串口码流,linux alsa音频中采样率fs、比特率BCLK 、主时钟MCLK关系...

本文详细解释了音频采样率(如512fs、128fs等)的计算方式,以及与位深、声道数、BCLK(时钟速率)和MCLK(主时钟)的关系。通过实例展示了如何根据采样率、位深和声道数确定BCLK,并讨论了MCLK的选择与外部晶振的配合。较高的采样率和位深通常意味着更好的音质。
摘要由CSDN通过智能技术生成

转: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

版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值