当前位置: 首页 > news >正文

傅里叶变换推导

基本模型

假设在二维直角坐标系中,\underset{C}{\rightarrow}可以用相互垂直的基向量\underset{A_1}{\rightarrow}\underset{A_2}{\rightarrow}表示:

假设:

\overrightarrow{A_1} = [1, 0]

\overrightarrow{A_2} = [0, 1]

\overrightarrow{C} = [2, 3]

假设\overrightarrow{C}\overrightarrow{A_1}上的投影为T_{\overrightarrow A_1}^{\overrightarrow C},那么:

T_{\overrightarrow A_1}^{\overrightarrow C} = \overrightarrow{C} \cdot \overrightarrow{A_1} = 2*1 + 3*0 = 2

T_{\overrightarrow A_2}^{\overrightarrow C} = \overrightarrow{C} \cdot \overrightarrow{A_2} = 2*0 + 3*1 = 3

所以:

\overrightarrow{C} = 2\overrightarrow{A_1} + 3\overrightarrow{A_2}

用公式表达:

\overrightarrow{C} = k_{1}\overrightarrow{A_1} + k_{2}\overrightarrow{A_2}

k_1 = T_{\overrightarrow A_1}^{\overrightarrow C} = \overrightarrow C \cdot \overrightarrow A_1

k_2 = T_{\overrightarrow A_2}^{\overrightarrow C} = \overrightarrow C \cdot \overrightarrow A_2

但是在实际中,基向量\underset{A_1}{\rightarrow}\underset{A_2}{\rightarrow}不一定长度都是1,重新推导一下:

假设:

\overrightarrow{A_1} = [5, 0]

\overrightarrow{A_2} = [0, 7]

\overrightarrow{C} = [2, 3]

那么:

k_1 = T_{\overrightarrow A_1}^{\overrightarrow C} = \frac { | \overrightarrow C | cos\theta } {| \overrightarrow A_1 |}

两边乘以| \overrightarrow A_1 |

k_1 = \frac { | \overrightarrow A_1 | | \overrightarrow C | cos\theta } {| \overrightarrow A_1 | ^2}

分子部分其实就是求\overrightarrow{C}\overrightarrow{A_1}上的投影与| \overrightarrow{A_1} |的乘积,所以:

k_1 = \frac { \overrightarrow A_1 \cdot \overrightarrow C } {| \overrightarrow A_1 | ^2}

带入数据:

k_1 = \frac {[5,0] \cdot [2, 3]}{\sqrt{5^2+0^0}^2} = \frac{5*2+0*3}{25} = \frac{2}{5}
大功告成。

结论:

\overrightarrow{C} = k_{1}\overrightarrow{A_1} + k_{2}\overrightarrow{A_2}

k_1 = T_{\overrightarrow A_1}^{\overrightarrow C} = \frac {\overrightarrow C \overrightarrow A_1}{|\overrightarrow A_1|^2}

k_2 = T_{\overrightarrow A_2}^{\overrightarrow C} = \frac {\overrightarrow C \overrightarrow A_2}{|\overrightarrow A_2|^2}

从二维到无限维

二维模型如下:

向量维度1的投影维度2的投影
\overrightarrow{C}23
\overrightarrow{A_1}10
\overrightarrow{A_2}01

扩展到三维:

向量维度1的投影维度2的投影维度3的投影
\overrightarrow{C}c1c2c3
\overrightarrow{A_1}100
\overrightarrow{A_2}010
\overrightarrow{A_3}001

可以看到,\overrightarrow{C}有多少个维度就要有多少个基向量,每个基向量的维度和\overrightarrow{C}相等。

扩展到无限维:

向量维度1的投影维度2的投影维度3的投影维度n的投影
\overrightarrow{C}c1c2c3cn
\overrightarrow{A_1}1000
\overrightarrow{A_2}0100
\overrightarrow{A_3}0010
\overrightarrow{A_n}0001

把函数当成无限维向量

把函数的t当成无限维,它的值分布在各自的维度上:

函数t_0t_1t_2t_n
f(t)f(t_0)f(t_1)f(t_2)f(t_n)
f_1(t)f_1(t_0)f_1(t_1)f_1(t_2)f_1(t_n)
f_2(t)f_2(t_0)f_2(t_1)f_2(t_2)f_2(t_n)
f_3(t)f_3(t_0)f_3(t_1)f_3(t_2)f_3(t_n)
f_n(t)f_n(t_0)f_n(t_1)f_n(t_2)f_n(t_n)

于是:

f(t) = k_1f_1(t) + k_2f_2(t) + ... + k_nf_n(t)

f(t) = \sum_{i=0}^{n} k_{i}f_i(t)

这里有个容易让人困惑的点:

前面的各个基向量都是这样的:

向量维度1的投影维度2的投影维度3的投影维度n的投影
\overrightarrow{A_1}1000
\overrightarrow{A_2}0100
\overrightarrow{A_3}0010
\overrightarrow{A_n}0001

每个向量只在自己的维度有值,在别的维度为0。

那现在的函数在别的维度上等于0吗?

不一定,但是没错。

首先各个维度的基向量是正交(垂直)的,比如:

T_{\overrightarrow{A_3}}^{\overrightarrow{A_1}} = \frac { \overrightarrow{A_1} \cdot \overrightarrow{A_3}} {|\overrightarrow{A_3}|^2} = \frac { [1,0,0] \cdot [0,0,1] }{\sqrt{0^2+0^2+3^2}^2} = 0

这里的函数其实也是正交的:

T_{f_3(t)}^{f_1(t)} = \frac { f_1(t) \cdot f_3(t) }{f_3(t) \cdot f_3(t)} = \frac { \sum_{0}^{t_n} f_1(t)f_3(t) } { \sum_{0}^{t_n} f_3(t)f_3(t) }

两边乘以dt

T_{f_3(t)}^{f_1(t)} = \frac { \frac { \int_{0}^{t_n} f_1(t)f_3(t) dt } {dt} } { \frac { \int_{0}^{t_n} f_3(t)f_3(t) dt } {dt} } = \frac {\int_{0}^{t_n} f_1(t)f_3(t) dt}{\int_{0}^{t_n} f_3(t)f_3(t) dt}

在傅里叶变换中:

各个基函数=sin(nw_0t)+cos(nw_0t) 

其中w_0是步长的意思,任你选取,n=1,2,...

总的意思就是f(t)可以表示成很多正交的、不同频率(一个频率就是一个维度)的三角函数之和。

可以证明:

sin(nw_0t)sin(kw_0t)正交,sin(nw_0t)cos(kw_0t)正交。

于是:

f_1(t) = sin(w_0t)

f_3(t) = sin(3w_0t)

T_{f_3(t)}^{f_1(t)} = \frac {\int_{0}^{t_n} f_1(t)f_3(t) dt}{\int_{0}^{t_n} f_3(t)f_3(t) dt} = 0

好了,f_i(t)已知了,k_i怎么求?

由前面的公式:

k_1 = T_{\overrightarrow A_1}^{\overrightarrow C} = \frac {\overrightarrow C \overrightarrow A_1}{|\overrightarrow A_1|^2}

可以推导出:

k_1 = T_{f_1(t)}^{f(t)} = \frac {f(t) \cdot f_1(t) }{f_1(t) \cdot f_1(t)} = \frac { \sum_{t=0}^{t_n}f(t) \cdot f_1(t) }{ \sum_{t=0}^{t_n} f_1(t) \cdot f_1(t)}

套用之前两边乘以dt的方法:

k_1 = \frac { \frac { \int_{0}^{t_n}f(t) f_1(t)dt}{dt} }{\frac { \int_{0}^{t_n}f_1(t) f_1(t)dt}{dt}}

k_1 = \frac { \int_{0}^{t_n}f(t) f_1(t)dt} { \int_{0}^{t_n}f_1(t) f_1(t)dt}

带入f_1(t) = sin(nw_0t)n = 1

k_1 = \frac { \int_{0}^{t_n}f(t) sin(nw_0t)dt} { \int_{0}^{t_n}sin(nw_0t) sin(nw_0t)dt}

k_1 = \frac { \int_{0}^{t_n}f(t) sin(nw_0t)dt} {t_n/2}

k_1 = \frac{2}{t_n} \int_{0}^{t_n}f(t) sin(nw_0t)dt

这便是傅里叶级数了。

其它

各个基函数必须是两两正交的,不然所有推导都是错的。

好多资料说两个函数的正交等于它们的内积:

f_1(t) \cdot f_3(t) = \int_{t=0}^{T} f_1(t)f_3(t) dt

但是由向量的点积推出来应该是这样才对:

f_1(t) \cdot f_3(t) = \frac { \int_{t=0}^{T} f_1(t)f_3(t) dt } {dt}

可这样也是不对的,不存在这种操作。在我的推导中用了这个等式,但是我分子分母约掉dt了,所以避开了。

相关文章:

傅里叶变换推导

基本模型 假设在二维直角坐标系中,可以用相互垂直的基向量和表示: 假设: 假设在上的投影为,那么: 所以: 用公式表达: 但是在实际中,基向量和不一定长度都是1,重新推导一…...

扣子工作流中禁止同类别的图像流节点,不能超过4个

一、问题1不能在一个工作流中超过4个图像的并行节点 1、现象 本来想着在扣子中一次生成多张图片。 然后问了扣子小助手 2、图像节点限制 扣子给了如下反馈 近期图像流上线了并发限额,具体规则如下: 针对对象:单用户维度,非 bot…...

Java 语言深度剖析与实践应用

一、引言 Java 作为一种广泛应用于各种领域的编程语言,自 1995 年诞生以来,凭借其跨平台性、面向对象特性、丰富的类库以及强大的生态系统,在软件开发行业占据着重要地位。无论是企业级应用开发、移动应用开发、大数据处理还是分布式系统构建…...

1.14学习总结

日常刷题单 刷了题目后,对于排序方法更加熟练,手搓代码的速度也得到了提高。 感觉字符串还不熟练,高精度更是云里雾里,上升空间极大。 同时看见今晚有个入门难度的测试,去练了练手,想看看自己是什么成分&…...

C++蓝桥杯基础篇(三)

片头 哈喽!小伙伴们,大家好~,今天我们来学习蓝桥杯基础篇(三),继续练习相关习题,准备好了吗?我们开始啦~ 一、while循环 可以简单理解为循环版的if语句。if语句是判断1次&#xff0…...

微信小程序的制作

制作微信小程序的过程大致可以分为几个步骤:从环境搭建、项目创建,到开发、调试和发布。下面我会为你简要介绍每个步骤。 1. 准备工作 在开始开发微信小程序之前,你需要确保你已经完成了以下几个步骤: 注册微信小程序账号&…...

Sass更新:@import——>@use

背景:将一个公共的CSS样式文件导入到任意一个组件中进行使用 一、创建并使用CSS公共样式文件 1、在目录的assets目录下创建一个style文件夹,里面存放一个.scss文件(例:mixin.scss) 2、文件内以mixin来设置名为flex的…...

Python使用Flask结合DeepSeek开发

一、背景 我之前关于DeepSeek使用ollama部署的文章大家可以把DeepSeek大模型部署起来。那么ollama还提供了可以调用对应部署模型的API接口。我们可以基于这些接口,做自己的二次开发。使用pythonflaskollama就可以进行模型对话调用。并且前端采用SSE的技术&#xff0…...

python中的抽象类在项目中的实际应用

抽象类在项目中的实际应用主要体现在 规范代码结构、强制子类实现某些方法、提供部分通用功能,让代码更稳定、易维护。 举个例子:数据校验器 假设你在做一个 用户输入校验系统,需要支持 数字校验、字符串校验 和 邮箱校验。如果不用抽象类&…...

New Game--(单调队列)

I - New Game 有一种新的游戏,Monocarp 想要玩。这个游戏使用一副包含 n 张牌的牌堆,其中第 i 张牌上写有一个整数 a_i。 在游戏开始时,Monocarp 可以在第一轮选择牌堆中的任意一张牌。在接下来的每一轮中,Monocarp 可以选择一张…...

mapbox V3 新特性,添加下雪效果

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象…...

无人机遥感在农林信息提取中的实现方法与GIS融合制图教程

遥感技术作为一种空间大数据手段,能够从多时、多维、多地等角度,获取大量的农情数据。数据具有面状、实时、非接触、无伤检测等显著优势,是智慧农业必须采用的重要技术之一。 一:综合态势分析 1.1 研究区及作物品种分析 &#xff…...

生物发酵展与2025生物医药创新技术与应用发展论坛同期盛大举办

近日,备受瞩目的生物发酵展与2025生物医药创新技术与应用发展论坛暨展览会宣布将同期盛大举办。这一消息标志着生物科技领域两大盛会的强强联合,将为全球生物科技与医药行业带来前所未有的交流与合作机遇。 生物发酵展作为生物科技领域的知名展会&#x…...

Jenkins 配置 Git Repository 五

Jenkins 配置 Git Repository 五 这里包含了 Freestyle project 任务类型 和 Pipeline 任务类型 关于 Git 仓库的配置,如下 不同的任务类型,只是在不同的模块找到 配置 Git 仓库 找到 Git 仓库配置位置之后,所有的任务类型配置都是一样的 …...

记录阿里云CDN配置

网站接入CDN全流程,共4步!-阿里云开发者社区 1、开通阿里云CDN服务 2、添加加速域名 3、验证域名归属权 4、域名添加CDN生成的CNAME解析 按照官网描述增加。细节点: 1. 域名和泛域名区别 2.开启https,要用nginx的证书,和项…...

mapbox 从入门到精通 - 目录

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀总目录1.1 ☘️ mapbox基础1.2 ☘️…...

mysql中general_log日志详解

介绍 1.记录范围:这个log里面会记录MySQL所有的SQL语句,不管是查询语句,还是DML语句,还是DDL语句,还是DCL语句,这些语句统统都会被记录在general log文件中。就连我们连接和断开MySQL数据库的这些语句。 2…...

算法与数据结构:从基础到深入

1. 数组 (Array) 定义 一组连续内存空间存储的相同类型元素的集合。特点:通过下标(索引)快速访问元素,但大小固定(静态数组)或可扩展(动态数组)。 核心操作 操作时间复杂度说明访…...

基于千兆5G网关的5G急救车方案

伴随5G网络的全面建成,5G技术的低延时、高速率、广接入等优势,为各行各业都带来了新一轮技术升级。在医疗救援方面,救护车是链接病患与医院的重要纽带,得益于5G物联网的融合应用,救护车也快速向联网化、信息化、智能化…...

【C#】的WPF或是WinForm实现Ctrl+ 的快捷键组合使用

在C#中&#xff0c;无论是WPF还是WinForms应用程序&#xff0c;处理快捷键&#xff08;例如 Ctrl &#xff09;通常涉及检测键盘输入并执行相应的命令或方法。 WPF 实现 在WPF中&#xff0c;可以通过设置一个控件的 InputBindings 属性来绑定快捷键。 <Window x:Class&qu…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...