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

相关文章:

  • 清理docker/podman的存储空间
  • Effective Objective-C 2.0 读书笔记——内存管理(上)
  • 在vuejs项目中使用momentjs获取今日、昨日、本周、下周、本月、上月、本季度、上季度、本年、去年等日期
  • ADC 的音频实验,无线收发模块( nRF24L01)
  • 【Python深入浅出㊸】解锁Python3中的TensorFlow:开启深度学习之旅
  • Java进阶:Docker
  • python 爬虫教程 0 基础入门 一份较为全面的爬虫python学习方向
  • 题解:P11725 [JOIG 2025] 修学旅行 / School Trip
  • 【2025新】基于springboot的问卷调查小程序设计与实现
  • 物流数字化转型:报关单ocr api应用场景、报关单识别接口
  • 算法07-滑动窗⼝算法
  • GitHub推荐C++项目:基于muduo、protobuf、zookeeper实现RPC框架
  • HTML之JavaScript使用JSON
  • 尚硅谷爬虫note006
  • 什么是HTTP Error 429以及如何修复
  • Reinforcement Learning Heats Up 强化学习持续升温
  • PHP下载安装以及基本配置
  • java八股---java基础04(集合、异常、引用、线程)
  • DeepSeek本地化部署【window下安装】【linux下安装】
  • 如何使用DeepSeek学习新技能?
  • 马上评|科学红毯,让科学家成为“最亮的星”
  • 中国纪检监察刊文:力戒形式主义官僚主义关键是要坚持实事求是
  • 下周或迎外贸“抢出口”高峰,跨境电商敏感货物如何便利化“登机”?
  • 国家统计局:2024年城镇单位就业人员工资平稳增长
  • 上海市税务局:收到对刘某某存在涉税问题的举报,正依法依规办理
  • 工商银行杭州金融研修院原院长蒋伟被“双开”