zoukankan      html  css  js  c++  java
  • 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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    <frame>、<iframe>、<embed>、<object> 和 <applet>
    xss攻击
    回流 和 重绘
    defer 和 async 的区别
    从输入URL到浏览页面的过程
    webkit vs v8
    缓存
    LeetCode
    LeetCode
    LeetCode
  • 原文地址:https://www.cnblogs.com/newjiang/p/10817159.html
Copyright © 2011-2022 走看看