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

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

文章目录

  • 前言
  • 一、什么是模拟信号和数字信号
    • 信号
    • 模拟信号
    • 数字信号
      • 离散时间信号
      • 连续值信号和离散值信号
      • 数字信号
    • 数字和模拟信号的区别一览
  • 二、信号处理系统
  • 总结


前言

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

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

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


总结

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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 8.6.数据库基础技术-数据库的控制
  • LVS理论知识
  • 软件设计之MySQL(1)
  • Oracle(62)什么是内存优化表(In-Memory Table)?
  • 【数据结构】在链式存储结构上建立一棵二叉树的算法
  • 日撸Java三百行(day22:二叉树的存储)
  • Python | Leetcode Python题解之第335题路径交叉
  • Python实战项目:天气数据爬取+数据可视化(完整代码)
  • 【微信小程序】实现中英文切换
  • 100 Exercises To Learn Rust 挑战!准备篇
  • 掌握网络数据的钥匙:Python Requests-HTML库深度解析
  • AI秘境-墨小黑奇遇记 - 初体验(一)
  • GPT-4o mini发布,轻量级大模型如何颠覆AI的未来?
  • PCDN管道收益项目详谈二运营商资管图
  • 【idea】 已经commit还没push怎么修改commit信息?
  • 【Leetcode】104. 二叉树的最大深度
  • 4. 路由到控制器 - Laravel从零开始教程
  • ES6核心特性
  • JavaScript 奇技淫巧
  • JavaScript服务器推送技术之 WebSocket
  • js正则,这点儿就够用了
  • MYSQL 的 IF 函数
  • PAT A1017 优先队列
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • vue-loader 源码解析系列之 selector
  • windows下使用nginx调试简介
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 电商搜索引擎的架构设计和性能优化
  • 官方解决所有 npm 全局安装权限问题
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 说说动画卡顿的解决方案
  • 新版博客前端前瞻
  • 用quicker-worker.js轻松跑一个大数据遍历
  • Java数据解析之JSON
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 数据可视化之下发图实践
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • ###项目技术发展史
  • #FPGA(基础知识)
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • $jQuery 重写Alert样式方法
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (二十三)Flask之高频面试点
  • (附源码)计算机毕业设计高校学生选课系统
  • (九)信息融合方式简介
  • (十)Flink Table API 和 SQL 基本概念
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET Micro Framework初体验(二)
  • :如何用SQL脚本保存存储过程返回的结果集
  • @angular/cli项目构建--Dynamic.Form
  • [Android] Upload package to device fails #2720