STM32_I2SSAI
STM32_I2S&SAI
音频传输过程
SAI接口
音频数据传输协议标准
I2S
左对齐标准
右对齐标准
PCM脉冲编码调制
使用WM8978音频编解码器 使用I2C控制WM8978。
WM8978寄存器长度16bit,高7位用于表示寄存器地址,低9位有实际意义,所以在控制器向芯片发送控制命令时,必须传输长度为16bit,芯片会根据接收命令高7位值寻址。
WAV格式文件
WAV格式是微软公司开发的一种音频格式文件,用于保存Windows平台的音频信息资源,它符合资源互换文件格式(RIFF)文件规范,标准格式化的WAV文件和CD格式一样,也是44.1K的取样频率,16位量化数字。
RIFF文件规范
RIFF有不同数量的chunk(区块)组成,每个chunk由标识符 数据大小和数据三部分组成,标识符和数据大小都占4个字节空间
最开始的ID位RIFF的chunk Size为RIFF chunk数据字节长度,所以总文件大小为size+8,一般来说chunk不允许内部再包含chunk,但有两个例外,ID为RIFF和LIST的chunk确是允许,对此RIFF在其数据首4个字节用来存放格式标识码(Form Type)LIST则对应LIST Type
WAVE文件
WAVE文件是非常简单的一直RIFF文件,其格式标识码定义为WAVE RIFFchunk包括两个子chunk ID分别为fmt和data还有一个可选的fact chunk Fmt chunk 用于表示音频数据的属性,包括编码方式,声道数目,采样频率,每个采样需要的bit数等等信息。fact chunk是一个可选chunk,一般当WAVE文件由某些软件转化成就包含fact chunk,data chunk包含WAVE文件的数字化波形声音数据,data chunk是WAVE文件主体部分,包含声音数据,一般有两个编码格式:PCM和ADPCM ADPCM(自适应差分脉冲编码调制)属于有损压缩,现在几乎不用,绝大部分WAVE文件是PCM编码。PCM编码声音数据可以说是源数据,主要参数是采样频率和量化位数。
量化位数为16bit时不同声道数据在data chunk数据排列格式
WAVE文件实例分析
最新文章
- C语言读取bmp图像并做简单显示
- I am too vegetable to all kill the 51nod problems on level 2 and 3.
- VTK:模型之Spring
- codeforces 935E Fafa and Ancient Mathematics 语法树、动态规划
- linux下nmap工具的使用
- 【转载】某牛逼的文章《曝光一下我开发的游戏项目的日报周报 》
- Qt文档阅读笔记-Visual Parent的初步理解(获取QML中的根节点及其子结点)
- 【喜报】2016 年度最受欢迎中国开源软件TOP20出炉——JEECG、JEEWX双入围!
- 求C n m(从n个数中选m个数,有多少种组合?问题)暴力—递归——回归数学公式,三种方法,层层优化!
- 解决RHEL无法访问NTFS
- 后缀是php,后缀php是什么文件
- docker下centos7 systemctl启动报错 docker Failed to get D-Bus connection 报错
- Linux 各种压缩类型文件 解压命令 整理 tar.bz2 tar.gz tgz等等
- json字符串转对象+解析淘口令生成新淘口令
- 【excel】插入其他文件做工作表
- iOS Orientation 屏幕旋转
- js实现pc打开摄像头,拍照,下载
- 全国青少年编程等级考试python二级真题2020年9月(含题库答题软件账号)
- 螳螂科技接入百度“文心一言”,提升营销管理AI服务能力
- Ubuntu18.04+Nvidia RTX 3060+Pytorch配置GPU环境
热门文章
- 计算机无法安装ae,Windows10系统AE软件无法安装如何处理
- 【基础教程】免疫算法【006期】
- Unity 工具 之 常用插件分类汇总(UI/VR/AR/建模/Shader/动画/网络/AI/资源/数据/区块链等)
- 没有钱的苦恼与无奈:七个城市的1000元生活(转载)
- Coin3D三维可视化教程8
- 万网空间PHP 伪静态化,disuczx版块URL伪静态目录化设置方法
- 微信小程序下载文件,保存文件功能总结
- BUCK拓扑中IDC与IO的关系推导 // 《精通开关电源设计》P41式2-1
- 制作温馨浪漫爱心表白动画特效HTML5+jQuery【附源码】
- 小确幸BBS论坛-2-首页