大家好,又见面了,我是你们的朋友全栈君。
傅里叶变换(FT)
傅里叶变换的目的是可将时域(即时间域)上的信号转变为频域(即频率域)上的信号,随着域的不同,对同一个事物的了解角度也就随之改变,因此在时域中某些不好处理的地方,在频域就可以较为简单的处理。
傅里叶变换公式:
(w代表频率,t代表时间,e^-iwt为复变函数)
傅里叶变换认为一个周期函数(信号)包含多个频率分量,任意函数(信号)f(t)可通过多个周期函数(基函数)相加而合成。
从物理角度理解傅里叶变换是以一组特殊的函数(三角函数)为正交基,对原函数进行线性变换,物理意义便是原函数在各组基函数的投影。
傅里叶公式推导:
我们先从函数f(t)为周期性函数推导,之后推导非周期性函数的傅里叶变换,傅里叶公式一般就是指非周期行函数的傅里叶变换(FT)。
(1)对于周期为1的函数f(t):
(这里的x我接下来用t来表示)
根据欧拉公式
这里的Ck是一个复数,Ck一般称为傅里叶系数,平时对频域的变换,一般改变的就是Ck。
例如这个图中频域方向上的图每个频域值为Ck的值
接下来求Ck的值
由
对函数两边积分
(上述的k指频域上的x坐标,每个k值为一种赫兹,t表示时域上的时间)
因为要模拟一个信号,信号是不能通过有限个周期函数相加而确定这样会有很大的误差,无法得到完整的近似值,于是我们便用无限的周期函数来对其近似
由此就可以看出傅里叶变换是一种时域与频域的转换关系。
(2)对于非周期函数f(t)
对于一个信号的处理,信号一般都不是周期的,因此这里就产生了对非周期函数(信号)的处理。
对于非周期函数我们可以假设为非周期函数是一个周期函数的某个部分,但这个非周期函数的t范围可以非常的大。
傅里叶变换当周期趋近于无穷,是傅里叶系数的一般化
傅里叶逆变换是对傅里叶级数的一般化
设f(t)是周期为T的函数,T趋近于无穷的周期函数
傅里叶级数[f(t)]转变为
傅里叶系数为(注:因在无限大的周期T下所以从0->T与(-T/2)->(T/2)是相同的)
在频谱图中你看到的每一条竖线就是|CK|的值
这就是一个在时域上的函数图像经过傅里叶变换转换的频谱图。
很重要的一点是 :
对于周期为1的函数频域上每条线的间隔为1
而对于周期为T的函数,频域上的间隔为1/T
时域周期与频域有反比的关系。
即 T<1 ->1/T>1 频谱会被扩展
当 T>1 ->1/T<1 频谱会被压缩
特别的当T趋近于无穷,频谱间隔越来越近,最终频谱变为连续的。
由此可以得到一句经常看到的话,当时域从周期转化为非周期时,频域从离散的转化为连续的。
看来把一个非周期函数看作是一个周期函数的一部分这样就能的出傅里叶变换的结果了莫?
其实是这样是不完全正确的。因为当T趋近于无穷时Ck会趋向于零使得整个傅里叶系数的公式没有意义:
设f(t)在区间a,b之间其他为0,取一个大的周期T使a>-T/2&&b>T/2,然后以T为函数扩展(|Ck|因为是复函数所以关于x轴对称)
如下图:
(在a,b外函数是0)
(负指数的值为1)
这时这个值为一个固定的值M
即
即 Ck=0。
连每个频率的系数都是0,那这f(t)还有什么用。
为此我们从另一个角度看
设gf这个公式为关于k/T的函数: gf(k/T)
(即Ck不要1/T的部分)
(这里和上面推导f(t)的结果是一样的)
因T->∞,gf(k/T)中k/T这个离散变量之间越来越趋近,1/T,2/T,3/T……这样函数就从离散的变为连续,我们将这个k/T连续变量设为s
这样
关于f(t),f(t)可以看作无数个连续的gf(s)e^2πist,乘以1/T来组成将其看作累加和变换为积分。即
这样我们就最终得到了傅里叶变换公式(FT)(傅里叶变换也可以称为一种算子):
顺便给出傅里叶反变换公式:
文章参考:https://www.zhihu.com/question/19714540
https://www.zhihu.com/question/38841975
斯坦福大学课程:傅里叶变换及其应用
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160821.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...