信号与系统之《一文看懂傅里叶变换》

news2024/10/7 2:31:43

“傅里叶变换是一种非常有用的数学工具,它可以将一个复杂的信号分解成许多简单的频率成分。傅里叶变换在信号处理、图像处理、音乐、视频和通信等许多领域都有广泛的应用。相信大部分同学在毕业之后的一段时间之内都还没有理解到傅里叶变换的精髓,今天我们用通俗的案例讲解其背后的原理。”

图片

基础回顾

1.1 基

回想一下线性代数中基的定义:

空间中一组特殊的向量,空间的每一个向量都可以由基向量唯一线性表示。

听起来其定义很简单,实际也很简单。以实际为例,考虑x-y正交坐标系,其中a点坐标(2, 3),b点坐标(5, 3),c点坐标(3, 0),如下图所示:

图片

那么b点可以由a以及c进行唯一的表示:

b = a + c

当然c也可以由a&b作为基向量进行表示,a也可以由b&c作为基向量唯一的表示,也就是说上图中<a, b>或者<b, c>或者<a, c>都可作为x-y坐标系的一组基,这里我们已经讲清楚基的定义。

1.2 标准正交基

——

什么是标准正交基呢?

首先,标准正交基也是基的一种,它也可以唯一地表示出线性空间中任意的一个向量;

其次,从几何意义上讲,正交的含义即两个向量垂直,也就是说假如向量a,以及向量b是正交的,那么a*b = |a||b|cosθ=0;

最后,标准的含义即标准正交基的向量模都是1。

线性空间中符合上述要求的一组基即称之为标准正交基。

我们还是以正交坐标系x-y为例,其x轴以及y轴上的单位向量分别为ex (1, 0)以及ey (0, 1),如下图所示:

图片

那么,我们可以得到如下关系:

a = 2 * ex + 4 * ey

b = 5 * ex + 3 * ey

扩展一下,x-y坐标系中的任意一个点p (m, n)都可以使用ex以及ey进行表示:

p = m * ex + n * ey

这里ex、ey便符合标准正交基的三个条件,因此<ex, ey>即为x-y坐标系的一个正交基。

傅里叶变换

2.1 傅里叶级数

——

回想一下傅里叶级数定义,周期信号f(t)的傅里叶级数形式如下:

图片

其中:

在这里插入图片描述

可以看出傅里叶级数的含义就是任意一个周期性函数都可以用一个垂直分量以及正余弦函数进行表示,思考一下我们第一章讲的基的定义,本质上:

<1, <sin(nwt)>, <cos(nwt)>> (n∈1~∞)

上式就是一组基,这里的sin(nwt)以及cos(nwt)是每个都是一组(n属于0~∞),另外基的模都是1且互相正交,注意这里取模以及正交计算都是使用积分形式,这就是f(t)在线性空间的一组标准正交基。

这里我们为了更加直观的演示上面这组基中互相正交,我们使用python生成一组sin(w)以及sin(2w)相乘的图像:

x = np.linspace(-(4*np.pi),(4*np.pi),2048,endpoint=True)

a = np.sin(x)
b = np.sin(2*x)

c = a * b

生成图像如下:

图片

可以看出,sin(w)*sin(2w)是一个关于x轴上下对称的周期函数,我们对上面图像做积分可以得到:

sum = 0
for it in c:
    sum = sum + it
print (int(sum))
0

另外一个方面,任意一个周期函数,都可以使用这组基进行唯一的表示。

另外,我们还可以将cos以及sin进行三角函数合成,则有:

图片

考虑一段实际的波形:

f(t) = sin(t)+2sin(2t+π/2)

从式子中我们可以知道f(t)的傅里叶级数:

a0 = 0, a1 = 1, a2 = 2, an = 0 (n > 2)

另外,每个频率的对应的相位分别为:

ψ2 = π / 2, ψn = 0 (n != 2)

更加直观的,我们使用python将f(t)以及其正弦子图像展示如下:

图片

但上图中无法看出相位,我们再将其拓展旋转下:

图片

这里便可以很清楚的看出f(t)是由那些频率的正弦信号组成,以及正弦信号的相位是多少。反过来,我们知道了频率以及相位图,我们还可以反推出原来的f(t)。

图片

2.2 傅里叶变换

——

考虑欧拉坐标系上的一点A,角度为θ,如下图所示:

图片

那么其可以表示为上面的点A可以表示为:

图片

注意的是这里的sin以及cos是一组标准正交基,现在假如A点以角度w进行转动,那么A点可以表示为:

图片

这里A的含义即围绕着原点逆时针进行转动,而e^-iwt则是让A点顺时针以w的角速度进行转动,需要注意的是,A点是由标准正交基sin以及cos组成的。

现在,我们引入傅里叶变换:

图片

当f(t)中不含有w频率的正弦分量的时候,此时由于e^-iwt中的sin(w)与其他的正交基相乘,此时F(w)=0;

当f(t)中含有sin(w)分量时,此时F(w)非0,但要注意F(w)是个负数,还有虚部,其虚部即相位的偏移。

2.3 傅里叶变换应用

——

信号处理:

傅里叶变换在信号处理领域中被广泛应用,例如图像处理、音频处理等。它可以将一个时域信号转换为一个包含该信号中频率信息的频域信号,从而方便对信号进行分析和处理。

图片

通信系统:

傅里叶变换可以用来分析和设计通信系统中的滤波器、调制器和解调器等组件。通过将信号转换为频域信号,我们可以更好地理解信号在系统中的传输和处理过程,并且可以优化系统的性能。

图片在这里插入图片描述

物理学和工程学:

傅里叶变换在物理学和工程学中也有广泛的应用。例如,在电路分析中,傅里叶变换可以用来计算电路中的频率响应。在信号处理和控制系统中,傅里叶变换可以用来设计滤波器和控制器等。

图片

图像处理:

傅里叶变换可以将图像转换为频域表示,从而可以进行滤波、增强、压缩和分析等操作。通过使用傅里叶变换,我们可以将图像中的不同频率的信息分离出来,并对这些信息进行处理和分析。

图片

结束语

傅里叶变换虽然看起来有些抽象和复杂,但是它的应用却是非常广泛而且实用的。从通信、图像处理、音频处理到物理学和化学等领域,傅里叶变换都有着不可替代的地位。希望通过本文,您能够更加深入地了解傅里叶变换及其在数学、物理、工程等领域中的重要应用。如果您对这个话题还有任何疑问或者想要了解更多,欢迎在评论区留言或者私信我。感谢您的关注,我们下期再见!

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/412807.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java面试八股文宝典之MySQL篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day20

大家好&#xff0c;我是陶然同学&#xff0c;软件工程大三即将实习。认识我的朋友们知道&#xff0c;我是科班出身&#xff0c;学的还行&#xff0c;但是对面试掌握不够&#xff0c;所以我将用这100多天更新Java面试题&#x1f643;&#x1f643;。 不敢苟同&#xff0c;相信大…

(六)【软件设计师】计算机系统—原码反码补码移码

文章目录一、数据表示二、原码三、反码四、补码五、移码六、范围七、总结一、数据表示 各种数值在计算机中表示的形式称为机器数&#xff0c;其特点是采用二进制计数制&#xff0c;数的符号用0和1表示&#xff0c;小数点则隐含&#xff0c;表示不占位置。机器数对应的实际数值称…

使用zabbix监控avamar【二】

1、在“使用zabbix监控avamar【一】”中介绍了如何设置avamar端&#xff0c;并发送测试消息&#xff0c;本篇将介绍如何在zabbix server端进行配置。 2、在zabbix server的snmp trap日志文件中查找刚上传的报警信息 可以看到已经正常收到客户端信息。 3、在/etc/zabbix/snmpt…

2.0、Java继承与多态 - 方法重写与重载

2.0、Java继承与多态 - 方法重写与重载 重写&#xff08;Override&#xff09;&#xff1a;方法名一样&#xff0c;参数列表也一样 [ 重写也叫做覆写或者覆盖 ]&#xff1b; 重载&#xff08;Overload&#xff09;&#xff1a;方法名一样&#xff0c;但是参数列表不一样&#…

vue-cli 初始化工程

个人记录下vue-cli创建项目的步骤 卸载老版本的vue-cli (这不是必要的) npm uninstall vue-cli -g 如果本地使用 yarn的话,还需执行 yarn global remove vue-cli 安装全新的vue-cli npm install -g vue/cli 安装指定版本的vue-cli npm install -g vue/…

开源后台管理系统解决方案 boot-admin 简介

开源后台管理系统解决方案 boot-admin 简介介绍软件技术路线微服务架构图主要功能框图模块介绍介绍 boot-admin 是一款采用前后端分离架构模式的后台管理框架。系统提炼自实际项目&#xff0c;兼具RuoYi-Vue前端分离版和Ruoyi-Cloud微服务版功能与技术特点。 boot-admin 既有…

顶点程序经典案例——树木生长

返回目录 树木生长Shader一、介绍 大家好&#xff0c;我是阿赵。这次来做一个树木生长的Shader。 顶点程序作为整个渲染管线里面和片段程序并列的两大可控过程之一&#xff0c;一直存在感都比较低。我们平时制作的效果&#xff0c;很多都是在片段程序里面实现的计算&#xff0…

数据结构泛型

1.定义 先让我们看看官方是如何定义泛型的 是不是看起来不太容易&#xff0c;解释一下&#xff1a; 就是我们想有一种数据类型&#xff0c;它可以适用各种数据类型。从代码上讲就是对类型实现参数化。 2.引例 例&#xff1a;实现一个类&#xff0c;类中包含一个数组成员&…

直方图 颜色映射

文章目录hist map1. 原理2.灰度图3. 对于彩色图像4. 直方图规定化效果hist map 1. 原理 code:https://github.com/rossgoodwin/hmap 利用队列记录 hist src > tgt, src < tgt , src tgt的 索引。 然后&#xff0c;对于每个hist excess, 将其移动到 hist deficit 进行…

linux环境下,使用binlog模式恢复mysql数据(mysql数据库中的一张表误删了怎么找回?)。

linux环境下&#xff0c;使用binlog模式恢复mysql数据&#xff08;mysql数据库中的一张表误删了怎么找回&#xff1f;&#xff09;。 问题&#xff1a;linux中开启binlog模式下&#xff0c;mysql数据库中的一张表误删了怎么找回&#xff1f; 1.首先在mysql中查看是否开启binl…

气传导耳机是不是智商税?气传导耳机值得不值得入手?一文带你看懂

先说结论:并不是智商税。 目前的声音传播途径分为固体、气体和液体。而气传导耳机顾名思义&#xff0c;就是通过气体传声&#xff0c;这一点和我们日常使用的头戴式耳机、半入耳式入耳式耳机都是一样的&#xff0c;和我们日常生活中接触到最多的声音传播方式也是一样。 只不过…

动态规划概述

动态规划概述动态规划的两个要求&#xff1a; 1.最优子结构 例&#xff1a;现有一座10级台阶的楼梯&#xff0c;我们要从下往上走&#xff0c;每次只能跨一步&#xff0c;一步可以往上走1级或者2级台阶&#xff0c;请问一共有多少种解法呢&#xff1f; 台阶数12345678910走法数…

手动挡科目三道路驾驶技能考试及理论考试要点

路线每个驾校的科目三路线可能都不一样&#xff0c;但是考点基本差不多。我当时选的驾校是北京公交驾校&#xff0c;路线图如下&#xff1a;考试要点在考试大厅等待叫号&#xff0c;一般大屏都会公布xxx学员找xx号车考试&#xff0c;这边白色车是手动挡&#xff0c;灰色车是自动…

Web自动化测试-【Selenium环境部署Edge】

Selenium Web自动化测试工具 之前写过一篇关于自动化测试的博客&#xff0c;里面是有的chrome驱动&#xff0c;由于不适配缘故&#xff0c;更新以下Edge驱动。 自动化测试 Selenium环境部署 准备 Edge 浏览器准备 Edge 驱动包 a .查看自己的Edge浏览器版本&#xff08;浏览器版…

【论文解读】ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoder

1. 本文贡献 提出了一个全卷积掩码的自动编码器框架和一个新的全局响应归一化&#xff08;GRN&#xff09;层 1.1 想法 本文的想法是希望能在 ConvNeXt 中使用MAE,但是MAE的设计架构是基于vision transformer的&#xff0c;与使用密集滑动窗口的标准ConvNets不兼容&#xf…

upload 通关pass16-pass20

1.pass16 白名单 二次渲染 需要先上传一个正常图片&#xff0c;然后下载下来&#xff0c;跟原图片进行比对&#xff0c;用010 16进制编辑器&#xff0c;把php代码放到没有改变的位置&#xff0c;即一样的地方 访问&#xff1a; 2.pass17 白名单 条件竞争 这题先是上传文件并…

音质蓝牙耳机哪款好用?2023公认音质好的四款蓝牙耳机推荐

现如今&#xff0c;蓝牙耳机越来越受欢迎&#xff0c;不少人在听歌、追剧、甚至是玩游戏的时候都会戴着它。最近看到很多人问&#xff0c;音质蓝牙耳机哪款好用&#xff1f;针对这个问题&#xff0c;我来给大家推荐四款公认音质好的蓝牙耳机&#xff0c;一起来看看吧。 一、南…

Nginx connect req access 模块

Nginx connect req access 模块演练 limig_conn模块&#xff1a;限制TCP连接数limit_req模块&#xff1a;限制请求频率access 模块&#xff08;allow/deny&#xff09;&#xff1a;限制ip段访问auth_request: 基于HTTP响应状态码做权限控制压测可以使用 postman的 run collect…

AndroidStudio如何进行手机应用开发?

文章目录0、引言1、AndroidStudio开发环境配置2、创建第一个手机应用0、引言 Android手机应用因其搭载于手机&#xff0c;使用便捷&#xff0c;应用被大量开发使用。笔者使用手机多年&#xff0c;用过许多手机软件&#xff0c;在使用的过程中&#xff0c;虽然手机软件能解决大部…

C++开发必知的内存问题及常用的解决方法-经典文章

1. 内存管理功能问题 由于C语言对内存有主动控制权&#xff0c;内存使用灵活和效率高&#xff0c;但代价是不小心使用就会导致以下内存错误&#xff1a; • memory overrun&#xff1a;写内存越界 • double free&#xff1a;同一块内存释放两次 • use after free&#xff1…