当前位置: 首页 > 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了,所以避开了。

http://www.lryc.cn/news/536921.html

相关文章:

  • 扣子工作流中禁止同类别的图像流节点,不能超过4个
  • Java 语言深度剖析与实践应用
  • 1.14学习总结
  • C++蓝桥杯基础篇(三)
  • 微信小程序的制作
  • Sass更新:@import——>@use
  • Python使用Flask结合DeepSeek开发
  • python中的抽象类在项目中的实际应用
  • New Game--(单调队列)
  • mapbox V3 新特性,添加下雪效果
  • 无人机遥感在农林信息提取中的实现方法与GIS融合制图教程
  • 生物发酵展与2025生物医药创新技术与应用发展论坛同期盛大举办
  • Jenkins 配置 Git Repository 五
  • 记录阿里云CDN配置
  • mapbox 从入门到精通 - 目录
  • mysql中general_log日志详解
  • 算法与数据结构:从基础到深入
  • 基于千兆5G网关的5G急救车方案
  • 【C#】的WPF或是WinForm实现Ctrl+ 的快捷键组合使用
  • c语言样式主题 清爽风格 代码色彩 keil风格 适合单片机开发GD32 STM32等 cursor或者vscode 的settings.json文件
  • DeepSeek API 调用 - Spring Boot 实现
  • 图数据库Neo4j面试内容整理-节点(Node)
  • 使用verilog 实现 cordic 算法 ----- 旋转模式
  • 2.14寒假
  • 基于逻辑概率的语义信道容量(Semantic Channel Capacity)和语义压缩理论(Semantic Compression Theory)
  • DeepSeek R1本地部署教程
  • CEF132编译指南 MacOS 篇 - 获取 CEF 源码 (五)
  • TypeScript装饰器 ------- 学习笔记分享
  • FPGA实现UltraScale GTH光口视频转USB3.0传输,基于FT601+Aurora 8b/10b编解码架构,提供2套工程源码和技术支持
  • 蓝桥杯篇---实时时钟 DS1302