zoukankan      html  css  js  c++  java
  • PCM简介

    PCM脉冲编码调制是Pulse Code Modulation的缩写。未经压缩的音频数据裸流。

    模拟信号数字化必须经过三个过程,即抽样、量化和编码。

    一、抽样(Sampling)

    抽样是把模拟信号以其信号带宽2倍以上的频率提取样值,变为在时间轴上离散的抽样信号的过程。

    二、量化(quantizing)

    抽样信号虽然是时间轴上离散的信号,但仍然是模拟信号,其样值在一定的取值范围内,可有无限多个值。

    显然,对无限个样值一一给出数字码组来对应是不可能的。为了实现以数字码表示样值,必须采用“四舍五入”的方法把样值分级“取整”,

    使一定取值范围内的样值由无限多个值变为有限个值。这一过程称为量化。

    量化后的抽样信号与量化前的抽样信号相比较,当然有所失真,且不再是模拟信号。

    这种量化失真在接收端还原模拟信号时表现为噪声,并称为量化噪声。量化噪声的大小取决于把样值分级“取整”的方式,分的级数越多,

    即量化级差或间隔越小,量化噪声也越小。

    三、编码(coding)

    量化后的抽样信号就转化为按抽样时序排列的一串十进制数字码流,即十进制数字信号。

    简单高效的数据系统是二进制码系统,因此,应将十进制数字代码变换成二进制编码,根据十进制数字代码的总个数,

    可以确定所需二进制编码的位数,即字长(采样位数)这种把量化的抽样信号变换成给定字长的二进制码流的 过程称为编码。

    声道:

    声道分为单声道(mono)立体声(双声道stereo)

    PCM的每个样本值包含在一个整数i中,i的长度为容纳指定样本长度所需的最小字节数。

    首先存储低有效字节,表示样本幅度的位放在i的高有效位上,剩下的位置为0,这样8位和16位的PCM波形样本的数据格式如下所示。
    扩展little endian、big endian(储存方式可能是LE、BE)
    Little-endian:将低序字节存储在起始地址(低位编址)
    Big-endian:将高序字节存储在起始地址(高位编址)
    如果我们将0x1234abcd写入到以0x0000开始的内存中,则结果为:
    时长 * 采样率 * 采样位数 * 声道数 / 8 = 文件大小。
  • 相关阅读:
    java strtus2 拦截器(Interceptors)
    java ssm框架入门(三)正式项目的web.xml配置
    java Web监听器导图详解
    java web hello world(二)基于Servlet理解监听
    java ssm框架入门(二)添加语言滤器
    java web 自定义filter
    Java内存分配全面浅析
    Velocity !$ 和$!区别
    spring ioc原理(看完后大家可以自己写一个spring)
    Spring的AOP简单理解
  • 原文地址:https://www.cnblogs.com/zebra-bin/p/12909678.html
Copyright © 2011-2022 走看看