音频进阶学习一——模拟信号和数字信号

news2024/9/23 11:17:11

文章目录

  • 前言
    • |版本声明:山河君,未经博主允许,禁止转载
  • 一、什么是模拟信号和数字信号
    • 信号
    • 模拟信号
    • 数字信号
    • 数字和模拟信号的区别一览
  • 二、信号处理系统
  • 总结


前言

所有软件的运行都得益于硬件上的突破,数字信号是从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)。

这样,通过将数字信号的二进制数据转换为不同振幅的脉冲,信号的振幅就会随着数字信号的变化而变化。

这其实是一种数字信号编码方式,本文中不进行深入讲解。


总结

由于知识储量和工作原因,很长一段时间没有写过关于音频的博客了,后面希望能够有充分的时间和大家一样多多提升自己,并能够分享自己整理觉得有意义的东西。

如果对您有所帮助,请帮忙点个赞吧!

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

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

相关文章

达梦数据库 物理备份还原

达梦的物理备份还原 1.背景2.要求3.实验步骤3.1 相关术语3.2 准备工作3.3 联机备份还原3.3.1 数据备份3.3.1.1 手动备份3.3.1.2 定时备份 3.3.2 管理备份3.3.2.1 备份目录管理3.3.2.2 备份集校验与删除 3.3.3 数据还原 3.4 脱机备份还原3.4.1 DMRMAN工具3.4.2 数据备份3.4.2.1 …

https://ffmpeg.org/

https://ffmpeg.org/ https://www.gyan.dev/ffmpeg/builds/ https://github.com/BtbN/FFmpeg-Builds/releases F:\Document_ffmpeg F:\Document_ffmpeg\ffmpeg-master-latest-win64-gpl-shared\bin

python模式设计代码之观察者模式

1、观察者模式 话题订阅模式。观察者模式有两个角色,分别是话题发布者和话题订阅者(即观察者)。发布者就是把消息发送给话题,观察者就是订阅这个话题从而得到最新的资讯。这个模式的作用就拿手机的消息推送来说,app身…

深入C# .NET核心:委托与事件机制全解析

摘要: 在C# .NET编程中,委托和事件是实现异步编程和对象间通信的关键机制。理解它们的工作原理对于编写高效、响应式的应用程序至关重要。本文将深入探讨C# .NET中的委托与事件,从基础概念到高级应用,为读者提供全面的指导。 正文…

如何提高游戏的可玩性和趣味性?

提高游戏的可玩性和趣味性是吸引玩家并保持他们长期参与的关键。以下是一些策略和建议,可以帮助您增强游戏的吸引力和娱乐价值: 1. 独特的游戏机制 创新玩法:开发新颖、独特的游戏机制,让玩家在体验中感受到前所未有的乐趣。避免…

【网络编程】字节序,IP地址、点分十进制、TCP与UDP的异同

记录学习,思维导图绘制 目录 1、字节序​编辑 2、IP地址 3、点分十进制 4、TCP与UDP的异同 1、字节序 2、IP地址 3、点分十进制 4、TCP与UDP的异同

STL源码刨析:红黑树(RB-tree)

目录 1.前言 2.RB-tree的简单介绍 3.RB-tree的插入节点操作 4.RB-tree的删除节点操作 5.RB-tree的节点设计 6.RB-tree的迭代器设计 7.RB-tree的数据结构 8.RB-tree的构造与内存管理 9.RB-treed的元素操作 前言 在文章《STL源码刨析:树的导览》中,曾简单的…

使用 MongoDB 构建 AI:Flagler Health 的 AI 旅程如何彻底改变患者护理

Flagler Health 致力于为慢性病患者提供支持,为其匹配合适的医生以提供合适的护理。 通常,身患严重病痛的患者面临的选择有限,他们往往需要长期服用阿片类药物,或寻求成本高昂的侵入性外科手术干预。遗憾的是,后一种方…

linux小组件:git

git是什么? git是版本控制器(去中心化的分布式系统)可以快速高效地处理从小型到大型的各种项目。易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。 什么叫版本…

【数据结构七夕专属版】单链表及单链表的实现【附源码和源码讲解】

本篇是博主在学习数据结构时的心得,希望能够帮助到大家,也许有些许遗漏,但博主已经尽了最大努力打破信息差,如果有遗漏还请见谅,嘻嘻,前路漫漫,我们一起前进!!&#xff0…

微信小程序--19(.wxml 模板文件简单归纳)

类似HTML用来描述当前页面的结构 一、普通样式 1.<view> 内容 </view> 二、滚波样式 1.<swiper> 内容 </swiper> 2.<swiper-item>滚波内容 </swiper-item> 3.常用属性 纵向&#xff1a;scroll-y横向&#xff1a;scroll-x圆点颜色&am…

LinuxC高级day03(Shell脚本)

【1】Shell脚本 1》Shell脚本基础概念 1> 概念 Shell使用方式&#xff1a;手动在命令行下命令或用Shell脚本 Shell脚本本质&#xff1a;Shell命令的有序集合 扩展名最好以 .sh 结尾&#xff0c;见名知义 也可以没有 Shell既是应用程序&#xff0c;又是一种脚本语言 解…

迁移学习之基本概念

迁移学习 1、通俗定义 迁移学习是一种学习的思想和模式 迁移学习作为机器学习的一个重要分支&#xff0c;侧重于将已经学习过的知识迁移应用于新的问题中 迁移学习的核心问题是&#xff0c;找到新问题和原问题之间的相似性&#xff0c;才可以顺利地实现知识地迁移 定义&…

运行pytorch报异常处理

一、问题现象及初步定位&#xff1a; 找不到指定的模块。 Error loading "D:\software\python3\Lib\site-packages\torch\lib\fbgemm.dll 此处缺少.dll文件&#xff0c;首先下载文件依赖分析工具 Dependencies https://github.com/lucasg/Dependencies/tree/v1.11.1 之后下…

leetcode169. 多数元素,摩尔投票法附证明

leetcode169. 多数元素 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 示例 1&#xff1a; 输入&#xff1a;nums [3,2,3] 输…

C# winform 三层架构 增删改查 修改数据(修改篇)

ss一.留言 本专栏三层架构已经更新了 添加 登录 显示&#xff0c;还差修改以及删除&#xff0c;本篇更新修改&#xff0c;主要操作为点击修改某一条数据&#xff0c;然后跳转页面进行修改。 二.展示 我们先看DAL代码 /// <summary>/// 修改/// </summary>/// &l…

【RTOS面试题】什么是抢占?抢占的原理、抢占的好处、抢占有什么局限性?

&#x1f48c; 所属专栏&#xff1a;【RTOS-操作系统-面试题】 &#x1f600; 作  者&#xff1a; 于晓超 &#x1f680; 个人简介&#xff1a;嵌入式工程师&#xff0c;专注嵌入式领域基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大家&#xf…

大语言模型的模型量化(INT8/INT4)技术

目录 一、LLM.in8 的量化方案 1.1 模型量化的动机和原理1.2 LLM.int8 量化的精度和性能1.3 LLM.int8 量化的实践 二、SmoothQuant 量化方案 2.1 SmoothQuant 的基本原理2.2 SmoothQuant 的实践 三、GPTQ 量化训练方案 3.1 GPTQ 的基本原理3.2 GPTQ 的实践 参考资料 一、LLM.i…

让对话AI帮助你做程序架构设计,以及解决你的疑问

我想问下对话AI,本文采取的是chatgpt免费版 我问&#xff1a; 你说程序的设计&#xff0c;前后端分离的BS架构。比如工人基础档案1000条记录&#xff0c;工程项目基础档案10条记录&#xff0c;其他相关这两个基础档案的具体功能&#xff0c;比如打卡记录&#xff0c;宿舍记录&…

SD-WAN解决方案功能概述

SD-WAN&#xff08;软件定义广域网&#xff09;是一种前沿的网络技术&#xff0c;旨在为企业提供灵活、智能且高效的广域网连接。SD-WAN的主要功能可以分为四大类&#xff1a;路由、安全性、性能优化和管理控制。 路由功能 路由功能是SD-WAN解决方案的核心部分之一。传统的广域…