傅里叶变换的虚数部分

数据分析中用到傅里叶变换,只好把大学里学的云山雾绕的课本拿出来重修了一遍。傅里叶级数还好理解,傅里叶变换就有点摸不着头脑了。特别是里面的虚数部分,到底是什么意思?它到底是怎么跑出来的。为什么一个好好的实函数就变成虚函数了?还能不能一起玩耍了?
钻进了牛角尖,不搞清这个问题吃饭都不香了。网上傅里叶级数的资料很多,又是群理论,又是希尔伯特空间的,搞得俺这个工科生更是头大。忽然灵机一动,找到了原因所在(自认为),写出来与诸君共享,理解不对的地方大神指正。

一、傅里叶级数

这是比较好理解的,就是一个周期函数,可以分解成很多个简谐函数的叠加,其中有余弦分量和正弦分量,代表着简谐函数的相位。
这是傅里叶变换的公式:
f ( x ) = a 0 + ∑ k = 1 ∞ [ a k cos ⁡ ( k x ) + b k sin ⁡ ( k x ) ] f(x) = a_{0} + \sum_{k=1}^\infty \Bigl[ a_{k} \cos(kx) + b_{k}\sin(kx)\Bigr] f(x)=a0+k=1[akcos(kx)+bksin(kx)]

然后用欧拉公式:
e i t = cos ⁡ ( t ) + i sin ⁡ ( t ) e^{it} = \cos(t) +i\sin(t) eit=cos(t)+isin(t)
e − i t = cos ⁡ ( t ) − i sin ⁡ ( t ) e^{-it} = \cos(t) -i\sin(t) eit=cos(t)isin(t)
则:
cos ⁡ ( t ) = e i t + e − i t 2 \cos(t) = \frac{e^{it}+e^{-it}}{2} cos(t)=2eit+eit
sin ⁡ ( t ) = e i t − e − i t 2 i \sin(t) = \frac{e^{it}-e^{-it}}{2i} sin(t)=2ieiteit
代入得:
f ( x ) = a 0 + ∑ k = 1 ∞ [ a k e i k x + e − i k x 2 + b k e i k x − e − i k x 2 i ] f(x) = a_{0} + \sum_{k=1}^\infty \Bigl[ a_{k} \frac{e^{ikx}+e^{-ikx}}{2} + b_{k} \frac{e^{ikx}-e^{-ikx}}{2i}\Bigr] f(x)=a0+k=1[ak2eikx+eikx+bk2ieikxeikx]
化简,注意 1 i = − i \frac{1}{i} = -i i1=i ,得:
f ( x ) = a 0 + ∑ k = 1 ∞ [ a k − i b k 2 e i k x + a k + i b k 2 e − i k x ] f(x) = a_{0} + \sum_{k=1}^\infty \Bigl[ \frac{a_{k}-ib_{k}}{2} e^{ikx} +\frac{a_{k}+ib_{k}}{2}e^{-ikx}\Bigr] f(x)=a0+k=1[2akibkeikx+2ak+ibkeikx]
关键的地方来了。1到 ∞ \infty 的-k是等于 − ∞ -\infty 到-1的k的。注意上式中累加部分的第二部分可以改写为:
f ( x ) = a 0 + ∑ k = 1 ∞ a k − i b k 2 e i k x + ∑ k = − ∞ − 1 a k + i b k 2 e i k x f(x) = a0 + \sum_{k=1}^\infty \frac{a_{k}-ib_{k}}{2}e^{ikx} + \sum_{k=-\infty}^{-1} \frac{a_{k}+ib_{k}}{2}e^{ikx} f(x)=a0+k=12akibkeikx+k=12ak+ibkeikx
设一个分段序列 c n c{n} cn:
c k = { a k + i b k 2 − ∞ < k < = − 1 ,   a 0 k = 0 ,   a k − i b k 2 1 < = k < ∞   (1) c_{k}=\left\{ \begin{aligned} &\frac{a_{k}+ib_{k}}{2}\qquad& \text{$-\infty<k<=-1,$ } \\ &a{0}\qquad &\text{$k=0,$ } \\ &\frac{a_{k}-ib_{k}}{2}\qquad&\text{$1<=k<\infty$ } \end{aligned} \right. \tag{1} ck=2ak+ibka02akibk−∞<k<=−1, k=0, 1<=k<∞ (1)
则:
f ( x ) = ∑ k = − ∞ ∞ c k e i k x f(x) = \sum_{k=-\infty}^{\infty}c_{k}e^{ikx} f(x)=k=ckeikx
就这样一个好好的实函数被转换成了复函数。这个证明的过程并不规范,但意思是大概齐的。那么,从这个证明过程中我们能获得哪些信息呢?

  1. c k c_{k} ck是复数,这也是为什么fft的结果是复数。
  2. c k c_{k} ck以y轴为对称点,两侧的实部是相同的,虚部是相反的,即相互共轭。这带来的结果有两点,1)当画出 c k c_{k} ck的振幅图的时候,图像是对称的,但实际上它并不是偶函数。2)可以证明 c k e i k x c_{k}e^{ikx} ckeikx c − k e i ( − k ) x c_{-k}e^{i(-k)x} ckei(k)x也是共轭的,所以两者相加的时候,实部乘2,虚部抵消,所以傅里叶变换和其逆变换的结果仍然是实函数。
  3. 由于 c k c_{k} ck c − k c_{-k} ck是共轭的,所以只看半边的 c k c_{k} ck就可以获得所有的信息,包括频率的振幅和相位信息。

二、傅里叶变换

傅里叶变换是在傅里叶级数上的拓展。我们在讨论傅里叶级数的时候有一个前提,就是 f ( x ) f(x) f(x)是在 ( − π , π ) (-\pi,\pi) (π,π)上的周期函数。把周期的边界扩展为 ( − ∞ , ∞ ) (-\infty,\infty) (,),同时把k由自然数扩展到整个实数坐标轴上,傅里叶级数就变成了傅里叶变换。
f ( x ) = 1 2 π ∫ − ∞ ∞ f ^ ( λ ) e i λ x d λ f(x) = \frac{1}{\sqrt{2\pi}}\int_{-\infty}^{\infty}\hat{f}(\lambda)e^{i\lambda x}d\lambda f(x)=2π 1f^(λ)eiλxdλ
傅里叶变换和傅里叶级数非常相似,很多性质也是近似的,也可以用类似的方法予以证明。比方说,在 λ \lambda λ − λ -\lambda λ两个点上, f ^ ( λ ) \hat{f}(\lambda) f^(λ) f ^ ( − λ ) \hat{f}(-\lambda) f^(λ)也是共轭的,也有着和傅里叶级数一样的性质。
所以 f ^ ( λ ) \hat{f}(\lambda) f^(λ)虽然是一个复函数,但如果把y轴两侧对应起来,即把 ( − ∞ , 0 ) (-\infty,0) (,0)折到 ( 0 , ∞ ) (0,\infty) (0,)上,仍然可以获得一个实函数。
本身,我们知道, λ \lambda λ对应的物理意义是频率,而负频率是没有意义的。因此对应到一个函数的频谱强度,这应该还是一个实函数,只是用复函数的形式来表达了。
这样做的意义在于 e i t e^{it} eit这个函数有许多有用的计算性质,可以极大地简化许多推导过程。

三、总结

好了,说了这么多,其实就是回答了这样一个问题:为什么fft()的结果是复数?
我会说我写这些是为了学习LaTex语言吗?

  • 9
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值