计算机基础(8)——音频数字化(模电与数电)

news2024/11/28 16:15:13

💗计算机基础系列文章💗

  • 👉🍀计算机基础(1)——计算机的发展史🍀
  • 👉🍀计算机基础(2)——冯诺依曼体系结构🍀
  • 👉🍀计算机基础(3)——计算机的系统组成🍀
  • 👉🍀计算机基础(4)——操作系统概述🍀
  • 👉🍀计算机基础(5)——进制与进制转换🍀
  • 👉🍀计算机基础(6)——编码与解码🍀
  • 👉🍀计算机基础(7)——数字图像技术🍀
  • 👉🍀计算机基础(8)——音频数字化(模电与数电)🍀
  • 👉🍀计算机基础(9)——原码、补码、反码🍀
  • 👉🍀计算机基础(10)——编程语言与跨平台🍀

音频的编码与解码

二进制转换音频的过程也叫音频数字化,其过程较为复杂,是模拟声音信号转变为数字信号再由数字信号转换为模拟信号的一个技术实现,其过程涉及到声音的采集,转换为模拟信号,采样、量化等。了解音频数字化之前我们先了解一些关于声音的一些前置知识,

1.1 声波

我们知道声音是以声波的形式在空气中传播的,声波是声音的物理表现形式,它是由物体振动产生的能量传播方式。当物体振动时,它会激发周围介质(如空气、液体或固体)中的分子或原子振动,这些振动随后以波的形式传播开来。

一段声波中包含有声音的频率、振幅、音色等声音元素,通过声波我们可以将声音这一抽象概念通过数据的形式表现出来。声波的采集就是原声音的采集,通过麦克风、话筒等录音设备就可以采集到一段声音的声波。

例如我们通过声波来反映一段声音的频率、振幅、音色等信息。

(1)通过声波的频率反映声音音调,频率低音调低,频率高音调高。

(2)通过声波的振幅反映声音响度,振幅大响度大,振幅小响度小。

(3)通过声波的规律性反映声音音色,一般来说具有规律性的声波听起来悦耳,反之为噪音。

1.2 模拟信号

当录音设备采集到声波数据后将会以电信号的方式模拟出声波信号,声波被电信号模拟出来的信号就是声音模拟信号,这种模拟信号是对声波的一种电子化表示,以便在音响设备中再现出类似原始声波的效果。

模拟信号是连续变化的,模拟信号的最大特点是随着时间连续变化的值,它可以包含无限数量的可能幅度值。

我们可以把模拟信号模拟声波的过程看作是汽车的仪表盘模拟汽车行驶速度的过程,当驾驶员深踩一脚油门时,汽车会迅速提高行驶速度,然而汽车仪表盘的数据并不是从0km/h直接变成80km/h,虽然这个变化的时间很短,但也是从0km/h连续变化到80km/h,期间汽车仪表盘指针肯定指向过10、11.7、12.785、20.491、38.4、69.8、78等这样的数据。同理,当声波的频率忽高忽低,振幅忽大忽小时模拟信号也会随着时间连续不间断的模拟出声波频率的高低以及振幅的大小。

例如汽车行驶速度的通过仪表盘来模拟,如图所示。

通过观察曲线图我们可以看到,取任意一个时间点都可以获取到这个时间点所对应的速度值,通过声音模拟信号模拟声波的变化也类似于这样。如图所示,当通过模拟信号将声波信息模拟出来后,取任意一个时间点所对应的声波幅度数值也能取出来,这就是模拟信号的最大特点——随着时间连续变化的值。

类似于模拟信号的变化还有水银温度计的变化,当我们把水银温度计放置在10°的水温环境下时突然加了一些温水进去,使得水温一下子骤升至50°,然而水银温度计的数值肯定经过了20°、32.7°、39.1°、45.8°等数值,并不是从10°直接变成到50°,而是随着时间的变化温度上数值从10°增加至50°(虽然这个时间可能非常短)。

1.3 数字信号

数字信号是模拟信号的数字化,它是一系列离散的电脉冲(信号),可以利用其某一瞬间的状态来表示具体的数据。数字信号与模拟信号最大的不同点在于模拟信号是随着时间连续变化的值,它可以去任意时间点上的数据。而数字信号则是离散的数值,即取某几个瞬间的状态来表示具体的数据,数字信号包含的是有限数量的可能幅度值。

如图所示,数字信号来模拟声波时,只有某个具体的时间点才会有对应的声波数据,而不是和模拟信号那样任意的时间点上都能查询到对应的声波数据。

数字信号只有某几个时间点上才能有对应的数据,这些时间点并不是连续的,这意味着某些时间上的数据会缺失,将数字信号的这些时间点连接起来可以大致还原模拟信号。

如果将模拟信号看着是汽车上的仪表盘、水银温度计,那么数字信号就可以看做是电动车上面的数字仪表盘和电子温度枪。

不管是数字仪表盘还是电子温度枪,这些设备的数值和时间都是离散的。以电动车的数字仪表盘举例,例如我们骑电动车时突然深拧加速,假设速度从0提速到了40km/h,那么电子仪表盘上的速度很有可能就从10km/h变化到25km/h再变化到34km/h,最后变化到40km/h,在电子仪表盘模拟电动车行驶速度的变化时,只显示了(模拟了)25、34、40这些数值,而25~34以及34~40之间的数据都不会被显示(模拟)。

那为什么有了模拟信号还要转换为数字信号呢?因为数字信号相对比模拟信号存在有很多优点,如下:

(1)数字信号抗干扰性强:数字信号在传输和处理过程中可以通过纠错码等技术来提高抗干扰能力,相比之下,模拟信号在传输和处理过程中容易受到噪声和干扰的影响,导致信号失真或丢失。

(2)数字信号的可编程性:数字信号可以通过编程进行处理和操作,例如滤波、压缩、加密等,这使得数字信号在处理和存储方面更加灵活和方便。

(3)数字信号的可复制性:数字信号可以通过复制和传输进行无损的复制和传递,而模拟信号在复制和传输过程中可能会产生失真或损失。

(4)数字信号便于存储和传输:数字信号以二进制数的形式表示,便于计算机进行存储和传输。同时,数字信号可以进行压缩处理,以节省存储空间和提高传输效率。

(5)数字信号便于加密和解密:数字信号可以通过加密算法进行加密处理,以保护信号的安全性和隐私性。而模拟信号则难以实现加密和解密操作。

数字信号相对模拟具有许多优势,使其在现代通信中占据主导地位。

1.4 音频数字化

所谓音频数字化就是把模拟信号如何具体的转换为数字信号,其过程分为采样、量化、编码等。

1.4.1 采样

(1)采样:将连续的模拟声音信号转换为一系列离散的采样点的过程,采样点随后由模拟数字转换器(ADC)转换为数字信号,以便计算机或其他数字设备进行处理、存储、传输和播放。每秒钟对声波幅度值样本的采样次数称为采样频率,单位为HZ,声音的质量受采样频率的影响。

如图所示,在一段模拟信号中,我们对其根据指定时间进行采样,我们可以发现采样的频率越高,与模拟信号越接近,声音还原程度越高,数据量也越大。

1.4.2 量化

(2)量化:将幅度上连续取值(模拟量)的每一个样本转换为离散值(数字量)表示的过程,它实现了在幅度轴上对信号的数字化。通过量化,音频信号被转换为一系列的数字值,这些数字值可以精确地表示原始音频信号的幅度,如图所示。

通过对比不同的量化等级,我们可以发现量化等级越高量化值的精度也越高,更高的量化等级意味着更多的量化值可以用来表示音频样本,就能够更好的还原音频。

计算机底层是以二进制存储的,因此我们需要将量化值转换为二进制。在声音量化过程中,我们使用量化位数来表示量化值所需要的二进制位数,例如在量化等级为4的情况下使用两位二进制数就可以表示量化值,因此它的量化位数就是2bit,量化等级为8的量化位数就是3bit,如图所示。

然而,需要注意的是,量化位数的提高虽然能够提升音质,但也会导致音频文件的数据量增大。因为每个音频样本都需要用更多的二进制位来表示,所以音频文件的存储空间会相应增加。例如,一个16bit的音频文件在数据量上会是8bit音频文件的两倍。

1.4.3 编码

(3)编码

声音通过采样、量化过后就成为了010101的二进制数,编码决定了这些二进制数如何存储,有的编码规则的存储效率非常高,同样一段的音频可以使用非常少的空间将其存储,有的编码规则则更加注重与音频的质量,但可能会花费更多的空间来存储。

不同的编码方式就被分成了不同类型的音频文件类型,常见的音频文件有:

  • WAV(Waveform Audio File Format)格式:WAV是一种无损音频格式,音质非常好,因为是无损的,保留了原始音频的所有信息。常用于多媒体开发的中间文件、保存音乐和音效素材。由于WAV是无损压缩,因此文件体积相对较大。
  • MP3(MPEG Audio Layer III):MP3是一种有损音频格式,广泛应用于音乐、广播、电视等领域,具有较高的压缩比和较好的音质。音质在128Kbit/s以上表现还不错,但相较于无损格式有所损失。适合需要较小文件体积,且对音质要求不太苛刻的场合,如网络音乐下载、移动设备存储等。
  • AAC(Advanced Audio Coding):ACC是一种高压缩比的音频压缩算法,它的压缩比要远超过较老的音频压缩算法,如AC-3、MP3等。适用于需要较高音质,同时文件体积也要相对较小的场合,如在线音乐流媒体、手机铃声等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1803923.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vscode输出控制台中文显示乱码最有效解决办法

当VSCode的输出控制台中文显示乱码时,一个有效的解决办法是通过设置环境变量来确保编码的正确性。以下是解决方式: 首先,设置环境变量以修正乱码问题: 如果上述方法没有解决乱码问题,请继续以下步骤: 右键…

JSON 格式说明

文章目录 一、关于 JSON二、JSON 常见格式1、对象2、数组3、值4、字符串5、数值6、空白 三、各语言对 Json 的支持 官网:https://www.json.org/json-en.html (本文翻译自此) 一、关于 JSON JSON(JavaScript Object Notation)是一种轻量级的数…

【CS.CN】深入探讨下HTTP的Connection头:通过keep-alive实现高效网络连接

文章目录 0 序言0.1 由来0.2 使用场景0.3 现在还需要吗? 1 Connection: keep-alive的机制2 语法 && 通过设置Connection: keep-alive优化性能3 验证与性能提升4 总结References 0 序言 0.1 由来 Connection头部字段在HTTP/1.1中被引入,主要用于…

Linux安装RocketMQ教程【带图文命令巨详细】

巨详细Linux安装Nacos教程RocketMQ教程 1、检查残留版本2、上传压缩包至服务器2.1压缩包获取2.2创建相关目录 3、安装RocketMQ4、配置RocketMQ4.1修改runserver.sh和runbroker.sh启动脚本4.2新增broker.conf配置信息4.3启动关闭rocketmq4.4配置开机自启动(扩展项&am…

Vxe UI vue 使用 VxeUI.previewImage() 图片预览方法

Vxe UI vue 使用 VxeUI.previewImage() 图片预览方法的调用 查看 github 代码 调用全局方法 VxeUI.previewImage() 参数说明: urlList:图片列表,支持传字符串,也可以传对象数组 [{url: xx’l}] activeIndex:指定默…

力扣经典面试题-旋转链表(Java)

1.题目描述:给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 示例 1: 输入:head [1,2,3,4,5], k 2 输出:[4,5,1,2,3] 示例 2: 输入:head [0,1,2], k …

stanfordcorenlp+python做中文nlp任务,得到的结果中全是空字符串,而不是中文字符串

问题描述 代码: from stanfordcorenlp import StanfordCoreNLP import logging#中文中的应用,一定记得下载中文jar包,并标志lang‘zh’ nlp_zh StanfordCoreNLP(rD:\stanford-corenlp-full-2016-10-31, port8094, langzh,quietFalse,logg…

基于YOLOv8的海面石油泄露检测实例分割完整含数据集

需要收集包含海面石油泄漏的图像数据集,并进行标注以指示泄漏区域。接下来,可以使用深度学习框架如PyTorch或TensorFlow,基于YOLO(You Only Look Once)系列的目标检测模型结构,进行训练。YOLO系列的模型具有…

电压模式 R-2R DAC 的工作原理和特性

在本文中,我们将探索什么是 R-2R DAC 以及如何实现它们。 首先,我们将简要回顾一下开尔文分频器 DAC。这种结构很简单,但需要大量电阻和开关来实现高分辨率 DAC。此问题的一种解决方案是称为 R-2R DAC 的 DAC 结构。这些结构巧妙地利用梯形网…

Elasticsearch 认证模拟题 - 14

一、题目 在集群中输入以下指令: PUT phones/_doc/1 {"brand":"Samsumg","model":"Galaxy S9","features":[{"type":"os", "value":"Android"},{"type":&q…

李飞飞解读创业方向:「空间智能」

在AI领域,李飞飞教授一直是一个举足轻重的存在。她的研究和见解不仅推动了计算机视觉的发展,更对人工智能的未来方向产生了深远的影响。在最近的一次演讲中,李飞飞详细解读了她对于「空间智能」的见解。本文将对她的演讲内容进行详细解读&…

如何使用GPT-4o函数调用构建一个实时应用程序?

本教程介绍了如何使用OpenAI最新的LLM GPT-4o通过函数调用将实时数据引入LLM。 我们在LLM函数调用指南(详见https://thenewstack.io/a-comprehensive-guide-to-function-calling-in-llms/)中讨论了如何将实时数据引入聊天机器人和代理。现在,我们将通过将来自Fligh…

持续警惕火灾风险:学校可燃气体报警器的定期校准检验

可燃气体报警器在学校中的安装、检验和校准对于保护师生生命安全至关重要。 接下来,佰德将探讨可燃气体报警器在学校中的必要性,以及相关实际案例和数据,为您呈现一个安全的学习环境。 一、学校安全不能掉以轻心 学校是培养未来的摇篮&…

Android限制参数传递之StringDef注解的使用

文章目录 1. 引言2. 注解 StringDef2.1 举例2.2 StringDef源码解释 3. 其他类似注解 IntDef、LongDef4. 总结 1. 引言 在参数传递时,如果你想限制传入的参数只能是特定的几个值,该怎么做呢? 除了把参数类型定义为枚举值,还可以使…

Boom 3D软件最新版下载及详细安装教程

值得肯定的是Boom 3D最新版新增的Boom音量控制器和Controlled Boost功能为使用者提供了一个完美的控制,通过一个整齐的设计切换栏的系统音频输出,帮助他们轻松调整音量,从而让他们实现理想的音频输出,有需要的欢迎来开心电玩下载使…

C++笔记之一个函数多个返回值的方法、std::pair、std::tuple、std::tie的用法

C++笔记之一个函数多个返回值的方法、std::pair、std::tuple、std::tie的用法 —— 2024-06-08 杭州 code review! 文章目录 C++笔记之一个函数多个返回值的方法、std::pair、std::tuple、std::tie的用法一.从一个函数中获取多个返回值的方法1. 使用结构体或类2. 使用`std::t…

Polar Web【中等】你知道sys还能这样玩吗

Polar Web【中等】你知道sys还能这样玩吗 Contents Polar Web【中等】你知道sys还能这样玩吗思路&探索源码 EXPPHP测试生成十六进制化的命令上传测试 Python 脚本 运行&总结 思路&探索 本题属实是有些…即使提示了sys也难以迅速想到 /sys.php 这个路径,…

IP纯净度是什么,对用户有多么重要?

在网络应用和数据采集等领域,代理IP被广泛使用,而代理IP的纯净度则直接影响其性能和可用性。代理IP的纯净度主要涉及到代理IP在网络传输过程中的稳定性、匿名性和安全性。今天就带大家一起了解代理IP纯净度对用户的重要性。 第一,保护用户的隐…

密文域可逆信息隐藏安全性研究-从图像到视频

前言 随着云存储、云计算等新兴技术的兴起,海量的隐私信息被广泛地上传、存储到服务器上。为保证用户的隐私性,必须对用户的数据进行加密,然后再将其上传到服务器上。因此,密文域的可逆信息隐藏(reversible data hiding in encry…

RPM包方式离线部署gitlab

下载安装包 要求:可以联网,系统及版本与目标服务器一致。配置gitlab yum仓库 curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash 新建包存放目录 mkdir /root/gitlab 下载gitlab及相关安装包 …