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音频中采样率fs、比特率BCLK 、主时钟MCLK关系的更多相关文章
- 基于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 <alsa/asoundlib.h> #include <stdio.h> // 官方测试代码, 运行后只要有一堆信息 ...
- Linux ALSA 音频库 配置和使用
ALSA应用库是核心功能,而alsa-utils是一些工具功能集合库.单纯地播放一个wav文件,使用alsa-utils即可,如果还需要合成音频.调试音频质量,那么就需要ALSA应用库. 欲安装使用A ...
- Linux ALSA音频PCM播放编程
使用ALSA播放两个频率的单音,并使用GNU Radio中的Audio Source和FFT来观测声音的频谱. #include <alsa/asoundlib.h> #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移植与编译心得
**************************************************************************************************** ...
随机推荐
- 数据库分库分表中间件ShardingSphere推荐
官网链接:http://shardingsphere.io/document/current/cn/overview/ 源起: 我今天首先去了解了一下国内好像是比较火的一个叫"MyCat&q ...
- 07点睛Spring4.1-BeanPostProcessor
7.1 BeanPostProcessor spring通过BeanPostProcessor接口可以对所有bean或者指定的某些bean的初始化前后对bean的检查或者修改提供支持; 使用postP ...
- lombok的@Accessors注解
@AllArgsConstructor @Data @NoArgsConstructor @Accessors(chain = true) @EqualsAndHashCode public clas ...
- python开发【学习目录】:目录
python开发[学习目录]:目录 Python开发:环境搭建(python3.PyCharm) Python开发[第一篇]:初识Python Python开发[第二篇]:Python基础知识 Pyt ...
- 字符串的分隔方法 split()
java中的split()的方法 string.split([separator,[limit]]) 参数 string (必选),要被分解的 String 对象或文字.该对象不会被 split 方法 ...
- stm32片上ADC转换实验
原理图所示: BAT_DET 接到PB0 引脚,VSYS 是直流3.7V的电压.再来看下103的adc转换和引脚GPIO的关系 我们直接选用ADC1 根据上表格只能使用通道8 下面给我常用的ADC1寄 ...
- windows密码凭据
- PAT(B) 1081 检查密码(Java)
题目链接:1081 检查密码 (15 point(s)) 题目描述 本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能.该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母 ...
- 2019牛客暑期多校训练营(第四场)A meeting(dfs或dp,dp待更新)
示例1: 输入: 4 21 23 13 42 4 输出:2 说明: They can meet at place 1 or 3. 题意:从K个点到达不联通图某个点需要的最短时间,这个最短时间是这K个人 ...
- (转)FFmpeg架构之I/O模块分析
注意:这篇转载的文章比较早,写得很清晰,但是新版的ffmpeg的很多数据结构的名字已经改了.因此只能作参考.(例如ByteIOContext已经改名为AVIOContext) 1概述 ffmpeg项目 ...