傅里叶级数和傅里叶变换之间的关系推理及应用

news/2024/11/7 10:53:45/

傅里叶级数和傅立叶变换是傅里叶分析的两个主要工具,它们之间有密切的关系。

什么是傅里叶级数

傅里叶级数是将一个周期函数分解为一系列正弦和余弦函数的和。它适用于周期性信号,可以将周期函数表示为一组振幅和相位不同的谐波分量的和。傅里叶级数展示了一个周期函数在不同频率上的频谱内容。这样说太学究了,刚开始接触的人的可能看到这就头大了……

所以傅里叶级数到底是什么呢?

引子:

我们平时理解的更多是平面中的点,一个数A,都可以找到一些数B,C线性组合相加等于A, A = k 1 B + k 2 C A = k_1 B+k_2C A=k1B+k2C k 1 , k 2 是常数 k_1,k_2是常数 k1,k2是常数。我们将 k 1 , k 2 k_1,k_2 k1,k2改写一下, A = B x + C y A=Bx+Cy A=Bx+Cy,变成了我们熟悉的形式。一个正交坐标系可以描述平面上的任意一点。

平面坐标系找到一组正交x,y即可以线性组合拟合A。如果A代表的不是一个数,是一个函数呢?是不是也可以找到类似的正交系x,y。但是函数的一组正交系是什么呢?

周期性函数呢?周期性函数可是有无数个点呀?用什么去拟合呢,此时可能看到这个问题的你在内心里已经有了一些小的想法了,就是找到一组周期性线的函数去拟合。

傅里叶老前辈找到了帮我们找到了,就是下列的三角函数!!!!!!!
1 , cos ⁡ ( x ) , sin ⁡ ( x ) , cos ⁡ ( 2 x ) , sin ⁡ ( 2 x ) , … , cos ⁡ ( n x ) , sin ⁡ ( n x ) 1,\cos(x),\sin(x),\cos(2x),\sin(2x),…,\cos(nx),\sin(nx) 1cos(x)sin(x)cos(2x)sin(2x)cos(nx)sin(nx),… 称为三角函数系。

傅立叶级数可以用以下公式表示:

f T ( x ) = a 0 2 + ∑ n = 1 N ( a n cos ⁡ ( 2 π n T x ) + b n sin ⁡ ( 2 π n T x ) ) f_T(x) = \frac{a_0}{2} + \sum_{n=1}^{N} \left(a_n \cos\left(\frac{2\pi n}{T}x\right) + b_n \sin\left(\frac{2\pi n}{T}x\right)\right) fT(x)=2a0+n=1N(ancos(T2πnx)+bnsin(T2πnx))

展开写理解起来会容 易一些:


f ( x 0 ) = a 0 2 + a 1 cos ⁡ ( 2 π n 1 T x 0 ) + b 1 sin ⁡ ( 2 π n 1 T x 0 ) + a 2 cos ⁡ ( 2 π n 2 T x 0 ) + b 2 sin ⁡ ( 2 π n 2 T x 0 ) + … + a N cos ⁡ ( 2 π N T x 0 ) + N sin ⁡ ( 2 π N T x 0 ) f(x_0)= \frac{a_0}{2}+a_1\cos\left(\frac{2\pi n_1}{T}x_0\right) + b_1 \sin\left(\frac{2\pi n_1 }{T}x_0\right) +a_2\cos\left(\frac{2\pi n_2}{T}x_0\right) + b_2 \sin\left(\frac{2\pi n_2}{T}x_0\right) \\ +\dots \\ +a_N\cos\left(\frac{2\pi N}{T}x_0\right) + N \sin\left(\frac{2\pi N}{T}x_0\right) f(x0)=2a0+a1cos(T2πn1x0)+b1sin(T2πn1x0)+a2cos(T2πn2x0)+b2sin(T2πn2x0)++aNcos(T2πNx0)+Nsin(T2πNx0)


f ( x 1 ) = a 0 2 + a 1 cos ⁡ ( 2 π n 1 T x 1 ) + b 1 sin ⁡ ( 2 π n 1 T x 1 ) + a 2 cos ⁡ ( 2 π n 2 T x 1 ) + b 2 sin ⁡ ( 2 π n 2 T x 1 ) + … + a N cos ⁡ ( 2 π N T x 1 ) + N sin ⁡ ( 2 π N T x 1 ) f(x_1)= \frac{a_0}{2}+a_1\cos\left(\frac{2\pi n_1}{T}x_1\right) + b_1 \sin\left(\frac{2\pi n_1 }{T}x_1\right) +a_2\cos\left(\frac{2\pi n_2}{T}x_1\right) + b_2 \sin\left(\frac{2\pi n_2}{T}x_1\right) \\ +\dots \\ +a_N\cos\left(\frac{2\pi N}{T}x_1\right) + N \sin\left(\frac{2\pi N}{T}x_1\right) f(x1)=2a0+a1cos(T2πn1x1)+b1sin(T2πn1x1)+a2cos(T2πn2x1)+b2sin(T2πn2x1)++aNcos(T2πNx1)+Nsin(T2πNx1)


f ( x 2 ) = a 0 2 + a 1 cos ⁡ ( 2 π n 1 T x 2 ) + b 1 sin ⁡ ( 2 π n 1 T x 2 ) + a 2 cos ⁡ ( 2 π n 2 T x 2 ) + b 2 sin ⁡ ( 2 π n 2 T x 2 ) + … + a N cos ⁡ ( 2 π N T x 2 ) + N sin ⁡ ( 2 π N T x 2 ) f(x_2)= \frac{a_0}{2}+a_1\cos\left(\frac{2\pi n_1}{T}x_2\right) + b_1 \sin\left(\frac{2\pi n_1 }{T}x_2\right) +a_2\cos\left(\frac{2\pi n_2}{T}x_2\right) + b_2 \sin\left(\frac{2\pi n_2}{T}x_2\right) \\ +\dots \\ +a_N\cos\left(\frac{2\pi N}{T}x_2\right) + N \sin\left(\frac{2\pi N}{T}x_2\right) f(x2)=2a0+a1cos(T2πn1x2)+b1sin(T2πn1x2)+a2cos(T2πn2x2)+b2sin(T2πn2x2)++aNcos(T2πNx2)+Nsin(T2πNx2)


⋮ \vdots


f ( x N ) = a 0 2 + a 1 cos ⁡ ( 2 π n 1 T x N ) + b 1 sin ⁡ ( 2 π n 1 T x N ) + a 2 cos ⁡ ( 2 π n 2 T x N ) + b 2 sin ⁡ ( 2 π n 2 T x N ) + … + a N cos ⁡ ( 2 π N T x N ) + N sin ⁡ ( 2 π N T x N ) f(x_N)= \frac{a_0}{2}+a_1\cos\left(\frac{2\pi n_1}{T}x_N\right) + b_1 \sin\left(\frac{2\pi n_1 }{T}x_N\right) +a_2\cos\left(\frac{2\pi n_2}{T}x_N\right) + b_2 \sin\left(\frac{2\pi n_2}{T}x_N\right) \\ +\dots \\ +a_N\cos\left(\frac{2\pi N}{T}x_N\right) + N \sin\left(\frac{2\pi N}{T}x_N\right) f(xN)=2a0+a1cos(T2πn1xN)+b1sin(T2πn1xN)+a2cos(T2πn2xN)+b2sin(T2πn2xN)++aNcos(T2πNxN)+Nsin(T2πNxN)


这里的合成的概念是时域上的叠加的概念,图片来源wikipedia

动态合成图

其中, f ( x ) f(x) f(x)是周期为 T T T的函数, a 0 a_0 a0是直流分量(平均值), a n a_n an b n b_n bn是傅立叶系数,表示在频率为 2 π n T \frac{2\pi n}{T} T2πn的正弦和余弦函数的振幅。这个公式表示了周期函数 f ( x ) f(x) f(x)可以由一系列不同频率的正弦和余弦函数的和来逼近。

3dft

请添加图片描述

为什么可以这样展开

傅里叶级数的证明是一个相对复杂的过程,涉及到数学分析和傅里叶变换的理论。这里我将提供一个简要的概述,介绍傅里叶级数的基本思想和证明思路。
傅里叶级数的证明基于以下两个主要思想:

  • 正交性:傅里叶级数利用了三角函数的正交性质。正弦和余弦函数在一个周期内是正交的,即它们的内积在不同频率下为零,而在相同频率下非零。这意味着不同频率的正弦和余弦函数是线性无关的基函数,可以用来表示不同频率的分量。
  • 逼近性:傅里叶级数的另一个关键思想是逼近函数的概念。根据逼近定理,任何一个具有有限能量的周期函数,都可以用无限多个正弦和余弦函数的线性组合来逼近。通过增加正弦和余弦函数的振幅和相位,可以越来越接近原始函数。

基于这两个思想,傅里叶级数的证明过程可以大致概括为以下步骤: 首先,我们考虑一个周期为T的函数f(x)。我们要证明,可以将它表示为一系列正弦和余弦函数的和。 假设f(x)可以表示为以下形式的级数:
f ( x ) = a 0 2 + ∑ n = 1 ∞ ( a n cos ⁡ ( ω n x ) + b n sin ⁡ ( ω n x ) ) f(x) = \frac{a_0}{2} + \sum_{n=1}^{\infty} (a_n \cos(\omega_n x) + b_n \sin(\omega_n x)) f(x)=2a0+n=1(ancos(ωnx)+bnsin(ωnx))
其中, a 0 a_0 a0 a n a_n an b n b_n bn是待定的系数, ω n \omega_n ωn是频率。

接下来,我们将使用正交性质来计算各个系数。通过将f(x)与正弦和余弦函数进行内积运算,并利用正交性质,我们可以得到各个系数的表达式。

通过计算内积,我们可以得到以下公式

a 0 = 1 π ∫ − π π f ( x ) cos ⁡ ( ω n x ) d x , ω n = 0 a_0 = \frac{1}{\pi} \int_{-\pi}^{\pi} f(x) \cos(\omega_n x)dx, \omega_n = 0 a0=π1ππf(x)cos(ωnx)dx,ωn=0

a n = 1 π ∫ − π π f ( x ) cos ⁡ ( ω n x ) d x a_n = \frac{1}{\pi} \int_{-\pi}^{\pi} f(x) \cos(\omega_n x) dx an=π1ππf(x)cos(ωnx)dx

b n = 1 π ∫ − π π f ( x ) sin ⁡ ( ω n x ) d x b_n = \frac{1}{\pi} \int_{-\pi}^{\pi} f(x) \sin(\omega_n x) dx bn=π1ππf(x)sin(ωnx)dx

ω n = 2 π n T \omega_n = \frac{2\pi n}{T} ωn=T2πn

其中, a 0 a_0 a0是直流分量, a n a_n an b n b_n bn是频率为 ω n \omega_n ωn的余弦和正弦分量的振幅。

由欧拉公式:

cos ⁡ θ = e i θ + e − i θ 2 \cos\theta = \frac{e^{i\theta}+e^{-i\theta}}{2} cosθ=2eiθ+eiθ

sin ⁡ θ = − i e i θ − e − i θ 2 \sin\theta =-i \frac{e^{i\theta}-e^{-i\theta}}{2} sinθ=i2eiθeiθ

下面的证明摘抄自复变函数与积分变换的教材:

请添加图片描述
请添加图片描述
在这里插入图片描述
在这里插入图片描述

F ( ω ) = ∫ − ∞ ∞ f ( t ) e − j ω t d t F(\omega)=\int_{-\infty}^{\infty}f(t)e^{-j\omega t}dt F(ω)=f(t)etdt

就是傅里叶变换了

什么是傅里叶变换

傅里叶变换则是将非周期性函数或信号分解为一组连续的正弦和余弦函数(复指数函数)的积分。傅立叶变换将一个时域函数转换为频域函数,显示了信号在不同频率上的频谱特征。

F ( ω ) = ∫ − ∞ ∞ f ( t ) e − j ω t d t F(\omega)=\int_{-\infty}^{\infty}f(t)e^{-j\omega t}dt F(ω)=f(t)etdt
1 2 π ∫ − ∞ ∞ F ( ω ) e j ω t d ω \frac{1}{2\pi}\int_{-\infty}^{\infty}F(\omega)e^{j\omega t}d\omega 2π1F(ω)etdω


f T ( x ) = a 0 2 + ∑ n = 1 N ( a n cos ⁡ ( 2 π n T x ) + b n sin ⁡ ( 2 π n T x ) ) f_T(x) = \frac{a_0}{2} + \sum_{n=1}^{N} \left(a_n \cos\left(\frac{2\pi n}{T}x\right) + b_n \sin\left(\frac{2\pi n}{T}x\right)\right) fT(x)=2a0+n=1N(ancos(T2πnx)+bnsin(T2πnx))

两者之间的关系可以用以下方式表达:

傅里叶级数是傅立叶变换的一种特殊情况。当一个周期为T的函数被表示为傅里叶级数时,其傅立叶变换是一个离散的频谱,只包含一系列离散的频率分量。对于一个连续非周期函数,傅立叶变换将其表示为一个连续的频谱,包含了所有可能的频率分量。这相当于将傅里叶级数中的频率分量离散化为连续的频谱。傅立叶变换可以视为傅里叶级数的极限情况,当周期趋向于无穷大时,傅里叶级数的频率间隔趋向于零,从而得到了连续的频谱。

总的来说,傅里叶级数和傅立叶变换是傅里叶分析的两种表示方法,它们可以相互转换,但适用于不同的函数类别和分析需求。傅里叶级数适用于周期函数的频谱分析,而傅立叶变换适用于非周期函数的频谱分析。

FFT快速傅里叶变换

DFT定义:

X k = ∑ n = 0 N − 1 x n e − i 2 π n N k , k = 0 , 1 , … , N − 1 X_k = \sum_{n=0}^{N-1}x_ne^{-i\frac{2\pi n}{N}k},k = 0,1,\dots,N-1 Xk=n=0N1xneiN2πnkk=0,1,,N1

展开各项:

X 0 = x 0 e − i 2 π 0 N k + x 1 e − i 2 π 1 N k + ⋯ + x N − 1 e − i 2 π ( N − 1 ) N k , k = 0 X_0=x_0e^{-i\frac{2\pi 0}{N}k}+x_1e^{-i\frac{2\pi 1}{N}k}+\dots+x_{N-1}e^{-i\frac{2\pi (N-1)}{N}k},k=0 X0=x0eiN2π0k+x1eiN2π1k++xN1eiN2π(N1)k,k=0
X 1 = x 0 e − i 2 π 0 N k + x 1 e − i 2 π 1 N k + ⋯ + x N − 1 e − i 2 π ( N − 1 ) N k , k = 1 X_1=x_0e^{-i\frac{2\pi 0}{N}k}+x_1e^{-i\frac{2\pi 1}{N}k}+\dots+x_{N-1}e^{-i\frac{2\pi (N-1)}{N}k},k=1 X1=x0eiN2π0k+x1eiN2π1k++xN1eiN2π(N1)k,k=1
… \dots
X N − 1 = x 0 e − i 2 π 0 N k + x 1 e − i 2 π 1 N k + ⋯ + x N − 1 e − i 2 π ( N − 1 ) N k , k = N − 1 X_{N-1}=x_0e^{-i\frac{2\pi 0}{N}k}+x_1e^{-i\frac{2\pi 1}{N}k}+\dots+x_{N-1}e^{-i\frac{2\pi (N-1)}{N}k},k=N-1 XN1=x0eiN2π0k+x1eiN2π1k++xN1eiN2π(N1)k,k=N1

还是不够直观?举个离散数据的例子来看:

x 0 = 1 x_0 = 1 x0=1
x 1 = 2 x_1 = 2 x1=2
x 3 = 3 x_3 = 3 x3=3
x 4 = 4 x_4 = 4 x4=4
X 0 = x 0 e − i 2 π 0 N k + x 1 e − i 2 π 1 N k + ⋯ + x N − 1 e − i 2 π ( N − 1 ) N k , k = 0 , N = 4 X_0=x_0e^{-i\frac{2\pi 0}{N}k}+x_1e^{-i\frac{2\pi 1}{N}k}+\dots+x_{N-1}e^{-i\frac{2\pi (N-1)}{N}k},k=0,N=4 X0=x0eiN2π0k+x1eiN2π1k++xN1eiN2π(N1)k,k=0,N=4
X 1 = x 0 e − i 2 π 0 N k + x 1 e − i 2 π 1 N k + ⋯ + x N − 1 e − i 2 π ( N − 1 ) N k , k = 1 , N = 4 X_1=x_0e^{-i\frac{2\pi 0}{N}k}+x_1e^{-i\frac{2\pi 1}{N}k}+\dots+x_{N-1}e^{-i\frac{2\pi (N-1)}{N}k},k=1,N=4 X1=x0eiN2π0k+x1eiN2π1k++xN1eiN2π(N1)k,k=1,N=4
X 2 = x 0 e − i 2 π 0 N k + x 1 e − i 2 π 1 N k + ⋯ + x N − 1 e − i 2 π ( N − 1 ) N k , k = 2 , N = 4 X_2=x_0e^{-i\frac{2\pi 0}{N}k}+x_1e^{-i\frac{2\pi 1}{N}k}+\dots+x_{N-1}e^{-i\frac{2\pi (N-1)}{N}k},k=2,N=4 X2=x0eiN2π0k+x1eiN2π1k++xN1eiN2π(N1)k,k=2,N=4
X 3 = x 0 e − i 2 π 0 N k + x 1 e − i 2 π 1 N k + ⋯ + x N − 1 e − i 2 π ( N − 1 ) N k , k = 3 , N = 4 X_3=x_0e^{-i\frac{2\pi 0}{N}k}+x_1e^{-i\frac{2\pi 1}{N}k}+\dots+x_{N-1}e^{-i\frac{2\pi (N-1)}{N}k},k=3,N=4 X3=x0eiN2π0k+x1eiN2π1k++xN1eiN2π(N1)k,k=3,N=4

X 0 = 1 e − i 2 π 0 4 0 + 2 e − i 2 π 1 4 0 + 3 e − i 2 π ( 2 ) 4 0 + 4 e − i 2 π ( 3 ) 4 0 = 10 + 0 i X_0=1e^{-i\frac{2\pi 0}{4}0}+2e^{-i\frac{2\pi 1}{4}0}+3e^{-i\frac{2\pi (2)}{4}0}+4e^{-i\frac{2\pi (3)}{4}0}=10+0i X0=1ei42π00+2ei42π10+3ei42π(2)0+4ei42π(3)0=10+0i
X 1 = 1 e − i 2 π 0 4 1 + 2 e − i 2 π 1 4 1 + 3 e − i 2 π ( 2 ) 4 1 + 4 e − i 2 π ( 3 ) 4 1 = − 2 + 2 i X_1=1e^{-i\frac{2\pi 0}{4}1}+2e^{-i\frac{2\pi 1}{4}1}+3e^{-i\frac{2\pi (2)}{4}1}+4e^{-i\frac{2\pi (3)}{4}1}=-2+2i X1=1ei42π01+2ei42π11+3ei42π(2)1+4ei42π(3)1=2+2i
X 2 = 1 e − i 2 π 0 4 2 + 2 e − i 2 π 1 4 2 + 3 e − i 2 π ( 2 ) 4 2 + 4 e − i 2 π ( 3 ) 4 2 = − 2 + 0 i X_2=1e^{-i\frac{2\pi 0}{4}2}+2e^{-i\frac{2\pi 1}{4}2}+3e^{-i\frac{2\pi (2)}{4}2}+4e^{-i\frac{2\pi (3)}{4}2}=-2+0i X2=1ei42π02+2ei42π12+3ei42π(2)2+4ei42π(3)2=2+0i
X 3 = 1 e − i 2 π 0 4 3 + 2 e − i 2 π 1 4 3 + 3 e − i 2 π ( 2 ) 4 3 + 4 e − i 2 π ( 3 ) 4 3 = − 2 − 2 i X_3=1e^{-i\frac{2\pi 0}{4}3}+2e^{-i\frac{2\pi 1}{4}3}+3e^{-i\frac{2\pi (2)}{4}3}+4e^{-i\frac{2\pi (3)}{4}3}=-2-2i X3=1ei42π03+2ei42π13+3ei42π(2)3+4ei42π(3)3=22i

令: w = e − i 2 π N w = e^{\frac{-i2\pi}{N}} w=eNi2π
把这个案例写成矩阵的形式:
[ X 0 X 1 X 2 X 3 ] = [ 1 1 1 1 1 w w 2 w 3 1 w 2 w 4 w 6 1 w 3 w 6 w 9 ] [ x 0 x 1 x 2 x 3 ] \begin{bmatrix} X_0 \\ X_1 \\ X_2 \\ X_3 \\ \end{bmatrix} = \begin{bmatrix} 1 & 1 &1 &1 \\ 1 &w&w^2&w^3 \\ 1 &w^2 & w^4 &w^6 \\ 1 & w^3 & w^6 & w^9 \end{bmatrix} \begin{bmatrix} x_0 \\ x_1 \\ x_2 \\ x_3 \end{bmatrix} X0X1X2X3 = 11111ww2w31w2w4w61w3w6w9 x0x1x2x3
完成这4个点DFT,需计算 16次乘法,即矩阵F中每个元素都会参与一次乘法,共 4个元素;12次加法,即每完成一个点需要3次加法。直到现在DFT终于高懂了,但是计算起来太麻烦了,效率太低。数据越大,计算量越大。FFT出现解决了计算量大的问题。

w = e − i 2 π N w = e^{\frac{-i2\pi}{N}} w=eNi2π 具有对称性,这是FFT简化的计算的方法,即:
W N k + N 2 = − W N k W_N^{k+\frac{N}{2}} = -W_N^k WNk+2N=WNk

X k = ∑ n = 0 N − 1 x n e − i 2 π n N k X_k = \sum_{n=0}^{N-1}x_ne^{-i\frac{2\pi n}{N}k} Xk=n=0N1xneiN2πnk

再写一遍,加深印象: w = e − i 2 π N w = e^{\frac{-i2\pi}{N}} w=eNi2π

X k = ∑ n = 0 N − 1 x n w n k X_k = \sum_{n=0}^{N-1}{x_nw^{nk}} Xk=n=0N1xnwnk

再看这个公式,变化即是信号值乘以对应的复数 e − i 2 π n N k e^{-i\frac{2\pi n}{N}k} eiN2πnk再求累加。
根据对称性可以简化傅里叶的计算,这就是FFT的意义。

分治法实现

上面的式子再写一遍,就当加深印象了,好累!!!!!

令: w = e − i 2 π N w = e^{\frac{-i2\pi}{N}} w=eNi2π

X 0 = 1 e − i 2 π 0 4 0 + 2 e − i 2 π 1 4 0 + 3 e − i 2 π ( 2 ) 4 0 + 4 e − i 2 π ( 3 ) 4 0 = 10 + 0 i X_0=1e^{-i\frac{2\pi 0}{4}0}+2e^{-i\frac{2\pi 1}{4}0}+3e^{-i\frac{2\pi (2)}{4}0}+4e^{-i\frac{2\pi (3)}{4}0}=10+0i X0=1ei42π00+2ei42π10+3ei42π(2)0+4ei42π(3)0=10+0i
X 1 = 1 e − i 2 π 0 4 1 + 2 e − i 2 π 1 4 1 + 3 e − i 2 π ( 2 ) 4 1 + 4 e − i 2 π ( 3 ) 4 1 = − 2 + 2 i X_1=1e^{-i\frac{2\pi 0}{4}1}+2e^{-i\frac{2\pi 1}{4}1}+3e^{-i\frac{2\pi (2)}{4}1}+4e^{-i\frac{2\pi (3)}{4}1}=-2+2i X1=1ei42π01+2ei42π11+3ei42π(2)1+4ei42π(3)1=2+2i
X 2 = 1 e − i 2 π 0 4 2 + 2 e − i 2 π 1 4 2 + 3 e − i 2 π ( 2 ) 4 2 + 4 e − i 2 π ( 3 ) 4 2 = − 2 + 0 i X_2=1e^{-i\frac{2\pi 0}{4}2}+2e^{-i\frac{2\pi 1}{4}2}+3e^{-i\frac{2\pi (2)}{4}2}+4e^{-i\frac{2\pi (3)}{4}2}=-2+0i X2=1ei42π02+2ei42π12+3ei42π(2)2+4ei42π(3)2=2+0i
X 3 = 1 e − i 2 π 0 4 3 + 2 e − i 2 π 1 4 3 + 3 e − i 2 π ( 2 ) 4 3 + 4 e − i 2 π ( 3 ) 4 3 = − 2 − 2 i X_3=1e^{-i\frac{2\pi 0}{4}3}+2e^{-i\frac{2\pi 1}{4}3}+3e^{-i\frac{2\pi (2)}{4}3}+4e^{-i\frac{2\pi (3)}{4}3}=-2-2i X3=1ei42π03+2ei42π13+3ei42π(2)3+4ei42π(3)3=22i

X 0 = w 0 × 0 x 0 + w 1 × 0 x 1 + w 2 × 0 x 2 + w 3 × 0 x 3 X_0 = w^{0\times 0}x_0+w^{1 \times 0}x_1+w^{2\times 0}x_2+w^{3 \times 0}x_3 X0=w0×0x0+w1×0x1+w2×0x2+w3×0x3
X 1 = w 0 × 1 x 0 + w 1 × 1 x 1 + w 2 × 1 x 2 + w 3 × 1 x 3 X_1= w^{0\times 1}x_0+w^{1 \times 1}x_1+w^{2 \times 1}x_2+w^{3 \times 1}x_3 X1=w0×1x0+w1×1x1+w2×1x2+w3×1x3
X 2 = w 0 × 2 x 0 + w 1 × 2 x 1 + w 2 × 2 x 2 + w 3 × 2 x 3 X_2=w^{0\times 2}x_0+w^{1 \times 2}x_1+w^{2 \times 2}x_2+w^{3 \times 2}x_3 X2=w0×2x0+w1×2x1+w2×2x2+w3×2x3
X 3 = w 0 × 3 x 0 + w 1 × 3 x 1 + w 2 × 3 x 2 + w 3 × 3 x 3 X_3=w^{0\times 3}x_0+w^{1 \times 3}x_1+w^{2 \times 3}x_2+w^{3 \times 3}x_3 X3=w0×3x0+w1×3x1+w2×3x2+w3×3x3


这样我们将上式分下组,接着讲,将奇数分为一组,偶数分为一组!!!!!!


X 0 = w 0 × 0 x 0 + w 2 × 0 x 2 + w 1 × 0 x 1 + w 3 × 0 x 3 X_0=w^{0\times 0}x_0+w^{2\times 0}x_2+w^{1 \times 0}x_1+w^{3 \times 0}x_3 X0=w0×0x0+w2×0x2+w1×0x1+w3×0x3
X 1 = w 0 × 1 x 0 + w 2 × 1 x 2 + w 1 × 1 x 1 + w 3 × 1 x 3 X_1=w^{0\times 1}x_0+w^{2 \times 1}x_2+w^{1 \times 1}x_1+w^{3 \times 1}x_3 X1=w0×1x0+w2×1x2+w1×1x1+w3×1x3
X 2 = w 0 × 2 x 0 + w 2 × 2 x 2 + w 1 × 2 x 1 + w 3 × 2 x 3 X_2=w^{0\times 2}x_0+w^{2 \times 2}x_2+w^{1 \times 2}x_1+w^{3 \times 2}x_3 X2=w0×2x0+w2×2x2+w1×2x1+w3×2x3
X 3 = w 0 × 3 x 0 + w 2 × 3 x 2 + w 1 × 3 x 1 + w 3 × 3 x 3 X_3=w^{0\times 3}x_0+w^{2 \times 3}x_2+w^{1 \times 3}x_1+w^{3 \times 3}x_3 X3=w0×3x0+w2×3x2+w1×3x1+w3×3x3

[ w 0 × 0 w 2 × 0 w 1 × 0 w 3 × 0 w 0 × 1 w 2 × 1 w 1 × 1 w 3 × 1 w 0 × 2 w 2 × 2 w 1 × 2 w 3 × 2 w 0 × 3 w 2 × 3 w 1 × 3 w 3 × 3 ] [ x 0 x 2 x 1 x 3 ] = [ w 0 w 0 w 0 w 0 w 0 w 2 w 1 w 3 w 0 w 4 w 2 w 6 w 0 w 6 w 3 w 9 ] [ x 0 x 2 x 1 x 3 ] \begin{bmatrix} w^{0\times 0} & w^{2\times 0} &w^{1 \times 0} &w^{3 \times 0} \\ w^{0\times 1}&w^{2 \times 1}&w^{1 \times 1}&w^{3 \times 1} \\ w^{0\times 2} &w^{2 \times 2} & w^{1 \times 2}&w^{3 \times 2} \\ w^{0\times 3} & w^{2 \times 3} & w^{1 \times 3} &w^{3 \times 3} \end{bmatrix} \begin{bmatrix} x_0 \\ x_2 \\ x_1 \\ x_3 \end{bmatrix}= \begin{bmatrix} w^{0} & w^{0} &w^{0} &w^{0} \\ w^{0}&w^{2 }&w^{1}&w^{3} \\ w^{0} &w^{4} & w^{2}&w^{6} \\ w^{0} & w^{6} & w^{3} &w^{9} \end{bmatrix} \begin{bmatrix} x_0 \\ x_2 \\ x_1 \\ x_3 \end{bmatrix} w0×0w0×1w0×2w0×3w2×0w2×1w2×2w2×3w1×0w1×1w1×2w1×3w3×0w3×1w3×2w3×3 x0x2x1x3 = w0w0w0w0w0w2w4w6w0w1w2w3w0w3w6w9 x0x2x1x3

w = e − i 2 π N w = e^{\frac{-i2\pi}{N}} w=eNi2π
根最美公式欧拉公式:
e i x = cos ⁡ ( x ) + i sin ⁡ ( x ) e^{ix} = \cos(x) + i\sin(x) eix=cos(x)+isin(x)
上述的矩阵还可以写成:
w n × k = cos ⁡ ( 2 π N × n × k ) − i sin ⁡ ( 2 π N × n × k ) w^{n\times k } = \cos(\frac{2\pi}{N}\times n\times k)-i\sin(\frac{2\pi}{N}\times n\times k) wn×k=cos(N2π×n×k)isin(N2π×n×k)

[ cos ⁡ ( 2 π 4 × 0 ) − i sin ⁡ ( 2 π 4 × 0 ) cos ⁡ ( 2 π 4 × 0 ) − i sin ⁡ ( 2 π 4 × 0 ) cos ⁡ ( 2 π 4 × 0 ) − i sin ⁡ ( 2 π 4 × 0 ) cos ⁡ ( 2 π N × 0 ) − i sin ⁡ ( 2 π 4 × 0 ) cos ⁡ ( 2 π 4 × 0 ) − i sin ⁡ ( 2 π 4 × 0 ) cos ⁡ ( 2 π 4 × 2 ) − i sin ⁡ ( 2 π 4 × 2 ) cos ⁡ ( 2 π 4 × 1 ) − i sin ⁡ ( 2 π 4 × 1 ) cos ⁡ ( 2 π N × 3 ) − i sin ⁡ ( 2 π 4 × 3 ) cos ⁡ ( 2 π 4 × 0 ) − i sin ⁡ ( 2 π 4 × 0 ) cos ⁡ ( 2 π 4 × 4 ) − i sin ⁡ ( 2 π 4 × 4 ) cos ⁡ ( 2 π 4 × 2 ) − i sin ⁡ ( 2 π 4 × 2 ) cos ⁡ ( 2 π N × 6 ) − i sin ⁡ ( 2 π 4 × 6 ) cos ⁡ ( 2 π 4 × 0 ) − i sin ⁡ ( 2 π 4 × 0 ) cos ⁡ ( 2 π 4 × 6 ) − i sin ⁡ ( 2 π 4 × 6 ) cos ⁡ ( 2 π 4 × 3 ) − i sin ⁡ ( 2 π 4 × 3 ) cos ⁡ ( 2 π N × 9 ) − i sin ⁡ ( 2 π 4 × 9 ) ] [ x 0 x 2 x 1 x 3 ] \begin{bmatrix} \cos(\frac{2\pi}{4}\times0)-i\sin(\frac{2\pi}{4}\times 0) & \cos(\frac{2\pi}{4}\times0)-i\sin(\frac{2\pi}{4}\times 0) & \cos(\frac{2\pi}{4}\times0)-i\sin(\frac{2\pi}{4}\times 0) & \cos(\frac{2\pi}{N}\times0)-i\sin(\frac{2\pi}{4}\times 0) \\ \cos(\frac{2\pi}{4}\times0)-i\sin(\frac{2\pi}{4}\times 0)& \cos(\frac{2\pi}{4}\times2)-i\sin(\frac{2\pi}{4}\times 2)& \cos(\frac{2\pi}{4}\times1)-i\sin(\frac{2\pi}{4}\times 1)& \cos(\frac{2\pi}{N}\times3)-i\sin(\frac{2\pi}{4}\times 3) \\ \cos(\frac{2\pi}{4}\times0)-i\sin(\frac{2\pi}{4}\times 0) & \cos(\frac{2\pi}{4}\times4)-i\sin(\frac{2\pi}{4}\times 4) & \cos(\frac{2\pi}{4}\times2)-i\sin(\frac{2\pi}{4}\times 2)& \cos(\frac{2\pi}{N}\times6)-i\sin(\frac{2\pi}{4}\times6) \\ \cos(\frac{2\pi}{4}\times0)-i\sin(\frac{2\pi}{4}\times 0) & \cos(\frac{2\pi}{4}\times6)-i\sin(\frac{2\pi}{4}\times 6) & \cos(\frac{2\pi}{4}\times3)-i\sin(\frac{2\pi}{4}\times 3) & \cos(\frac{2\pi}{N}\times9)-i\sin(\frac{2\pi}{4}\times 9) \end{bmatrix} \begin{bmatrix} x_0 \\ x_2 \\ x_1 \\ x_3 \end{bmatrix} cos(42π×0)isin(42π×0)cos(42π×0)isin(42π×0)cos(42π×0)isin(42π×0)cos(42π×0)isin(42π×0)cos(42π×0)isin(42π×0)cos(42π×2)isin(42π×2)cos(42π×4)isin(42π×4)cos(42π×6)isin(42π×6)cos(42π×0)isin(42π×0)cos(42π×1)isin(42π×1)cos(42π×2)isin(42π×2)cos(42π×3)isin(42π×3)cos(N2π×0)isin(42π×0)cos(N2π×3)isin(42π×3)cos(N2π×6)isin(42π×6)cos(N2π×9)isin(42π×9) x0x2x1x3

由于 w = e − i 2 π N w = e^{\frac{-i2\pi}{N}} w=eNi2π 具有周期性,所以可以将w的幂次方简化,由于N=4。所以可以看成周期为4。
例如:
在N=4的条件下根据周期性可得以下结论:
根据周期性:
w 4 = 1 w^4 = 1 w4=1
w 9 = w 1 w^9 = w^1 w9=w1
w 6 = w 2 w^6 = w^2 w6=w2
根据对称性:
w 1 = − w 3 w^1 = -w^3 w1=w3
w 0 = − w 2 w^0 = -w^2 w0=w2

证明:
在这里插入图片描述

在这里插入图片描述

可以发现红色区域的内容相同,蓝色区域的内容相差一个 ω 2 \omega^2 ω2 因此我们只需要计算一半的内容即可。由于加法次数多于乘法,因此复杂度只需考虑加法使用的次数,本次计算耗时:2 ( 红 色 用 两 次 加 法 ) + 2 ( 蓝 色 用 两 次 加 法 ) + 4 ( 中 间 的 4 个 加 法 ) = 4 l o g 2 4 2(红色用两次加法)+ 2(蓝色用两次加法)+4(中间的4个加法)= 4 log ⁡ 2 ( 4 ) 4\log_2 (4) 4log2(4)

当n=8时
在这里插入图片描述

在这里插入图片描述

其中,绿色区域覆盖全部,表示开始需要计算的内容,棕色区域只包含了上半部分的两块内容,在得到棕色区域结果后可以顺势得到下半部分的绿色区域,橙色区域包含上面1/4部分的两块区域,红色区域则值包含最上面一行的两块区域。 绿(要求)->棕(要求)->橙(要求)->红(解)->橙(解)->棕(解)->绿(解),这是一个很明显的递归过程。

在这里插入图片描述
FFT

在这里插入图片描述
IFFT

本身是一个求逆的过程,由于范德蒙矩阵的特性,得到结果如下

在这里插入图片描述
在这里插入图片描述


再写一遍:

X k = ∑ n = 0 N − 1 x n e − i 2 π n N k , k = 0 , 1 , … , N − 1 X_k = \sum_{n=0}^{N-1}x_ne^{-i\frac{2\pi n}{N}k},k = 0,1,\dots,N-1 Xk=n=0N1xneiN2πnkk=0,1,,N1
X k = ∑ n = 0 N − 1 x ( n ) × cos ⁡ ( 2 π n N k ) − i ∑ n = 0 N − 1 x ( n ) × sin ⁡ ( 2 π n N k ) X_k = \sum_{n=0}^{N-1}x(n)\times\cos(\frac{2\pi n}{N}k)-i\sum_{n=0}^{N-1}x(n)\times\sin(\frac{2\pi n}{N}k) Xk=n=0N1x(n)×cos(N2πnk)in=0N1x(n)×sin(N2πnk)

应用

等有时间再作整理……

C++代码实现

等有时间再作整理……


http://www.ppmy.cn/news/99999.html

相关文章

Java 基础进阶篇(十六):多线程总结

文章目录 一、多线程概述二、多线程的创建1.1 方式一:继承 Thread 类1.2 方式二:实现 Runnable 接口匿名内部类实现方案 1.3 方式三:JDK 5.0新增: 实现 Callable 接口1.4 三种方式对比 二、Thread的常用方法三、线程安全与同步3.1 线程安全3.…

Redis的ZipList和QuickList和SkipList和RedisObject(未完成)

ZipList:压缩列表,为了节省内存而设计的一种数据结构 ZipList是一种特殊的双端链表,是由一系列的特殊编码的连续内存块组成,不需要通过指针来进行寻址来找到各个节点,可以在任意一端进行压入或者是弹出操作,并且该操作…

【华为OD机试 2023 B卷 | 100分】IPv4地址转换成整数(C++ Java JavaScript Python)

文章目录 题目描述输入描述输出描述用例CjavajavaScriptpython 题目描述 存在一种虚拟IPv4地址,由4小节组成,每节的范围为0~255,以#号间隔,虚拟IPv4地址可以转换为一个32位的整数,例如: 128#0#255#255&am…

SpringMVC框架面试专题(初级-中级)-第十节

欢迎大家一起探讨~如果可以帮到大家请为我点赞关注哦~ 截止到本节关于SpringMVC的内容已经更新完毕,后续会更新SpringBoot框架的面试题;大家在背题的时候切记不要死记硬背,需要理解 这是什么?有什么操作&a…

跑通NeRF-SLAM代码记录

前言 Install 原文章github链接 下载代码 git clone https://github.com/ToniRV/NeRF-SLAM.git --recurse-submodules git submodule update --init --recursive因为有相关依赖,所以尽量使用命令下载代码。 2. 新建nerf-slam环境,github上也没提到p…

OpenCV基础操作(5)图像平滑、形态学转换、图像梯度

import numpy as np import cv2 as cv from matplotlib import pyplot as plt一、图像平滑 1、2D卷积 我们可以对 2D 图像实施低通滤波(LPF),高通滤波(HPF)等。 LPF 帮助我们去除噪音,模糊图像。HPF 帮助…

我用GPT写了一个关于GPT的文章,大家看看写的如何

声明:以下内容来自GPT-3.5大模型(图片除外) 目录 I. 引言 1.1 研究背景和意义 1.2 现有研究综述 II. ChatGPT技术介绍 2.1 ChatGPT技术原理 2.2 ChatGPT技术优势 III. ChatGPT技术在智能客服中的应用和挑战 3.1 ChatGPT技术在智能客…

TOWER 成就徽章 NFT 系列介绍——TOWER 生态系统的第一个灵魂通证(SBT)

2022 年 7 月,团队推出了成就徽章 NFT 系列,记录每个成员在 TOWER 生态系统中的努力。这是第一个不可转让的灵魂 NFT 系列(SBT),代表了每个玩家的独特身份。 关于灵魂通证(SBT) 以太坊联合创始人…