请选择 进入手机版 | 继续访问电脑版

通过PCM再理解音频信号基础

[复制链接]
命中不缺你 发表于 2021-1-3 11:58:28 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
PCM



PCM根本

什么是PCM?

脉冲编码调制( Pulse Code Modulation , PCM) 是模仿信号以固定的采样频率转换成数字信号后的体现形式。
pcm文件没有头部信息,全部是采样量化后的未压缩音频数据。
PCM 数据储存


用什么量来形貌PCM?



  • Sample Rate 采样率
    8kHz(电话)、44.1kHz(CD)、48kHz(DVD),16kHz 因为生存了绝大部门信息因此得到广泛使用
  • Sign 符号
    表现样本数据是否是有符号位
  • Sample Size 采样数据巨细/量化位数
    8位量化(8-bit)、16位量化(16-bit)、32位量化(32-bit),通常该值为16-bit(即2 byte)
  • Byte Ordering 字节序
    分大端(big-endian)和小端(little-endian),一般都是小端字节序(低位低所在,高位高所在)
       
        所有网络协议都是采取big endian的方式来传输数据的。所以也把big endian方式称之为网络字节序。当两台采取差别字节序的主机通信时,在发送数据之前都必须颠末字节序的转换成为网络字节序后再举行传输。
       

  • Number of Channels 通道数
    指声音在录制或播放时,在差别空间位置收罗或回放的相互独立的音频信号,常见的有单声道,双声道,四声道
PCM数据流是什么样?



  • 单声道
  1. +------+------+------+------+------+------+------+------+------+|  500 |  300 | -100 | -20  | -300 |  900 | -200 |  -50 |  250 |      +------+------+------+------+------+------+------+------+------+
复制代码
每个整数占据2个字节(16-bit),9个采样也就是18字节的数据。


  • 立体声
  1. +----------+----------+---------+----------+---------+----------+---------+----------+----------+ |  LFrame1 |  RFrame1 | LFrame2 | RFrame2  | LFrame3 |  RFrame3 | LFrame4 |  RFrame4 |  LFrame5 |       +----------+----------+---------+----------+---------+----------+---------+----------+----------+
复制代码
每一个frame是一个16-bit的采样点。左右声道的数据交织存放。
WAV与PCM的区别



  • wav与pcm区别,pcm加头变为wav,wav相关头信息
  • wav文件头信息由巨细44个字节的数据组成
  • 使用python包struct来转换为二进制流
WAV头部信息:
  1、4字节数据,内容为“RIFF”,表现资源交换文件标识
2、4字节数据,内容为一个整数,表现从下个所在开始到文件尾的总字节数(= pcm音频流长度 + 36 ),此中36 = 44位wav头信息 - 8,8表现不包罗RIFF和WAVE不包罗RIFF和WAVE这8个字节
3、4字节数据,内容为“WAVE”,表现WAV文件标识
4、4字节数据,内容为“fmt ”,表现波形格式标识(fmt ),最后一位空格。
5、4字节数据,内容为一个整数,表现PCMWAVEFORMAT的长度,其表现为:采样率(一般为8或16)
6、2字节数据,内容为一个短整数,表现格式种类(值为1时,表现数据为线性PCM编码)
7、2字节数据,内容为一个短整数,表现通道数,单声道为1,双声道为2
8、4字节数据,内容为一个整数,表现采样率,好比8000, 16000
9、4字节数据,内容为一个整数,表现波形数据传输速率(每秒匀称字节数),巨细为 采样率 * 通道数 * 采样位数 / 8
10、2字节数据,内容为一个短整数,表现DATA数据块长度,巨细为 通道数 * 采样位数 / 8
11、2字节数据,内容为一个短整数,表现采样位数,即PCM位宽,通常为8位或16位
12、4字节数据,内容为“data”,表现数据标志符
13、4字节数据,内容为一个整数,表现接下来声音数据的总巨细
14、以上所有的头文件举行相加,然后加上pcm字节流举行拼接
别的



  • 快放
    若我们告知声卡的采样率大于数据自己的采样率,那么这些数据的播放速度会高于其原始的速度。就是快放的功能。
  • 提高音量
    如果要增加PCM数据的音量,只需要将每一个采样的数据乘以一个系数就行了。
参考:

来源:https://blog.csdn.net/Robin_Pi/article/details/112004597
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )