当前位置: 首页 > news >正文

脉冲编码调制(PCM,Pulse Code Modulation)简介

脉冲编码调制(PCM,Pulse Code Modulation)

脉冲编码调制(PCM,Pulse Code Modulation)是一种将模拟信号转换为数字信号的技术。在音频处理、电话通信以及其他许多领域都有广泛应用。PCM通过采样、量化、编码等三个主要步骤将模拟信号转换为数字信号。

采样(Sampling)

在连续的模拟信号中以固定的时间间隔选取一系列的样本点。采样率(Sampling Rate)是指每秒钟采样的次数,单位是赫兹(Hz)。根据奈奎斯特定理,为了能够无失真地重构原始信号,采样率应至少是信号最高频率的两倍。
常见的采样率包括:

  • 8 kHz:通常用于电话语音,因为人声的频率范围大约在300Hz到3400Hz之间,8kHz的采样率足以覆盖这个范围。
  • 22.05 kHz:这个采样率通常用于某些低质量的音频传输,能够覆盖大部分人类可听频率的一半。
  • 44.1 kHz:这是CD音质的标准采样率,能够覆盖人类可听的整个频率范围(大约20Hz到20kHz)。它是专业音频处理和消费级音频产品中最常用的采样率之一。
  • 48 kHz:这个采样率在专业音频领域(如电影和广播)中非常常见,因为它提供了比CD更高的采样率,可以捕捉更多的细节。
  • 96 kHz和192 kHz:这些更高的采样率主要用于专业音频录制和一些高分辨率音频格式中。它们能够提供更广的频率范围和更细腻的音质,但相应地也需要更多的存储空间和处理能力。

量化(Quantization)

量化是将每个采样点的模拟值映射到最接近的数字值。量化过程中,由于将连续的模拟值映射到有限的数字值,会引入量化噪声。量化的精度由位深(Bit Depth)决定,位深越高,可以表示的数字值越多,量化噪声越小,音质越好。
量化位深度(Bit Depth)是指在数字音频中,每个采样点可以表示的不同幅度级别的数量。位深度直接影响音频信号的动态范围和信噪比,即能够表示的最大音量和最小音量之间的差异,以及音频的细节和清晰度。常见的量化位深度包括:

  • 8位:较低的位深度,每个采样点有256(2^8)个可能的幅度值。8位音频通常用于电话通信和某些低质量的音频文件。由于其较低的动态范围,8位音频的音质相对较差,可能会有明显的量化噪声。
  • 16位:这是CD音质的标准位深度,每个采样点有65,536(2^16)个可能的幅度值。16位提供了较好的动态范围,适用于大多数消费级音频应用,能够提供满意的音质。
  • 24位:专业音频和一些高分辨率音频格式使用的位深度,每个采样点有16,777,216(2^24)个可能的幅度值。24位音频提供了更宽的动态范围,允许更细腻的音量级别和更低的量化噪声,适用于专业录音和混音。
  • 32位浮点:在音频处理和混音中常用的一种格式,尽管它提供的动态范围远远超过人耳的感知能力,但它允许音频工程师在不损失音质的情况下进行大范围的音量调整。32位浮点格式在处理过程中非常有用,因为它可以避免在多次处理和效果应用中累积的量化误差。

编码(Encoding)

编码是将量化后的数字值转换为二进制形式,以便于存储或传输。编码后的数据可以是线性的,也可以是非线性的,线性PCM(LPCM)是最常见的形式,其中数字值直接对应于采样点的幅度。

声道

在音频处理和播放中,声道(Channel)是一个重要的概念,它决定了音频信号的空间分布和听觉体验。声道的不同配置可以提供从简单的单声道到复杂的多声道环绕声体验。
常见的声道配置:

  1. 单声道(Mono)
  • 单声道音频只有一个声道。在单声道配置中,所有的声音都被混合到一个单一的信号中,播放时在所有扬声器中均匀输出。单声道适用于语音播放和环境中只有一个音源的场景。
  1. 立体声(Stereo)
  • 立体声音频有两个声道:左声道和右声道。立体声可以提供一定的空间感,通过调整左右声道的音量和相位,可以模拟声音源在空间中的位置。立体声是最常见的音频配置,适用于大多数音乐和视频播放。
  1. 环绕声
  • 环绕声配置通过多个声道提供更丰富的空间感和沉浸感。常见的环绕声配置包括5.1声道(前左、前右、中央、后左、后右和一个低音炮)和7.1声道(在5.1的基础上增加两个侧声道)。环绕声配置常用于家庭影院、电影和游戏中。

比特率

比特率(Bitrate)是衡量音频和视频文件数据传输和处理速度的一个重要指标,表示单位时间内传输或处理的比特数(bits),通常以比特每秒(bps)为单位。在音频领域,比特率直接影响音频文件的大小和音质。
对于PCM(脉冲编码调制)音频数据,比特率可以通过以下公式计算:
比特率 = 采样率 × 位深度 × 声道数
例如,一个立体声(2声道)音频文件,采样率为44.1kHz,位深度为16位,其比特率计算如下:
比特率 = 44,100 × 16 × 2 = 1,411,200 bps 或 1,411.2 kbps

信噪比

信噪比(Signal-to-Noise Ratio,简称SNR)是衡量信号质量的一个重要指标,它描述了有用信号强度与背景噪声强度之间的比例。信噪比通常以分贝(dB)为单位表示,数值越高意味着信号中的噪声成分越小,信号质量越好。

相关文章:

脉冲编码调制(PCM,Pulse Code Modulation)简介

脉冲编码调制(PCM,Pulse Code Modulation) 脉冲编码调制(PCM,Pulse Code Modulation)是一种将模拟信号转换为数字信号的技术。在音频处理、电话通信以及其他许多领域都有广泛应用。PCM通过采样、量化、编码等三个主要步骤将模拟信号转换为数…...

Pytorch transforms 的研究

绝对路径与相对路径差别 transforms的使用 from torchvision import transforms from PIL import Imageimg_path "dataset/train/bees/16838648_415acd9e3f.jpg" img Image.open(img_path) tensor_trans transforms.ToTensor() tensor_img tensor_trans(img) prin…...

一个C++模板工厂的编译问题的解决。针对第三方库的构造函数以及追加了的对象构造函数。牵扯到重载、特化等

一窥模板的替换和匹配方式:偏特化的参数比泛化版本的还要多:判断是不是std::pair<,>。_stdpair模板参数太多-CSDN博客 简介 在一个项目里,调用了第三封的库,这个库里面有个类用的很多,而且其构…...

《昇思 25 天学习打卡营第 20 天 | Pix2Pix实现图像转换 》

《昇思 25 天学习打卡营第 20 天 | Pix2Pix实现图像转换 》 活动地址:https://xihe.mindspore.cn/events/mindspore-training-camp 签名:Sam9029 Pix2Pix模型概述 Pix2Pix是一种基于条件生成对抗网络(cGAN)的图像转换模型&#x…...

关于c#的简单应用三题

#region 输入一个正整数&#xff0c;求1~这个数的阶乘 public static void Factorial(int a) { int result 1; for (int i 1; i < a; i) { result result * i; } Console.WriteLine(result); } #endregion #region 一个游戏&#…...

(十三)Spring教程——依赖注入之工厂方法注入

1.工厂方法注入 工厂方法是在应用中被经常使用的设计模式&#xff0c;它也是控制反转和单例设计思想的主要实现方法。由于Spring IoC容器以框架的方式提供工厂方法的功能&#xff0c;并以透明的方式开放给开发者&#xff0c;所以很少需要手工编写基于工厂方法的类。正是因为工厂…...

Redission中的Lua脚本写法、理解

对于Redission看门狗机制中的为了保证原子性的Lua脚本的写法规则是什么样的呢 &#xff1f; 对于源码中的Lua脚本又是什么意思&#xff1f; 我们一起来看一下 首先&#xff0c;我们先基本的熟悉一下lua脚本的逻辑 在Lua脚本中&#xff0c;if (…) then … end 语句的执行过程…...

视频共享融合赋能平台LntonCVS视频监控管理平台视频云解决方案

LntonCVS是基于国家标准GB28181协议开发的视频监控与云服务平台&#xff0c;支持多设备同时接入。该平台能够处理和分发多种视频流格式&#xff0c;包括RTSP、RTMP、FLV、HLS和WebRTC。主要功能包括视频直播监控、云端录像与存储、检索回放、智能告警、语音对讲和平台级联&…...

GraphRAG + GPT-4o mini 低成本构建 AI 图谱知识库

更好的效果&#xff0c;更低的价格&#xff0c;听起来是不是像梦呓&#xff1f; 限制 首先&#xff0c;让我们来介绍一个词&#xff1a;RAG。 简单来说&#xff0c;RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09; 的工作原理是将大型文档…...

全国区块链职业技能大赛第十套区块链产品需求分析与方案设计

任务1-1:区块链产品需求分析与方案设计 养老保险平台中涉及到参保人、社保局、公安局、工作单位等参与方,他们需要在区块链养老保险平台中完成账户注册、身份上链、社保代缴、信息核查等多种业务活动。通过对业务活动的功能分析,可以更好的服务系统的开发流程。基于养老保险…...

分布式Apollo配置中心搭建实战

文章目录 环境要求第一步、软件下载第二步、创建数据库参考文档 最近新项目启动&#xff0c;采用Apollo作为分布式的配置中心&#xff0c;在本地搭建huanj 实现原理图如下所示。 环境要求 Java版本要求&#xff1a;JDK1.8 MySql版本要求&#xff1a;5.6.5 Apollo版本要求&…...

Android monkey命令和monkey脚本详解

Monkey命令 monkey 是 Android 平台上一个非常有用的工具&#xff0c;它可以帮助开发者在设备上生成随机的用户事件流&#xff0c;如按键输入、触摸屏手势等&#xff0c;以此来测试应用的稳定性。这对于发现应用中的崩溃、异常和性能问题特别有用。 基本语法 adb shell monk…...

vue 实现对图片的某个区域点选, 并在该区域上方显示该部分内容

目录 1、通义灵码实现&#xff1a; 2、csdn的C知道&#xff1a; 3、百度comate&#xff1a; 1、通义灵码实现&#xff1a; 在 Vue 中实现对图片某个区域的点选并显示该区域属于哪一部分&#xff0c;通常涉及到几个关键步骤&#xff1a; 图片区域划分&#xff1a; 首先&#…...

配置文件格式 INI 快速上手

文章目录 1.简介2.语法节键值对注释大小写空白行数据类型字符串 (String)整数 (Integer)浮点数 (Float)布尔值 (Boolean)列表 (List) 3.示例4.解析参考文献 1.简介 INI 的全称是 Initialization&#xff0c;即为初始化文件&#xff0c;最早是 Windows 系统配置文件所采用的格式…...

基于WebGoat平台的SQL注入攻击

目录 引言 一、安装好JAVA 二、下载并运行WebGoat 三、注册并登录WebGoat 四、模拟攻击 1. 第九题 2. 第十题 3. 第十一题 4. 第十二题 5. 第十三题 五、思考体会 1. 举例说明SQL 注入攻击发生的原因。 2. 从信息的CIA 三要素&#xff08;机密性、完整性、可用性&…...

SpringMvc有几个上下文

你好&#xff0c;我是柳岸花明。 SpringMVC作为Spring框架的重要组成部分&#xff0c;其启动流程和父子容器机制是理解整个框架运行机制的关键。本文将通过一系列详细的流程图&#xff0c;深入剖析SpringMVC的启动原理与父子容器的源码结构。 SpringMVC 父子容器 父容器的创建 …...

k8s部署rabbitmq集群

1 部署集群 1.1 安装 # 创建一个中间件的命名空间 kubectl create namespace middleware # 创建ConfigMap,包含RabbitMQ的配置文件内容 kubectl apply -f rabbitmq-configmap.yaml # 配置用于存储RabbitMQ数据的PersistentVolume&#xff08;PV&#xff09;和PersistentVolum…...

Python利用包pypinyin汉字转拼音(处理多音字)

一、汉字转拼音 在python中将汉字的拼音输出可以采用pypinyin包&#xff0c;一下是简单的demo示例&#xff1a; 默认调用pinyin方法转换时时默认时带声调的&#xff0c;不带声调需要添加“styleStyle.NORMAL”参数。 from pypinyin import pinyin, Styledef pinyin_transfer…...

推荐系统三十六式学习笔记:工程篇.常见架构24|典型的信息流架构是什么样的

目录 整体框架数据模型1.内容即Activity2.关系即连接 动态发布信息流排序数据管道总结 从今天起&#xff0c;我们不再单独介绍推荐算法的原理&#xff0c;而是开始进入一个新的模块-工程篇。 在工程实践的部分中&#xff0c;我首先介绍的内容是当今最热门的信息流架构。 信息…...

解决QEMU无法从非0x80000000处开始执行

解决QEMU无法从非0x80000000处开始执行 1 背景介绍2 问题描述3 原因分析4 解决办法5 踩坑回忆5.1 坑1 - 怀疑设备树有问题5.2 坑2 - 怀疑QEMU中内存未写入成功5.3 QEMU地址空间分析过程 1 背景介绍 在使用NEMU与QEMU做DiffTest的场景下&#xff0c;运行的固件为《RISC-V体系结…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...