(done) 声音信号处理基础知识(4) (Understanding Audio Signals for ML)

news/2024/11/17 3:50:42/

来源:https://www.youtube.com/watch?v=daB9naGBVv4


模拟信号特点如下
时域连续(x轴)
振幅连续(y轴)
在这里插入图片描述

如下是模拟信号的一个例子:
在这里插入图片描述

数字信号特点如下:
一个离散值序列
数据点的值域是一系列有限的值
在这里插入图片描述

ADC:模拟信号到数字信号的转换
1.采样
2.量化
在这里插入图片描述

采样:对模拟信号进行采样
在这里插入图片描述

Locating Samples: 定位样本 T 指的是任意两个采样点之间间隔的时间
在这里插入图片描述

T 的倒数就是采样率
在这里插入图片描述

低采样率会得到低采样误差
高采样率会得到高采样误差
在这里插入图片描述

一个问题:为什么音频采样率大部分时候都是 44100hz ?
在这里插入图片描述

通常认为,采样频率至少得是信号频率的两倍以上,否则会发生信号混叠
在这里插入图片描述

所以,CD 的 nyquist frequency 是 22050
人类能听到的hz范围是 20~20Khz。因此,只要把 20Khz 的声音采样好就行。
因此,44100hz可以采样到 22050 hz 以下频率的声音而不发生混叠。
这就是音频CD选择 44100hz 采样率的原因
在这里插入图片描述

以下是发生混叠 aliasing 的一个例子:
在这里插入图片描述

为了把模拟信号转为数字信号,这里有一个步骤叫 “量化”,把振幅的每一个小部分分配给一个离散值
在这里插入图片描述

量化的分辨率是上一张图的 bits 的数量,通常也叫做 bit depth。CD的分辨率一般是 16 bits
在这里插入图片描述

使用以上信息,可以计算出 CD 中 1min 的音频所需的存储大小是 5.49 MB
在这里插入图片描述

一个概念叫 Dynamic range 动态范围
可变化信号最大值和最小值的比值
在这里插入图片描述

一般而言,分辨率越大,我们使用的 bit depth 越多,dynamic range 也就越大
在这里插入图片描述

SQNR 约等于 6.02 x Q,Q 是 bit depth
在这里插入图片描述

对于 CD 来说,由于 bit depth = 16,经过计算,SQNR(16) 约等于 96dB
在这里插入图片描述

问一个问题:我们如何记录声音
我们说话,空气产生震动,震动集中麦克风,麦克风组件开始震动,麦克风组件的震动产生电子模拟信号,模拟信号传给 ADC,ADC应用采样率和量化避免混叠(可能还有低通滤波器过滤掉超过 nyquist frequency 的信号),最终得到一个数字信号,存入电脑中
在这里插入图片描述

如下图是重建声音的过程,经过一个 DAC
在这里插入图片描述


http://www.ppmy.cn/news/1530848.html

相关文章

制作一个rabbitmq-sdk以及rabbitmq消费者实现定时上下线功能

目录结构 pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">&l…

JavaScript 学习

一、输出 为方便调试可以输出内容&#xff0c;但是用户是看不到的。要在开发者模式中看。 console . log ( "Hello" )&#xff1b; 二、外部文件引用 可以直接在html中写JS <head> <meta charset"utf-8"> <script> console.log("he…

利用 GlobalPointer 进行中文命名实体识别

利用 GlobalPointer 进行中文命名实体识别 在自然语言处理领域&#xff0c;命名实体识别&#xff08;NER&#xff09;是一个重要任务&#xff0c;它旨在识别文本中的特定信息单元&#xff0c;如人名、地名和组织名等。本文将详细分析使用 GlobalPointer 进行中文命名实体识别的…

甘肃非遗文化网站:Spring Boot开发实战

3 系统分析 当用户确定开发一款程序时&#xff0c;是需要遵循下面的顺序进行工作&#xff0c;概括为&#xff1a;系统分析–>系统设计–>系统开发–>系统测试&#xff0c;无论这个过程是否有变更或者迭代&#xff0c;都是按照这样的顺序开展工作的。系统分析就是分析系…

Linux-L14-Linux中把用户加入到管理者root中

目的 将用户添加到root用户组&#xff08;通常是管理员组&#xff09; 步骤 这可以通过usermod命令来完成 1打开终端 如果你需要为新用户添加到root组&#xff0c;首先使用以下命令创建一个新用户&#xff08;如果用户已经存在&#xff0c;可以跳过这一步&#xff09;&…

如何安装和注册 GitLab Runner

如何安装和注册 GitLab Runner GitLab Runner 是一个用于运行 GitLab CI/CD (Continuous Integration/Continuous Deployment) 作业。它是一个与 GitLab 配合使用的应用程序&#xff0c;可以在本地或云中运行。Runner 可以执行不同类型的作业&#xff0c;例如编译代码、运行测…

计算机毕业设计 物业智慧系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

签署《AI安全国际对话威尼斯共识》 智源持续推动人工智能安全发展

近日&#xff0c;由AI安全国际论坛&#xff08;Safe AI Forum&#xff09;和博古睿研究院&#xff08;Berggruen Institute) 共同举办的第三届国际AI安全对话&#xff08;International Dialogues on AI Safety&#xff09;在威尼斯举办。图灵奖得主Yoshua Bengio、姚期智教授&…