信号与频谱

article/2025/10/14 7:18:31

身为一名通信专业出生的我,居然淡忘了信号的基本知识,今天带大家回顾一下,通俗易懂。

信号(singal)简介

我们在生活中经常遇到信号。比如说,股票的走势图,心跳的脉冲图等等。在通信领域,无论是的GPS、手机语音、收音机、互联网通信,我们发送和接收的都是信号。最近,深圳地铁通信系统疑似与WiFi信号冲突,也就是地铁的天线收到了WiFi的信号,而误把该信号当作地铁通信信号。我们的社会信息化,是建立在信号的基础上的。
信号:最近三年的沪指指数
信号是随着时间或者空间变化的序列。在信号处理中,我们常用“信号”来特指一维信号,也就是只随单一一个时间或空间维度变化的序列,这样的信号在数学上可以表示成f(t)或者f(x)这样一个函数。与一维信号形成对应的是多维信号,比如说图像是二维信号,它随x,y两个空间维度变化,从数学上表示成为f(x, y)。下面在没有特别声明的情况下,都使用“信号”来代指一维信号。
尽管信号的使用如此广泛,但信号从数学意义上来并没有什么神秘的地方,只是普通的序列(函数)。信号处理的方法可以通用于任何一个领域的信号(无论是通信、金融还是其他领域),这也是信号处理的魅力所在。

简谐波(simple harmonic)

正弦波(sine wave)和余弦波(cosine wave)统称为简谐波。简谐波是自然界最常见的波动。
在这里插入图片描述
正弦波
正弦波可以写成函数的形式:w=2πf
在这里插入图片描述
可以看到,一个简谐波三个参数,振幅(A, amplitude)、频率(f,frequency)、相位(phi, phase)。这三个参数分别控制正弦波的不同特征。通过调整它们,我们可以得到不同的正弦波信号。
在这里插入图片描述
左上:原始 左下:2倍频率 右上:2倍振幅 右下:相位移动
可以看到,频率高,“山峰”越密集。振幅高,“山峰”越高。相位改变,“山峰”的位置左右移动。(朋友说我是"用音量控制音调":唱歌本应该改变频率高低的时候,却在改变振幅的高低。)
余弦波(cosine wave)函数形式与正弦波类似,用cos表示。我们可以通过改变正弦波来从正弦波获得余弦波。

傅立叶变换 (Fourier Transform)

简谐波虽然简单,但对信号处理具有重要意义。傅立叶是一名工程师,他发现,任何信号实际上都可以通过简谐波相加近似得到。也就是傅立叶定理(Fourier inversion theorem):
任何一个信号都可以由简谐波相加得到
在这里插入图片描述
因此,复杂的信号可以分解成为许多个简单的简谐波。一个信号由多个频率的简谐波相加得到。组成信号的某个简谐波,称为信号的一个分量(component)。
比如下图,显示了我们如何用简谐波的叠加来不断趋近蓝色的信号:
在这里插入图片描述
傅立叶变换是一套固定的计算方法,用于算出信号的各个分量(也就是下面的an,bn)。在信号处理时,可以将信号进行傅立叶变换,转换为简谐波的组合。通过分别控制各个频率上的简谐波分量,我们可以更加有效的进行信号处理。比如说,我们通信的时候可以使用高频的简谐波信号。但是接收信号的天线可能会收到其他频率的干扰信号。这个时候,我们可以对接收到的混合信号做傅立叶变换,只提取目标高频的分量。这是降低信号噪音的常用方法。傅立叶变换的过程有些复杂,但已经有大量的程序可以帮你进行。你所需要的只是输入信号,计算机会帮你算出它的各个分量。(给输入,傅里叶变换会给出输出,不用太计较变换的原理)
比如说,如果信号f(x)是周期性的,我们可以将它变换成:
在这里插入图片描述
也就是说,一个信号可以看做许多简谐波的和。上面的a,b是可以通过原信号求得的参数为:
在这里插入图片描述
a, b代表了信号在各个频率上的简谐波分量的强弱(以及相位)。这样,信号就分解为了简谐波的和。由于简谐波比较容易理解,我们可以通过研究这些分量,来明白复杂信号背后的机制。

频谱(frequency spectrum)

通过傅立叶变换,我们可以得到一个信号f(t)的不同频率的简谐波分量。每个分量的振幅,代表了该分量的强弱。将各个频率分量的强弱画出来,可以得到信号的频谱。比如下图是从每天降水序列中得到的频谱:
在这里插入图片描述
可以看到,以1年为周期的简谐波分量有一个明显的高峰。也就是说,一年周期的分量有比较强。这是有物理原因的。因为降水总是以一年四季为周期有规律的变化。通过信号->Fourier Transform->频谱,我们可以从简谐波分量的角度,理解复杂信号是由哪些简谐机制合成的。
百度百科上的介绍(参考):https://baike.baidu.com/item/%E9%A2%91%E8%B0%B1%E5%88%86%E6%9E%90/9851343?fr=aladdin

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

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

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

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

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

实际上,大部分的仪器及软件都用快速傅里叶变换来产生频谱的信号。快速傅里叶变换是一种针对采样信号计算离散傅里叶变换的数学工具,可以近似傅里叶变换的结果。

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

图像处理(Image Processing)

傅立叶变换同样可用于多维信号。把傅立叶变换用于二维信号,即图像:
在这里插入图片描述
左边是二维信号(图像,f(x,y))。黑白可以用数值表示,即信号值。右边是二维图像的频谱。X轴表示x方向的频率,Y轴表示y方向的频率,黑白表示不同频率分量的振幅强弱。在下面一行中,Lenna被故意加上了噪声,并引起频谱的相应变化。频谱的中心代表了低频信号的振幅,频谱远离中心的地方代表了高频信号的振幅。 我们下面和加入噪声的图像比较。
在这里插入图片描述
(Lenna和她的频谱)
现在,在图像中加入噪声。可以看到,原图像中各处增加了许多小“斑点”。这些斑点和原来的信号混合在一起。我们很难将一一指出这些噪音点。但另一方面,这些噪音又有一定的特征:这些噪音的空间尺度(即尺寸)很小。
这一对图像噪音的理解,可以从频谱中得到确认。从右图的频谱中可以看到,高频信号(非中心部分)明显增强。高频分量正对应空间尺度小的信号。可见,噪声在频谱中,集中在高频这一特定区域。这样,在与原图像混合在一起的噪声,在频谱上则和图像区分开。通过高频滤波技术,就可以过滤掉噪声。这也是图像降噪的一大方法。
(如果对图像处理有所了解,那么一定会知道Lenna的大名。她是一位阁楼(Playboy)女郎,但又是图像处理界的女神。你可以搜索"Lenna full image"来找到全图。Lenna现在是一名老太太了,她“见证”了图像处理的发展。

总结

信号可以分解为不同频率的简谐波分量。这有助于我们更好的理解复杂的信号。傅立叶变换是信号处理(以及图像处理)的基础工具。通过傅里叶变换,我们可以获得信号的频谱。
频谱为我们提供了理解信号的另一个视角。在频率的世界里,我们可以发现很多原信号中一些可能被忽视的信息,比如降水的季节变化,比如增强的噪声。


http://chatgpt.dhexx.cn/article/3DIQ78cM.shtml

相关文章

【信号与系统】笔记(3-2)信号的频谱与傅里叶变换(一图看懂傅里叶变换)

Author:AXYZdong 自动化专业 工科男 有一点思考,有一点想法,有一点理性! 文章目录 一图看懂傅里叶变换前言一、周期信号的频谱1、周期信号频谱的相关概念2、周期信号频谱的特点3、谱线的结构与波形参数的关系 二、非周期信号的频谱…

信号频谱

2019独角兽企业重金招聘Python工程师标准>>> 频谱是指一个时域的信号在频域下的表示方式,可以针对信号进行傅里叶变换而得,所得的结果会是以分别以幅度及相位为纵轴,频率为横轴的两张图,不过有时也会省略相位的信息&am…

晋南讲堂之持久层框架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…