当前位置: 首页 > 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体系结…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...