信号频谱

article/2025/10/14 7:13:59

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

频谱是指一个时域的信号在频域下的表示方式,可以针对信号进行傅里叶变换而得,所得的结果会是以分别以幅度及相位为纵轴,频率为横轴的两张图,不过有时也会省略相位的信息,只有不同频率下对应幅度的资料。有时也以“幅度频谱”表示幅度随频率变化的情形,“相位频谱”表示相位随频率变化的情形。

简单来说,频谱可以表示一个信号是由哪些频率的弦波所组成,也可以看出各频率弦波的大小及相位等信息。 

18212946_Uri7.png

图1

1. 简介

信号若随着时间变化,且可以用幅度来表示,都有其对应的频谱。包括可见光(颜色)、音乐无线电波振动等都有这样的性质。当这些物理现象用频谱表示时,可以提供一些此信号产生原因的相关信息。例如针对一个仪器的振动,可以借由其振动信号频谱的频率成分,推测振动是由哪些元件所造成。

2. 一些信号的频谱

2.1. 可见光

图2 铁在可见光部分的发射光谱

File:Iron Spectrum.jpg

图3 铁的光谱线

光源由不同的颜色所组成,各颜色的光有不同的频率,所占的比例可能也有不同。三棱镜透过折射的方式,将不同频率的光折射到不同的位置,因此可以看到不同颜色的光。同样的,也可以将一般光源用三棱镜处理,投映(投影映射)出连续的或不连续的彩色光带。光带的颜色表示其频率,而明暗可表示其比例的多寡,这就是光的频谱,一般称为光谱。若所有频率的颜色含量都一様,其合成的颜色会是白色,而其幅度对应频率的频谱会是一条水平线。因此一般会将频谱为水平线的信号以“白色”来称呼。

2.2. 声音

音源也可以由许多不同频率的声音组成。不同频率会刺激耳朵中对应的接收器。若主要的刺激只有一个频率,我们就可以听到其音高,音源的音色会由声音频号的频谱中,其他频率的部分来决定,也就是所谓泛音。一般会称为“噪音”的声音,其中会包括许多不同频率。若声音的频谱是一条水平线,则称为白噪声或白噪音,此词也可常用在其他型式的信号及频谱。

2.3. 广播及通信

在广播及通信的领域中,频谱会由许多不同的信号来源共享。每个广播电台及电视台所传送信号的频率均需在各自指定的范围内,称为“信道”。当许多广播同时发送信号时,各个信道上有各自独立的信息,广播的频谱即为所有个别信道信号的总和,分布在很广的频率范围内。任何一个广播接收器只能接收到单一的电压对时间信号,因此会使用LC电路来选择单一的信道频率范围,然后将接收到的信息解调制,得到需要的信息。若将接收器各频率下信号的强弱对应频率绘图,所得的就是其接收信号的频谱。

3. 频谱分析

18212946_79tW.png

图4 一个三角波在时域(上图)及频域(下图)的图形。三角波的基频为220Hz。

图5

图6

频谱分析是一种将复噪声号分解为较简单信号的技术。许多物理信号均可以表示为许多不同频率简单信号的和。找出一个信号在不同频率下的信息(可能是幅度、功率、强度或相位等)的作法就是频谱分析。

频谱分析可以对整个信号进行。不过有时也会将信号分割成几段,再针对各段的信号进行频谱分析。周期函数(例如sint)最适合只考虑一个周期的信号来进行频谱分析。傅里叶分析中有许多分析非周期函数时需要的数学工具。

一个函数的傅里叶变换包括了原始信号中的所有信息,只是表示的形式不同。因此可以用傅里叶逆变换重组原始的信号。若要完整的重组原始信号,需要有每个频率下的幅度及其相位,这些信息可以用二维向量、复数、或是极座标下的大小及角度来表示。在信号处理中常常考虑幅度的平方,也就是功率,所得的就是功率谱密度

3.1. 离散傅里叶变换

实际上,大部分的仪器及软件都用快速傅里叶变换来产生频谱的信号。快速傅里叶变换是一种针对采样信号计算离散傅里叶变换的数学工具,可以近似傅里叶变换的结果。至于为什么要用离散傅里叶变换这个数学工具来处理采样信号呢,因为傅里叶变换的定义是关于积分的,傅里叶变换的定义中的f(t)是一个连续函数,而在实际应用中,信号虽然是连续的,但我们只能进行离散地采样。如果我们使用傅里叶变换,就必须有一个连续的函数,否则没法使用傅里叶变换。所以,离散版本的傅里叶变换就应运而生。离散版本的傅里叶变换专门用来处理原始输入不是连续函数,而是采样得到的离散序列的情况。

随机性信号(或噪声)的傅里叶变换也是随机性的。需要利用一些取平均值的方式来得到其频率分布(frequency distribution)。一般来说会将资料依一定的时间分段,将各段资料进行傅里叶变换,再将变换后的幅度或幅度平方(幅度平方较常用)平均,以得到傅里叶变换的平均值。在处理取样的时域资料时,常用上述的作法,配合离散傅里叶变换来处理,这种处理方式称为Welch法(Welch's method)。若所得的频谱是平的,此信号会视为“白噪声”,不过许多信号在时域下看似噪声,却可以借由这样的处理方式得到一些频域的信息。

3.1.1. 离散余弦变换

离散余弦变换(Discrete Cosine Fourier transform)是离散版本的余弦傅里叶变换。至于为什么要使用余弦变换而不是使用正弦变换,最主要的原因是余弦函数是偶函数,有沿着坐标轴对称的性质,在离散版本中,我们只需要用一半的空间去存储,另一半的信息可以通过计算得到,没有必要存储。

这就涉及到离散余弦变换(DCT)的最主要的一个应用:压缩。一串采样后信号(声音1D,图像2D)经过DCT处理后,变成了其频域信息,利用偶函数特点,只需要存储一半的信息;再利用频率叠加的特性,删去后面几个表示频率的系数(节约空间),再做逆变换,对人眼、人耳来说,不容易察觉(这些丢失的高频信号)。

3.1.2. 沃尔什变换

3.1.3. 小波变换

4. 音乐的声学特性

音乐的频谱是决定音色的要素之一,是指不同频率的谐波及泛音相对于基频(也就是音高)的强度。但实际上用得更多的是时频谱。时频谱不但能将讯号分解,还能显示出各信号成分随时间的变化情况。频谱分析仪(也叫做信号分析仪)可以将输入的音乐信号变换为其组成频率的图像,并显示出这些组分随时间如何起伏变化。

18212947_A0pv.jpg

图7 频谱分析仪(即信号分析仪)

这种图像称为声学时频谱。以软件为主的声音频谱分析仪只需很低的价格即可购得,一般而言也可达到令人满意的结果。由频谱分析仪产生的频谱图可以提供音乐的声波标记图(acoustic signature)。频谱图可以看出其基频及泛音,也可以用用来分析乐器的起音、衰减、延音及释音(即ADSR),应用在音乐合成上。

G
M
T
Detect languageAfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu
AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu
Text-to-speech function is limited to 200 characters
Options : History : Feedback : DonateClose

转载于:https://my.oschina.net/wangsifangyuan/blog/875856


http://chatgpt.dhexx.cn/article/aTrirtkH.shtml

相关文章

晋南讲堂之持久层框架ORM简介

1. 什么是ORM? ORM全称 Object/Relation Mapping,即对象/关系映射,它完成了面向对象语言到关系型数据库的映射,作用是把对持久化对象(POJO,Plain Old Java Object)的保存、修改、删除等操作转换成对数据库的操作,是两者…

持久层框架的比较Hibernate与 MyBatis 胡俊铭

最近网上 看到很多人质疑....现在好多Web项目用了MyBatis,没感觉MyBatis好到哪里了,从开发效率上讲,不管是Hibernate的反向工程,还是自动建表,关联映射都比MyBatis方便得多。难道仅仅是因为运行速度,Hibernate也有缓存啊。或者,二者适用场合不同,再或者,MyBatis就是比…

一起来学SpringBoot(七)持久层框架

springboot具有非常棒的持久层框架支持,下面我将介绍我用过的三种持久层框架进行简述使用。 由于这里操作的都是一张表,这里贴出通用的yml和建表语句 切记这里使用的是mysql8 ,5.8之前的朋友请修改后缀去掉com.mysql.cj.jdbc.Driver 中的cj。…

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Obje…

Mysql的持久层_持久层(数据层,Dao层) MyBatis框架

所谓的持久层就是把数据可以永久保持的存储到设备中,不像放到内存中那样断电就消失,一般来说,持久层为直接的理解就是对数据库的各种操作,如CRUD(增加,删除,修改,查询),更新等操作 持久层,就是把持久的动作封装成一个独立的层,这是为了降低功能代码之间的关联.创建一个更清晰的…

Spring 从入门到精通 (二十) 持久层框架 MyBatis

关键词:Spring | 整合 | 持久层 | MyBatis 本专栏通过理论和实践相结合,系统学习框架核心思想及简单原理,原创不易,如果觉得文章对你有帮助,点赞收藏支持博主 ✨ 目录 一、MyBatis开发步骤1.1、创建实体类1.2、实体别名…

持久层框架:Mybatis快速入门

Mybatis/Hibernate/JPA作为持久层使用广泛的框架,在实际的项目中有很多的追随者。这篇文章将会通过简单的实例让完全不知道Mybatis为何物的入门者迅速Catchup,对于有一些Java基础的入门者应该能够很快学会如何使用Mybatis进行CRUD(增查改删&a…

持久层框架JPA与Mybatis该如何选型

一、现状描述 目前java 持久层ORM框架应用最广泛的就是JPA和Mybatis。JPA只是一个ORM框架的规范, 对该规范的实现比较完整就是Spring Data JPA(底层基于Hibernate实现),是基于Spring的数据持久层框架,也就是说它只能用在Spring环…

Java持久层框架之mybatis使用

一.什么是框架,框架从何而来,为什么使用框架? 框架(framework): 1.是一系列jar包,其本质是对JDK功能的拓展.(jar包,jar:class文件的压缩包) 2.框架是一组程序的集合,包含了一系列的最佳实践,作用是解决某一个领域的问题. 最佳实践(Best Practice):实际上是无数程序员经历过无数…

数据持久层框架Mybatis

目录 1.软件开发3层架构 2.什么是框架? 3.传统JDBC开发的不足? 4.什么是Mybatis? 5.Mybatis入门案例? 6.Mybatis增删改查案例? 7.Mybatis代理实现DAO开发? 8.Mybatis高级映射 1.软件开发3层架构 软…

常见持久层框架赏析,到底是什么让你选择 MyBatis?

在绝大多数在线应用场景中,数据是存储在关系型数据库中的,当然,有特殊要求的场景中,我们也会将其他持久化存储(如 ElasticSearch、HBase、MongoDB 等)作为辅助存储。但不可否认的是,关系型数据库…

Java持久层框架

一、ORM框架 ORM:对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换 。从效果上说,它其实是创建了一…

17-Spring持久层框架整合

上一篇:16-Spring 基于注解的AOP编程、AOP总结https://blog.csdn.net/fsjwin/article/details/109482768 1.为什么Spring要与持久层框架进行整合 spring是一个优秀的框架,他的优秀支持就是能整合所有程序员想要让他整合的框架,这里所说的持…

MyBatis持久层框架

文章目录 一、Maven搭建1、本地maven仓库以及本地依赖2、idea搭建maven环境3、配置Product实体类4、配置Product接口5、配置db.properties文件6、配置SqlMapperConfig.xml文件7、配置ProductMapper.xml8、配置测试类9、运行 一、Maven搭建 1、本地maven仓库以及本地依赖 2、id…

Java数据持久层框架

一、前言 1.持久层 Java数据持久层,其本身是为了实现与数据源进行数据交互的存在,其目的是通过分层架构风格,进行应用&数据的解耦。 我从整体角度,依次阐述JDBC、Mybatis、MybatisPlus。 前者总是后者的依赖。只有在了解前…

三大框架 —— 持久层框架MyBatis

持久层框架MyBatis 1. mybatis介绍2. 执行流程3. 使用步骤代码实现举例:商品分类CRUD操作 4. 关联关系4.1 一对一4.2 一对多 5. 参数占位符6. 复杂搜索6.1 动态SQL语句6.2 集合参数 1. mybatis介绍 传统框架的缺点: 使用jdbc需要程序员创建连接&#xff…

持久层框架(Mybatis)

持久层框架 工具和框架 工具: JDBC -> DbUtils(QueyRunner) -> JdbcTemplate: 功能简单,SQL语句编写在Java代码中,这是硬编码,高耦合。 框架: 框架是整体解决方案。 如何进行事务控制,如何实现查询缓…

【Java必学框架】一文搞懂Java持久层框架Mybatis,由浅入深

文章目录 一.简介二.快速入门三.映射文件配置详解1.基本增删改查标签、属性2.动态sql2.1\标签2.2\标签 四.核心配置文件1.核心配置文件标签层级关系及作用2.配置示例3.事务管理器4.数据源5.Mapper标签6.自定义类型转换器7.插件机制 五.相应API1.工具对象2.openSession方法3.Sql…

python怎么输入根号

今天我们来说一说Python中如何实现对一个数字开平方。有三种解决办法、 下面我们分别来演示Python中数字开平方的三种方法 第一种方法:使用math模块,使用之前需要先调用,如下 第二种方法:使用内置函数pow(),如下 第三种方法:使用数…

Python-开根号的几种方式

文章目录 前言方法一方法二方法三 前言 使用Python中的自带库math、自带函数pow和自带库cmath来对数字进行开根号运算 方法一 使用:math.sqrt(数字) import math n int(input(数字:)) x math.sqrt(n) print(x) print(type(x)) #开根号后的类型为float方法二 使用&…