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

文章目录

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


前言

所有软件的运行都得益于硬件上的突破,数字信号是从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.rhkb.cn/news/396799.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt 实战(9)窗体 | 9.2、QDialog

文章目录 一、QDialog1、基本概念2、常用特性2.1、模态与非模态2.2、数据交互 3、总结 前言: Qt框架中的QDialog类是一个功能强大且灵活的对话框控件,广泛应用于各种GUI(图形用户界面)应用程序中,用于处理用户输入、消…

2024年4月份我放弃了前端,转行了!!!猜我得到了什么?

为什么离开这个行业?最近在干什么? 为什么离开这个行业这个问题其实 我真的真的想了很多很多,我也分享给你们我的想法,希望可以帮助想继续深耕这个行业的继续深耕,犹豫想转行的帮助你们确定转行。 我能干什么&#x…

开源 AI 智能名片 S2B2C 商城小程序赋能下的社区团购商业模式研究

摘要:本文深入探讨了社区团购商业模式的本质、特点及其优势,并详细分析了开源 AI 智能名片 S2B2C 商城小程序在社区团购中的应用与价值。通过对相关案例的研究和数据的分析,揭示了这一创新组合对社区商业生态的重要影响,为未来社区…

FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流

FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流 合集 - FFmpeg开发实战(46) 1.FFmpeg开发笔记(一)搭建Linux系统的开发环境2023-04-162.FFmpeg开发笔记(二)搭建Windows系统的开发环境2023-04-29…

深入探索 Wireshark——网络封包分析的利器

一、引言 在当今数字化的时代,网络通信变得日益复杂和关键。无论是企业的网络运维,还是网络安全研究,都需要深入了解网络中传输的数据。Wireshark 作为一款强大的网络封包分析工具,成为了网络工程师、安全研究人员和技术爱好者不…

8.6-设置mysql开机自启+角色生效+主从数据库

一、设置mysql开机自启 1.添加开机自启 #添加开机启动 [root004 mysql]# #systemctl enable mysqld [root004 mysql]# chkconfig --list注:该输出结果只显示 SysV 服务,并不包含 原生 systemd 服务。SysV 配置数据 可能被原生 systemd 配置覆盖。 要列…

【C语言】位段详解

🦄个人主页:小米里的大麦-CSDN博客 🎏所属专栏:https://blog.csdn.net/huangcancan666/category_12718530.html 🎁代码托管:黄灿灿 (huang-cancan-xbc) - Gitee.com ⚙️操作环境:Visual Studio 2022 目录 一、什么是位段? 二、…

Leetcode面试经典150题-2.两数相加

解法都在代码里,不懂就留言或者私信 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val …

ubuntu插入模块测试

文章目录 一、环境二、步骤 一、环境 ubuntu 20.04 内核版本:5.15-generic 二、步骤 先看一下ubuntu用的哪个内核版本: 到内核目录下: 随便建个文件夹存一下编译完的ko模块: 写测试代码: 写makefile:…

Flink-DataWorks第六部分:数据运维(第62天)

系列文章目录 运维中心 4.1 功能概述 4.2 操作流程 4.2.1 操作流程概览 4.2.2 步骤一:查看周期任务配置 4.2.3 步骤二:测试周期任务 4.2.4 步骤三:周期任务补历史数据 4.2.5 步骤四:查看周期实例 4.2.6 步骤五:查看执…

knn图像分类

K近邻算法(K-NN),即给定一个已训练的数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,则判定该输入实例同属此类。 1. OpenCV K近邻模块的使用 接下来通过一个例子&…

掌握 Nuxt 3 的页面元数据:使用 definePageMeta 进行自定义配置

title: 掌握 Nuxt 3 的页面元数据:使用 definePageMeta 进行自定义配置 date: 2024/8/11 updated: 2024/8/11 author: cmdragon excerpt: 摘要:本文详细介绍Nuxt 3框架中definePageMeta的使用方法,包括如何为页面组件定义元数据&#xff0…

集合的框架(之一)

集合的含义: 集合是一个可变的容器,可以随时向集合中添加元素,也可以随时从集合中删除元素。另外,集合还提供了若干个用来操作集合中数据的方法。集合里的数据,我们称之为元素(elements);集合只能用来存储…

2025年美国数学竞赛AMC8暑期备考:吃透625道真题和知识点(持续)

距离接下来最近的2025年AMC8美国数学竞赛还有几个月的时间,实践证明,做真题,吃透真题和背后的知识点是备考AMC8有效的方法之一。 通过做真题,可以帮助孩子找到真实竞赛的感觉,而且更加贴近比赛的内容,可以…

1915_开源C语言实现的通用队列

经常在工作中遇到一些队列处理的场景,以前要么是借用FreeRTOS这样的系统中的相关功能,要么是通过数组做一个简单的队列模型。但是,这两种方案都具有一定的局限性能,前者要求的FreeRTOS不见得相应的软件中有,而后者只能…

超好玩的肉鸽游戏:《暴君的游戏》手机单机游戏分享

《暴君的游戏》(Despots Game)是一款结合了自走棋和roguelike元素的像素策略冒险游戏。游戏以其独特的战斗系统和丰富的职业选择,为玩家提供了深度的策略体验和探索乐趣。 游戏特色包括: 角色职业多样性:玩家可以招募…

使用历史版本比对法排查C++程序中的内存泄漏问题

目录 1、问题描述 2、使用Process Explorer实时查看程序的虚拟内存占用 2.1、对于内存泄漏问题,需要查看程序占用的虚拟内存 2.2、Windows任务管理器中看不到程序进程占用的虚拟内存,使用Process Explorer工具可以看到 2.3、通过Process Explorer工具看到每次泄漏的内存…

大数据-75 Kafka 高级特性 稳定性-一致性保证 LogAndOffset(LEO) HightWatermark(HW) 水位/水印

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

LVS实战项目

LVS简介 LVS:Linux Virtual Server,负载调度器,内核集成,章文嵩,阿里的四层SLB(Server LoadBalance)是基于LVSkeepalived实现。 LVS集群的类型 lvs-nat : 修改请求报文的目标IP, 多目标 IP 的 DNAT lvs-dr &#xff…

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——6Resnet实现黑线识别

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——6Resnet实现黑线识别 ​ 比赛还有重要部分就是黑线的识别,这块地平线社区的帖子很多 ​ 在本次我就使用了社区吴超大佬写出的文章,当然我们的步骤有所不同,也是比较省…