音视频开发—音频相关概念:数模转换、PCM数据与WAV文件详解
文章目录
- 前言
- 1.模拟数字转换(ADC)
- 1.1ADC的关键步骤:
- 2.数字模拟转换(DAC)
- 2.1DAC 的基本流程包括:
- 3.PCM数据
- 3.1PCM 数据的关键要素包括:
- 4.WAV文件
- 4.1 WAV的构成
- 4.2WAV文件的标准块结构
- 4.3WAV的使用场景
- 5.PCM与WAV的关系
前言
数字模拟转换(DAC)和模拟数字转换(ADC)是音频技术中非常重要的两个概念,它们在数字音频设备和系统中发挥着核心作用。这两种转换技术确保了模拟信号和数字信号之间的互转,使得音频信号可以在不同的媒体和设备间有效传输和处理。
1.模拟数字转换(ADC)
模拟数字转换是将模拟信号(连续信号)转换成数字信号(离散信号)的过程。在音频应用中,这意味着将捕捉到的声音(例如通过麦克风)转换成数字格式,以便于存储、编辑或处理。
一段原始的声音波形例子如下:
1.1ADC的关键步骤:
采样:测量模拟信号的振幅值,在特定的时间间隔内进行。这个时间间隔称为采样间隔,其倒数为采样率。例如,CD音质的标准采样率为44.1 kHz,即每秒采样44100次。
量化:将每次采样得到的模拟值转换为最接近的数字值。这个过程涉及到将连续的振幅值映射到有限的数字级别上。量化的精度通常由位深度(比特率)决定,例如16位、24位等。位深度指的是用于记录声音采样值的比特数。位深度越高,可以表示的声音振幅级别就越多,从而可以更精确地复制录音的动态范围和细节。以下是一些常见的位深度示例及其含义:
- 16位:这是CD音质的标准位深度,它可以提供约96 dB的动态范围。16位系统可以表示 216=65536216=65536 不同的振幅级别。
- 24位:这是专业音频工作的常用位深度,可以提供约144 dB的动态范围,使其能够记录更细微的音量变化。24位系统可以表示 224=16777216224=16777216 不同的振幅级别。
量化后的数字信息如下:
编码:将量化后的值转换为二进制数码,形成数字信号。
ADC 的输出是数字信号,这意味着原始的连续模拟信号被转换为一系列离散的数字值。这些数字值可以用于数字处理、存储或其他数字应用。
2.数字模拟转换(DAC)
数字模拟转换是将数字信号转换回模拟信号的过程。这一步骤在播放数字音频文件时尤为关键,如在数字音乐播放器、计算机或智能手机中。
2.1DAC 的基本流程包括:
- 解码:将存储的数字数据(通常为二进制形式)解码成数字量化值。
- 重构:通过插值算法处理这些量化值,重构出原始的模拟波形。在这一过程中,可能会使用各种滤波技术来平滑输出信号,减少所谓的“阶梯效应”(由量化步骤产生的不连续变化)。
- 放大:将重构后的模拟信号放大,以适合后续的播放硬件(如扬声器或耳机)。
如将上图的数字信号转换为模拟信号,
3.PCM数据
PCM(Pulse Code Modulation,脉冲编码调制)是一种用于数字化模拟信号的技术,例如声音。在音频技术中,PCM是将声音等模拟信号转换为数字信号的标准格式。这种格式通过对模拟信号进行采样、量化和编码来生成数字音频数据。PCM 数据提供了一种非常纯净和精确的方式来存储声音,但由于其数据量大,通常需要更多的存储空间和带宽。
3.1PCM 数据的关键要素包括:
- 采样率(Sampling Rate):
- 这是每秒钟采集模拟信号样本的次数,表示为赫兹(Hz)。常见的采样率有 44100 Hz(CD质量)、48000 Hz(专业视频和音频应用)、96000 Hz 或更高(高分辨率音频)。
- 位深度(Bit Depth):
- 位深度决定了每个样本的音频分辨率,即每个采样的数据大小。常见的位深度有 16位(CD音质)、24位(专业音频)。位深度越高,可以记录的动态范围越广,音质越细腻。
- 声道数(Channels):
- 声道数指的是音频流中的独立音频信号数量,例如单声道、立体声(两个声道),或多声道(如5.1环绕声系统使用的六个声道)。
4.WAV文件
WAV(或波形音频文件格式)是一种无损的音频文件格式,由微软和IBM共同开发,主要用于Windows操作系统。它通常被用于存储未压缩的音频数据,这使得它成为专业音频编辑和处理中非常受欢迎的格式。因为音频数据未经压缩,所以WAV文件通常比MP3或其他压缩格式的文件大得多。
4.1 WAV的构成
WAV文件主要由以下几个部分构成:
- RIFF Header(资源交换文件格式头):
- WAV文件以“RIFF”标记作为文件的开始。这个标头指明了文件是一个资源交换文件格式,并包含了整个文件的大小。
- WAVE Header(WAVE头):
- 紧接着RIFF头的是“WAVE”标记,它表明这是一个WAVE类型的数据文件。
- Format Chunk(格式块):
- 这是WAV文件中最重要的部分之一,它包含了有关音频数据格式的详细信息,如声道数(单声道或立体声)、采样率、位深度(每个样本的位数),以及每秒的数据字节数。
- Data Chunk(数据块):
- 数据块包含了实际的音频采样数据。这个部分的大小取决于录音的长度和质量。每个采样点的数据通常以小端格式存储(在x86架构的计算机上)。
4.2WAV文件的标准块结构
- RIFF Header:
RIFF[大小]WAVE
- Format Chunk:
fmt [大小][格式类型][通道数][采样率][字节率][块对齐][位深度]
- Data Chunk:
data[大小][音频采样数据]
4.3WAV的使用场景
WAV格式由于其无损的特性,广泛用于:
- 专业音频录制与编辑:在音乐制作和广播中,WAV格式因为其高保真度而被频繁使用。
- 音频分析:科研和工程应用中,需要对原始音频数据进行精确分析时,通常会使用WAV格式。
- 系统音效:在Windows操作系统中,系统音效通常以WAV格式存储。
5.PCM与WAV的关系
- PCM 是音频数据编码的一种方式,而WAV 是一种文件格式,通常用来存储PCM编码的音频数据。
- WAV 文件通常包含PCM数据,但WAV格式的灵活性也允许它包含压缩音频,如MP3编码的音频。然而,在实际应用中,WAV文件大多数情况下确实是用来存储PCM数据。
- 由于WAV文件包含详细的头信息(采样率、位深度、声道等),它们比原始的PCM数据文件更易于在不同的播放设备和程序之间移植和使用。
相关文章:

音视频开发—音频相关概念:数模转换、PCM数据与WAV文件详解
文章目录 前言1.模拟数字转换(ADC)1.1ADC的关键步骤: 2.数字模拟转换(DAC)2.1DAC 的基本流程包括: 3.PCM数据3.1PCM 数据的关键要素包括: 4.WAV文件4.1 WAV的构成4.2WAV文件的标准块结构4.3WAV的…...

Elasticsearch 8.1官网文档梳理 - 十三、Search your data(数据搜索)
Search your data 这里有两个比较有用的参数需要注意一下 Search timeout:设置每个分片的搜索超时时间。从集群级别可以通过 search.default_search_timeout 来设置超时时间。如果在 search.default_search_timeout 设置的时间段内未完成搜索请求,就会…...

笔墨挥毫如游龙 最是经典铁线篆——记著名书法家王子彬
真正的书法大家,必是经历了日积月累的求索磨炼,毕竟书法从来都不是一蹴而就的艺术,因此但凡是急功近利者,其人也是远远无法达到书入臻境的创作高度。而纵观当代书坛界内,其中王子彬先生的艺术声誉可谓是广为人知,作为一名深具传统功底的实力派书法大家,王子彬先生的取法历途无疑…...

智慧校园有哪些特征
随着科技的飞速进步,教育领域正经历着一场深刻的变革。智慧校园,作为这场变革的前沿代表,正在逐步重塑我们的教育理念和实践方式。它不仅仅是一个概念,而是一个集成了物联网、大数据、人工智能等先进技术的综合生态系统࿰…...
day25回溯算法part02| 216.组合总和III 17.电话号码的字母组合
216.组合总和III 题目链接/文章讲解 | 视频讲解 class Solution { public:vector<vector<int>> result;vector<int> path;int sum;void backtracking(int n, int k, int startindex) {// int sum accumulate(path.begin(), path.end(), 0);if (sum n &am…...
AWS联网和内容分发服务
概况 VPC Amazon Virtual Private Cloud (Amazon VPC) 让您能够全面地控制自己的虚拟网络环境,包括资源放置、连接性和安全性。首先在 AWS 服务控制台中设置 VPC。然后,向其中添加资源,例如 Amazon Elastic Compute Cloud (EC2) 和 Amazon …...

vscode设置编辑器文件自动保存
步骤 1.打开vscode的设置 2.在搜索栏输入关键字“保存”; 在 Files: Auto Save 设置项,选择自动保存的模式...

SJ705C安全帽高温预处理箱
一、仪器用途 安全帽高温预处理箱是我公司根据安全帽新国家标准检测试验要求而自主设计研发制造。是安全帽检测前做高温预处理的专用设备。 二、仪器特征 1、有PID自整定温度控制仪,控制准确。 2、数显计时、计温器。 3、石英灯管加热系统;。 …...

AI盒子在智慧加油站的应用
方案背景 为规范加油站作业,保障人民生命财产安全,《加油站作业安全规范》(AQ 3010-2007)中第五条规定:卸油作业基本要求,明确防静电、防雷电、防火、人员值守、禁止其他车辆及非工作人员进入卸油区。 痛点…...

IC开发——VCS基本用法
1. 简介 VCS是编译型verilog仿真器,处理verilog的源码过程如下: VCS先将verilog/systemverilog文件转化为C文件,在linux下编译链接生成可执行文件,在linux下运行simv即可得到仿真结果。 VCS使用步骤,先编译verilog源…...

MongoDB~存储引擎了解
存储引擎 存储引擎是一个数据库的核心,主要负责内存、磁盘里数据的管理和维护。 MongoBD的优势,在于其数据模型定义的灵活性、以及可拓展性。但不要忽略,其存储引擎也是插件式的存在,支持不同类型的存储引擎,使用不同…...
JavaScript实现粒子数字倒计时效果附完整注释
<!DOCTYPE html> <html lang="en"><head><meta charset...
Dubbo SPI(Service Provider Interface)机制深度解析
Dubbo SPI(Service Provider Interface)机制是Apache Dubbo框架中一项核心的技术组件,它超越了传统Java SPI的范畴,为Dubbo带来了高度的可扩展性和灵活性。在分布式服务架构日益复杂多变的今天,Dubbo SPI机制通过巧妙的…...

常用中间件各版本下载
常用中间件下载地址 前言分布式中间件负载均衡中间件缓存中间件数据库中间件其他中间件1、Maven下载地址2、Git下载地址2、JDK下载地址3、MySQL下载地址4、Redis下载地址5、Nacos下载地址6、Tomcat下载地址7、Nginx下载地址8、RocketMQ下载地址8、RabbitMQ下载地址8、Erlang下载…...
VsCode SSH远程设置不用重复输入密码
winR输入cmd,回车,输入 C:\Users\Administrator> ssh-keygen -t rsa -b 4096 Generating public/private rsa key pair. Enter file in which to save the key (C:\Users\Administrator/.ssh/id_rsa): Enter passphrase (empty for no passphrase): …...

【Linux】:进程切换
朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux进程切换的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精…...
MongoDB CRUD操作:删除文档
MongoDB CRUD操作:删除文档 文章目录 MongoDB CRUD操作:删除文档删除集合的所有文档删除符合条件的所有文件删除第一个符合条件的文档## 在MongoDB Atlas中删除文档删除行为索引 原子性写确认 可以使用下面的方式删除MongoDB集合的文档: 使用…...
SpringBoot集成腾讯COS流程
1.pom.xml中添加cos配置 <!--腾讯cos --> <dependency><groupId>com.qcloud</groupId><artifactId>cos_api</artifactId><version>5.6.28</version> </dependency> 2.application.yaml中添加cos配置 # 腾讯云存储cos…...
中高级前端开发岗
定位: 日常迭代任务的核心研发,具备高质、高效完成迭代任务的能力。 素质要求: 业务专家或擅长某一方向技术;有较丰富的开发经验;需要具备良好的沟通和协作能力,能够与其他部门和团队进行有效的沟通和协…...

idea常用配置
文章目录 I 常见问题1.1 取消maven忽略文件清单1.2 源根之外的java文件1.3 idea取消所有断点1.4 idea使用非模式提交界面1.5 用Service窗口展示所有服务及端口1.6 idea编码问题(加载配置文件失败)II idea 换行后自动缩进4个空格,怎么取消?I 常见问题 1.1 取消maven忽略文件…...

Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...

优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...