音频进阶学习一——模拟信号和数字信号
文章目录
- 前言
- |版本声明:山河君,未经博主允许,禁止转载
- 一、什么是模拟信号和数字信号
- 信号
- 模拟信号
- 数字信号
- 数字和模拟信号的区别一览
- 二、信号处理系统
- 总结
前言
所有软件的运行都得益于硬件上的突破,数字信号是从40年前就开始高速发展的领域。得益于硬件上从一开始的中规模集成电路,到大规模集成电路,再到现如今的超大规模集成电路,促进了功率更小,体积更小,速度更快,价格更便宜的数字计算机。
硬件上的突破使得计算机可以执行复杂的数字信号功能和任务,当然并不是说数字信号就是解决所有信号的解决方案,对于一些需要及时处理的例如:带宽等信号,这种就需要模拟信号或者光信号。
而声音是一种波,恰恰可以将这种波转换成数字信号在软件中进行处理。
本篇文章借鉴了《数字信号处理》、《离散时间信号处理》、《信号与系统》,如果有写错的地方,是笔者个人能力不足,没有理解透彻,恳请告知笔者。
|版本声明:山河君,未经博主允许,禁止转载
一、什么是模拟信号和数字信号
信号
信号定义为随着时间、空间或者其他自变量而变化的物理量。在数学上可以用一个或者多个独立变量的函数表示出来,就例如:
s ( t ) = 5 t s(t) = 5t s(t)=5t
再拿声音举例,某种语音信号可以表示为几种不同振幅和频率的总和,之前文章中有介绍声音波形,如果有不理解的可以看一下音频基础学习二——声音的波形。

其中Ai(t)为正弦波的幅度,Fi(t)为频率,最后的为相位。
模拟信号
在自然界中发生的信号叫做自然信号,例如:人发出来的声音,地震、海浪的播放,往往是随着时间发生变化的。
比如音叉发出的声音:

而自然信号就往往是模拟信号的形式表现,都是随着时间变化

需要铭记的是,模拟信号是随着时间变化而变化的,也意味着自变量(也就是时间 是连续可变的,而信号在自变量的连续值上都有对应的定义,这种在数学定义上叫做连续时间信号。
而这种信号在保存和传输上都需要通过连续的电压、频率等等表示,理论上可以精度是无限高,也就带来了存储不易,处理复杂,传输困难等等缺点,因为在连续电路中极容易受到物理因素的干扰。
数字信号
既然连续时间信号的自变量(在此为时间)上连续可变的,相对应的叫做离散时间信号,也就是自变量仅仅取在一组离散的值上。
以下图释义,图a是连续时间信号,图b是离散时间信号:

数字信号是为了提供处理模拟信号的方法,同时也是一种离散时间信号
再此纠错一个错误:很多博客中都说数字信号就是电压0或者1两种电平表示。这种说法是错的!
确切的说:数字信号是通过有限个离散的值来表示信息的,而在实际应用中,0和1是最常见的两种状态,用于表示二进制系统中的“低电平”和“高电平”。
以高低电平表示的数字信号:

数字和模拟信号的区别一览
| 特性 | 数字信号 | 模拟信号 |
|---|---|---|
| 定义 | 数字信号由离散的数值组成,通常为二进制形式(0和1)。 | 模拟信号是连续变化的信号,代表物理量的连续变化。 |
| 表示形式 | 通过有限个离散的值表示,例如0和1。 | 通过连续的电压、频率或幅度等值表示。 |
| 信号类型 | 离散信号(离散时间、离散幅度)。 | 连续信号(连续时间、连续幅度)。 |
| 噪声抵抗 | 高,数字信号对噪声和干扰具有较强的抗干扰能力。 | 低,模拟信号容易受到噪声和干扰的影响。 |
| 精度 | 受限于位数(如8位、16位),精度取决于离散化程度。 | 理论上精度无限高,但实际受限于系统的分辨率和干扰。 |
| 数据处理 | 处理和存储容易,通常用于计算机和数字设备。 | 处理复杂,通常需要模拟设备和电路。 |
| 存储 | 容易存储和传输,可以用数字设备(如硬盘、闪存)。 | 存储和传输困难,通常需要连续介质(如磁带、模拟介质)。 |
| 示例 | 数字电话、数字计算机、CD、DVD。 | 音频信号、无线电广播、模拟电视。 |
| 转换 | 数字信号可以通过数模转换器(DAC)转换为模拟信号。 | 模拟信号可以通过模数转换器(ADC)转换为数字信号。 |
| 带宽需求 | 带宽可以被压缩,且在传输过程中具有良好的保真度。 | 带宽需求较大且更易受到信号衰减和失真。 |
| 典型应用 | 数据存储、数字通信、计算机处理。 | 音频处理、广播通信、模拟传感器。 |
二、信号处理系统
系统——可以被定义为对某种信号执行某种操作的一台物理设备。例如,用于降低破坏有用信息载体信号的噪声和干扰的滤波器。

上文说过,数字信号提供了处理模拟信号的方法,这种处理模拟信号的数字处理,需要在模拟信号和数字信号直接有一个接口。而这个接口称为模数(A/D)转换器,而与之对应的,从数字信号到模拟信号接口称之为数模(D/A)转换器。

这里就可能有小伙伴有疑惑了,数字信号大多为0,1,是怎么转成模拟信号成为听到的声音的呢?
数字信号在被转换成模拟信号后,通过调制技术和信号处理可以实现振幅的变化,即通过改变模拟信号的某些属性(如振幅、频率或相位)
例如一种转换方法叫做脉冲振幅调制(PAM):
脉冲振幅调制是将数字信号转换为模拟信号的一种基础方法。在PAM中,数字信号的二进制位(0和1)被映射到不同的振幅值。例如:
- 0 可以映射为较低的电压值(例如,0V)。
- 1 可以映射为较高的电压值(例如,5V)。
这样,通过将数字信号的二进制数据转换为不同振幅的脉冲,信号的振幅就会随着数字信号的变化而变化。
这其实是一种数字信号编码方式,本文中不进行深入讲解。
总结
由于知识储量和工作原因,很长一段时间没有写过关于音频的博客了,后面希望能够有充分的时间和大家一样多多提升自己,并能够分享自己整理觉得有意义的东西。
如果对您有所帮助,请帮忙点个赞吧!
相关文章:
音频进阶学习一——模拟信号和数字信号
文章目录 前言|版本声明:山河君,未经博主允许,禁止转载 一、什么是模拟信号和数字信号信号模拟信号数字信号数字和模拟信号的区别一览 二、信号处理系统总结 前言 所有软件的运行都得益于硬件上的突破,数字信号是从40年前就开始高…...
SpringBoot企业人事管理系统-附源码与配套论文
1.1引言 随着计算机技术的飞速发展,计算机在各种单位机构管理中应用的普及﹐管理信息系统的开发在强调管理、强调信息的现代社会中也显得越来越重要。因此,利用计算机高效率地完成人事管理的日常事务,是适应现代各种单位机构制度要求、推动各种单位机构…...
用window计算器实现定点数的十进制和二进制之间相互转换
目录 前言 已知十进制定点数,求二进制定点数 正数 整数部分 小数部分 负数 已知二进制定点数,求十进制定点数 正数 负数 前言 windows 10自带的计算器,具有程序员模式,可以方便的进行进制的转换,但是由于二进制模式下,无法输入十进制的小数,所以无法直接实现定…...
搬砖人2024年的智能工作伙伴 —— 4款思维导图软件种草集!
幕布思维导图这玩意儿特别厉害,成了很多学生学习的好帮手,在学习中经常觉得信息太多太乱,不好理清楚。这时候用幕布思维导图,我们可以把那些复杂的知识点整理得有条有理。每个主题、每个小点都清清楚楚,学习的时候一眼…...
【Python第三方库】Requests全面解析
文章目录 安装基本用法测试网站发送GET请求发送POST请求更多请求请求参数请求头其他常用请求属性处理响应响应状态码响应内容 处理超时处理异常 requests 是一个非常流行的 Python HTTP 库,用于发送所有类型的 HTTP 请求。它简洁易用,能够处理复杂的请求…...
基于CNN的医学X-Ray图像分类全程解析
数据集 我们所使用的数据集是胸部 X 光图像,它包含 2 个类别:肺炎和正常。该数据集由 Paulo Breviglieri 发布,是 Paul Mooney 最受欢迎数据集的修订版,此更新版本的数据集在验证集和测试集中的图像分布更加均衡。数据集分为 3 个文件夹(训练、测试、验证),包含肺炎和正…...
C++初学者指南-5.标准库(第二部分)--排序序列操作
C初学者指南-5.标准库(第二部分)–排序序列操作 文章目录 C初学者指南-5.标准库(第二部分)--排序序列操作二分查找binary_searchlower_boundupper_boundequal_rangeincludes 合并mergeinplace_merge 设置操作set_unionset_intersectionset_differenceset_symmetric_difference …...
matplotlib库学习之绘图透明度设置(精炼准确)
matplotlib库学习之透明颜色设置 一、简介 在数据可视化中,透明度设置可以使图表更具层次感,特别是在多层叠加图表时。matplotlib库提供了多种方法来设置图表各个部分的透明度,包括图形、文本、图例、坐标轴等部分。 二、为什么要设置成透明…...
select多路复用(tcp通信)
文章目录 项目名称项目结构 项目名称 io_demo1 项目结构 $ tree . ├── build ├── CMakeLists.txt ├── debug.gdb ├── include │ ├── mysocket.h │ ├── tcp_client.h │ └── tcp_server.h ├── sources │ └── server.cpp └── src├─…...
STM32IIC与SPI详解
单片机里的通信协议其实蛮多的,IIC;SPI;MQTT;CAN;包括串口也是一种通信协议。而串口通信虽然实现了全双工,但需要至少三根线,为了节省这一根线的成本,于是IIC诞生了。 目录 一.IIC…...
K8s第三节:k8s1.23.1升级为k8s1.30.0
上回书说到我们使用了kubeadm安装了k8s1.23.1,但是在k8s1.24之前还是使用docker作为容器运行时,所以这一节我打算将我安装的k8s集群升级为1.30.0版本; 1、修改containerd 配置 因为我们安装的docker自带containerd,所以我们不需要重新安装con…...
.gitignore不生效的解决方案
为什么会不生效 因为文件已经被git追踪(或者说被track 或者说被索引,都是一个意思)。 目前.gitignore面对已经被git追踪的文件是无法生效的。(这是现状,我们只能接收这个现状。不过个人觉得git官方可以对这方面进行优化调整,让其…...
脱胎于 S 语言的R语言,Ross Ihaka 和 Robert Gentleman 和社区的力量让 R 在学术界与研究机构放光彩
R语言从一门用于统计学教学的编程语言,发展成为全球数据科学领域的重要工具,离不开其强大的功能、丰富的社区资源和开源精神。这些都离不开Ross Ihaka 和 Robert Gentleman 和 社区的力量。 在1990年代初,新西兰奥克兰大学的统计学教授Ross I…...
JavaEE 第6节 内存可见性问题以及解决方法
目录 一、什么是内存可见性问题? 1、问题代码演示 2、基础知识铺垫 1)硬件层面 2)模型层面(JMM) 二、内存可见性问题的原因 三、volatile解决内存可见性问题 一、什么是内存可见性问题? 1、问题代码…...
es基本操作
以下是一些 Elasticsearch 常用的命令,涵盖了索引管理、数据操作和集群管理等方面: 基本操作 检查集群状态: curl -X GET "localhost:9200/_cluster/health?pretty"查看集群健康状态和基本信息。 查看所有索引: curl…...
开源 AI 智能名片 S2B2C 商城小程序赋能下的社区团购商业模式研究
摘要:本文深入探讨了社区团购商业模式的本质、特点及其优势,并详细分析了开源 AI 智能名片 S2B2C 商城小程序在社区团购中的应用与价值。通过对相关案例的研究和数据的分析,揭示了这一创新组合对社区商业生态的重要影响,为未来社区…...
AutoSar AP软件规范中CM介绍及功能概要
1. 前言 为了理解AutoSar AP中EM的概念,生搬硬套的翻译了《 AUTOSAR SWS CommunicationManagement.pdf》的介绍部分,并按照自己的理解进行了修改。如下 2. AUTOSAR_SWS_CommunicationManagement.pdf的介绍部分 本文件包含AUTOSAR AP通信管理的功能、A…...
【图形学】TA之路-向量
向量 向量 是一个有大小和方向的数学对象。在三维空间中,向量通常表示为 (v_x, v_y, v_z)。 基本操作 加法: a b (a_x b_x, a_y b_y, a_z b_z)减法: a - b (a_x - b_x, a_y - b_y, a_z - b_z)标量乘法: k * v (k * v_x, …...
[flink]部署模式
部署模式 在一些应用场景中,对于集群资源分配和占用的方式,可能会有特定的需求。 Flink为各种场景提供了不同的部署模式,主要有以下三种:会话模式(Session Mode)、单作业模式(Per-Job Mode&…...
为什么不用postman做自动化
面试的时候被问到:为什么不用postman做自动化 打开postman,看到用例集管理、API 管理、环境管理这三个功能,用户体验感算得上品牌等级了 为什么不用呢,文心一言给了一些答案 不适合大规模自动化测试:Postman 主要是为…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
uniapp 实现腾讯云IM群文件上传下载功能
UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...
java高级——高阶函数、如何定义一个函数式接口类似stream流的filter
java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用(Math::max) 2 函数接口…...
《Offer来了:Java面试核心知识点精讲》大纲
文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...
