高中生就能看懂的傅里叶变换的数学原理

高中生就能看懂的傅里叶变换数学原理

相信有不少人去了解过傅里叶变换和傅里叶卷积的概念,从一个视频的启发,傅里叶变换可以将波从时域转到频域,其实做的事情就是检测已有的一个波的成分(该波由哪些频率的波组成,并且求出其振幅和初相位),怎么做到的呢?一句话概括就是拿所有频率的波去检测,就像做探测一样,探测到了就有,没探测到就没有,所有频率去检测这是理想的方式,因为任意小的区间都有无穷个实数,现实中无法一一检测,实际上的处理方式都是做DFT(离散傅里叶变换),检测一些正整数频率的波是否存在。

下面步入正题,先说结论:假设积分区间长度为T,是待检测波(频率为 f 1 f_1 f1)的正整数个周期,也是检测波(频率为 f 2 f_2 f2)的正整数周期。如果两个波的频率不一样,那么这两个波在积分区间T内的卷积为0,用数学表达式如下所示。
∫ a b c o s ( 2 π f 1 x ) c o s ( 2 π f 2 x + c ) d x = 0. \int_a^b cos(2\pi f_1x)cos(2\pi f_2x+c)dx = 0. abcos(2πf1x)cos(2πf2x+c)dx=0.
其中 b − a = m f 1 = n f 2 = T . b-a =\frac{m}{f_1} = \frac{n}{f_2} = T. ba=f1m=f2n=T. ②,且m、n为正整数, f 1 ≠ f 2 f_1≠f_2 f1=f2
用a表示积分下限,b表示积分上限,意思就是只要周期长度是T,且为两个波的周期正整数倍即可,和积分起点无关。证明过程如下:
根据两角和差公式: c o s ( α + β ) = c o s ( α ) c o s ( β ) − s i n ( α ) s i n ( β ) , cos(\alpha+\beta) = cos(\alpha)cos(\beta) - sin(\alpha)sin(\beta), cos(α+β)=cos(α)cos(β)sin(α)sin(β), c o s ( α − β ) = c o s ( α ) c o s ( β ) + s i n ( α ) s i n ( β ) cos(\alpha-\beta) = cos(\alpha)cos(\beta) + sin(\alpha)sin(\beta) cos(αβ)=cos(α)cos(β)+sin(α)sin(β)
如果 c o s ( α + β ) = 0 cos(\alpha+\beta)=0 cos(α+β)=0,且 c o s ( α − β ) = 0 cos(\alpha-\beta)=0 cos(αβ)=0,那么就可以得出 c o s ( α ) c o s ( β ) cos(\alpha)cos(\beta) cos(α)cos(β) s i n ( α ) s i n ( β ) sin(\alpha)sin(\beta) sin(α)sin(β)都等于0,于是公式①得证。
∫ a b c o s ( 2 π f 1 x + 2 π f 2 x + c ) d x = ∫ a b c o s [ 2 π ( f 1 + f 2 ) x + c ] d x . \int_a^b cos(2\pi f_1x + 2\pi f_2x+c)dx = \int_a^b cos[2\pi (f_1+f_2)x +c]dx. abcos(2πf1x+2πf2x+c)dx=abcos[2π(f1+f2)x+c]dx.
其中 c o s [ 2 π ( f 1 + f 2 ) x + c ] cos[2\pi (f_1+f_2)x +c] cos[2π(f1+f2)x+c]的周期是 1 f 1 + f 2 \frac{1}{f_1+f_2} f1+f21,算T是不是该周期的整数倍, T / ( 1 f 1 + f 2 ) = T ∗ ( f 1 + f 2 ) = m + n T/(\frac{1}{f_1+f_2}) =T*(f_1+f_2) = m+n T/(f1+f21)=T(f1+f2)=m+n
于是可以得出公式③ ∫ a b c o s ( 2 π f 1 x + 2 π f 2 x + c ) d x = 0 \int_a^b cos(2\pi f_1x + 2\pi f_2x+c)dx=0 abcos(2πf1x+2πf2x+c)dx=0,同理可以得出 ∫ a b c o s ( 2 π f 1 x − 2 π f 2 x + c ) d x = 0 \int_a^b cos(2\pi f_1x - 2\pi f_2x+c)dx=0 abcos(2πf1x2πf2x+c)dx=0.
因此可以得出公式①成立,证毕。

以上已经证明了检测波与待检测波频率不一致的情况下,该积分恒等于0,如果两波的频率相等呢?稍微化简一下就行了,
∫ a b c o s ( 2 π f 1 x ) c o s ( 2 π f 1 x + c ) d x = ∫ a b c o s ( 2 π f 1 x ) c o s ( 2 π f 1 x ) c o s ( c ) d x − ∫ a b c o s ( 2 π f 1 x ) s i n ( 2 π f 1 x ) s i n ( c ) d x = ∫ a b c o s ( 4 π f 1 x ) + 1 2 c o s ( c ) d x − ∫ a b s i n ( 4 π f 1 x ) 2 s i n ( c ) d x = 1 2 ∫ a b c o s ( c ) d x = T 2 c o s ( c ) \int_a^b cos(2\pi f_1x)cos(2\pi f_1x+c)dx=\int_a^b cos(2\pi f_1x)cos(2\pi f_1x)cos(c)dx-\int_a^b cos(2\pi f_1x)sin(2\pi f_1x)sin(c)dx=\int_a^b \frac{cos(4\pi f_1x)+1}{2}cos(c)dx-\int_a^b \frac{sin(4\pi f_1x)}{2}sin(c)dx=\frac{1}{2}\int_a^b cos(c)dx=\frac{T}{2}cos(c) abcos(2πf1x)cos(2πf1x+c)dx=abcos(2πf1x)cos(2πf1x)cos(c)dxabcos(2πf1x)sin(2πf1x)sin(c)dx=ab2cos(4πf1x)+1cos(c)dxab2sin(4πf1x)sin(c)dx=21abcos(c)dx=2Tcos(c)
这个结果说明,频率相同的时候,这个积分是一个变化的值,随着检测波的左右平移变化,变化图像也是一个余弦函数,当c=0时,这个积分达到最大值,c=0意味着检测波与待检测波完全重合,最后想知道待检测波的振幅,直接将最大的积分值除以T/2即可。
至此可以总结一下,傅里叶变换其实就是拿很多不同频率的余弦波去做探测:
1)如果频率不同,①式的积分一定为0,如果频率相同的时候①式积分值会随着检测波的左右平移而变化,在两波重合的时候达到最大值
2)使得该积分达到最大值的c值就是待检测波的初相位
3)该积分的最大值除以T/2就是待检测波的振幅
至此,待检测波的频率、初相位和振幅都能算出来了。这个算法中,有一个步骤其实是很麻烦的,就是需要将检测波不断的平移来求出最大值,如果真这么做将极大的提升算法计算量,其实傅里叶大神已经解决了这个问题了,每个检测波不需要平移,只需在用检测波的正弦函数再求一次积分即可,推导过程如下。
∫ a b c o s ( 2 π f 1 x ) s i n ( 2 π f 1 x + c ) d x = ∫ a b c o s ( 2 π f 1 x ) s i n ( 2 π f 1 x ) c o s ( c ) d x + ∫ a b c o s ( 2 π f 1 x ) c o s ( 2 π f 1 x ) s i n ( c ) d x = ∫ a b s i n ( 4 π f 1 x ) 2 c o s ( c ) d x + ∫ a b c o s ( 4 π f 1 x ) + 1 2 s i n ( c ) d x = 1 2 ∫ a b s i n ( c ) d x = T 2 s i n ( c ) \int_a^b cos(2\pi f_1x)sin(2\pi f_1x+c)dx=\int_a^b cos(2\pi f_1x)sin(2\pi f_1x)cos(c)dx+\int_a^b cos(2\pi f_1x)cos(2\pi f_1x)sin(c)dx=\int_a^b \frac{sin(4\pi f_1x)}{2}cos(c)dx+\int_a^b \frac{cos(4\pi f_1x)+1}{2}sin(c)dx=\frac{1}{2}\int_a^b sin(c)dx=\frac{T}{2}sin(c) abcos(2πf1x)sin(2πf1x+c)dx=abcos(2πf1x)sin(2πf1x)cos(c)dx+abcos(2πf1x)cos(2πf1x)sin(c)dx=ab2sin(4πf1x)cos(c)dx+ab2cos(4πf1x)+1sin(c)dx=21absin(c)dx=2Tsin(c)
④式的最大值是T/2,现在通过④式+⑤式的平方和的根即可求出,
[ T 2 c o s ( c ) ] 2 + [ T 2 s i n ( c ) ] 2 = T 2 \sqrt{[\frac{T}{2}cos(c)]^2+[\frac{T}{2}sin(c)]^2}=\frac{T}{2} [2Tcos(c)]2+[2Tsin(c)]2 =2T
看到这你应该就明白了傅里叶变换里面为什么检测波的形式为啥是cos(x)-i*sin(x)了吧,其实就是两个分开计算的,后续还会更新fft算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值