常见傅里叶变换表格(Excel数据分析用欧拉公式简化傅里叶变换结果)
常见傅里叶变换表格(Excel数据分析用欧拉公式简化傅里叶变换结果)假如我们有个变换出来的复数f,还有它对应的周期数t和总行数N-------------推导开始--------------今天要干的事情主要是在推导公式,是我本人一向拒绝的,但是没办法,要是不把中间过程记下来的话,现在还是上帝和我知道这玩意儿是怎么回事,再过几个月就只剩上帝知道这是怎么回事了要是实在不想看过程的亲们,可以选择性忽略一些步骤看最下面的结果,Excel中的计算公式我都有列出来,想验证的也请便,只是请注意下Excel中的圆周率计算位数有限,最后的计算结果在小数点大概8位以后会有点小偏差
提前声明,今天的内容可以结合多个前篇来看,有一定基础或刚好有这需求的也可以单独看这篇,下附前文链接
傅里叶变换:https://www.toutiao.com/i6606142938932052484/
复数计算:https://www.toutiao.com/i6610278850087617031/
欧拉公式:https://www.toutiao.com/i6610573355311432206/
今天要干的事情主要是在推导公式,是我本人一向拒绝的,但是没办法,要是不把中间过程记下来的话,现在还是上帝和我知道这玩意儿是怎么回事,再过几个月就只剩上帝知道这是怎么回事了
要是实在不想看过程的亲们,可以选择性忽略一些步骤看最下面的结果,
Excel中的计算公式我都有列出来,想验证的也请便,只是请注意下Excel中的圆周率计算位数有限,最后的计算结果在小数点大概8位以后会有点小偏差
-------------推导开始--------------
假如我们有个变换出来的复数f,还有它对应的周期数t和总行数N
按之前复数计算那篇里的方式,如果我们要把它变成一个y=acos(bx c)的公式,要先换算出一下的相关数据
由于x是个变量,为了方便边做边看结果,这里我先放个x=1的情况,公式全部完成后可以多改几次x值验证一下
首先,由于欧拉公式e^(xi)=cos(x) isin(x),说明cos(x)应该等于e^(xi)取实部
那么a*cos(bx c)应该就等于a*e^(bx c)i,根据指数的算法,可以单独把e^(ci)拿出来
那为什么要单独取出e^(ci)呢?请见下图
是不是有点小意外?e^(ci)*复数模A竟然可以直接变回到原来的傅里叶变换结果复数f上
因此,复数f*2/总行数N=振幅a* e^(ci)
代回原来的式子变成下面这样:
这时,我们已经可以跳过单独计算振幅和相位,直接用两个复数相乘取实部就能得到跟cos公式一样的结果
但是,这样就算满意了么?不,咱还可以在整整
把剩下的e^(bxi)用欧拉公式转换一次
e^(bxi)=cos(bx) isin(bx)
从Excel的帮助文件里找到,两个复数乘积的计算公式如下:
由于最终结果我们其实只要实部,所以只要上式中(ac-bd)那个部分就好了
最终转成了这样:
连起来就是y=acos(bx c)=2/N*(f实部*cos(bx)-f虚部*sin(bx)),其中b是周期数t/总行数N*2pi()
看起来有没有比原来好点?
最后上个全家福:
搞定,收工~~~