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

news2025/3/3 18:35:22

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

什么是傅里叶级数

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

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

引子:

我们平时理解的更多是平面中的点,一个数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.coloradmin.cn/o/580515.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ChatGPT】ChatGPT快速生成短视频

1.chatGPT剪映 chatGPT生成文本后通过剪映图文成片 这次用了new bing:Chatbot AI 在线网页版 (atmob.cn) 打开剪映-图文成片 把new bing生成的文本粘贴过来,点击生成视频。 生成好了,是这样 剪映自动生成的,最后还是得手工改改&…

ChatGPT生成Excel统计公式

🍏🍐🍊🍑🍒🍓🫐🥑🍋🍉 ChatGPT生成Excel统计公式 文章目录 🍐问题引入🍐具体操作🐳结语 🍐问题引入…

如何使用 service account 获取 keycloak 的用户信息

Keycloak 是一个开源的权限管理和认证系统。使用 Keycloak 可以让开发者专注于解决业务的核心问题。获取用户信息是权限管理和认证系统需要的基本功能。Service Account 是OAuth 2.0推荐的系统服务使用的账户,开发者可以通过 Keycloak 的 Service Account 来让自己的…

【嵌入式烧录/刷写文件】-3.2-S19/Hex文件转换为Bin文件

案例背景(共6页精讲): 该篇将告诉您:如何使用Vector HexView工具,对一个Intel Hex或Motorola S-record(S19/SREC/mot/SX)文件转换为bin文件。 目录 1 Intel Hex,Motorola S-record(S19/SREC/mot/SX),Bin文件之间的差…

基于SpringBoot养老院管理系统

目录 一、项目介绍 二. 运行环境 三、项目技术 四、部署项目 五、项目运行 六、项目展示 五、项目下载 一、项目介绍 基于springboot的养老院管理系统拥有多种角色账号:管理员和用户 管理员:管理员管理、用户管理、健康管理、病例方案管理、药品…

计算机网络面试八股文

网络分层结构 计算机网络体系大致分为三种,OSI七层模型、TCP/IP四层模型和五层模型。一般面试的时候考察比较多的是五层模型。最全面的Java面试网站:最全面的Java面试网站 五层模型:应用层、传输层、网络层、数据链路层、物理层。 应用层&a…

文生视频综述

文字生成视频当前挑战 和发展现状_哔哩哔哩_bilibili今天我们聊了什么是 text to video,它的原理和目前的研究进展。text to video 是一种将文本转换为视频的技术,它可以通过图像处理、语音识别和自然语言处理等技术来实现。目前,text to vid…

【C语言】刷题训练营 —— 每日一练(十三)

文章目录 前言 BC123 小乐乐找最大数BC124 小乐乐是否被叫家长BC125 小乐乐转换成绩BC126 小乐乐算多少人被请家长BC127 小乐乐算最高分BC128 小乐乐计算求和BC129 小乐乐计算函数BC130 小乐乐查找数字BC131 KiKi学程序设计基础BC132 KiKi算期末成绩完结 前言 大家好&#xff…

计算机体系结构标量处理机

先行控制技术 缓冲深度的设计方法 以先行指令缓冲栈为例。 假设缓冲深度为 D 1 D_1 D1​,考虑以下两种极端情况。 (1)先行指令缓冲栈已经充满,此时指令流出速度最快,例如连续分析RR型指令 ,设这种指令序…

[元带你学: eMMC协议详解 12] Speed Mode 选择

依JEDEC eMMC 5.1及经验辛苦整理,付费内容,禁止转载。 所在专栏 《元带你学: eMMC协议详解》 内容摘要 全文 2000字, 介绍了各种Speed Mode 选择的方法, 需要按照一定的步骤, 重点需要掌握HS400, High Speed 和 HS20…

python中的流程控制语句

文章目录 if-else语句代码演示: if-elif-else语句代码演示1:代码演示2: while 循环语句循环语句练习1.求100以内所有的奇数之和2.求100以内所有7的倍数之和,以及个数3.求1000内的水仙花数4.获取用户输入的任意数,判断是…

《Reinforcement Learning: An Introduction》第2章笔记

2. Multi-armed Bandits 评估性反馈(evaluative feedback) 完全取决于采取的动作,这是强化学习采用的方式。纯粹的评估性反馈表明要执行的动作有多好,但是不关注它是否是可能的最好或最坏的动作。指导性反馈(instruct…

迭代器Iterator和生成器funcion *

迭代器Iterator 迭代器 为各种不同的数据结果提供统一的访问机制,任何数据结构只要部署Iterator接口,就可以完成便利操作,主要提供for of 工作原理: 创建一个指针对象,指向当前数组的起始位置 第一次调用对象的next方…

JAVA之数组2

添加元素 从后往前进行迭代,最后在末尾插入元素 tip:为避免数字在覆盖过程中丢失,故从后往前覆盖 删除元素 从前往后迭代,最后将末尾赋值为0 tip: 以覆盖的数arr【i】为基准,构造循环 共同处Tip: 范围均为【index1&…

子串--子字符串 0528

210102 201012 A1A2…An An…A2A1 如何做, 翻转的是21,因为2>1; 翻转的是210,因为2>0; 翻转的是2101,因为2>1; 翻转的是21010,因为2>0; 翻转的是210102,因为22且1&…

JavaScript 进阶 (二)

目录 深入对象 创建对象三种方式 构造函数 实例成员&静态成员 内置构造函数 Object Array String Number 深入对象 创建对象三种方式 1. 利用对象字面量创建对象 const obj { name : abc} 2. 利用 new Object 创建对象 const obj new Object({ uname: 123 }…

如何评估一个好的物业系统开发方案?

在当前不断变化的物业管理市场中,物业系统已成为物业管理公司提高管理效率和降低成本的必然选择。因此,如何评估一个好的物业系统开发方案成为了每个物业管理决策者必须面对的重要问题。在本文中,我们将介绍如何从以下几个方面来评估一个好的…

文心一言 VS 讯飞星火 VS chatgpt (24)-- 算法导论4.2 6题

六、用Strassen 算法作为子进程来进行一个 knn 矩阵和一个nkn 矩阵相乘,最快需要花费多长时间?对两个输入矩阵规模互换的情况,回答相同的问题。 文心一言: Strassen 算法是一种用于矩阵乘法的分治算法,它将原始的矩阵分解为较小…

腾讯云产品首单特惠是什么意思?包括新用户老用户的解答

腾讯云最近推出的活动限制条件为产品首单特惠,但是有的用户购买不了,右上角提示“产品首单特惠”,那么什么是产品首单特惠?什么是新用户?什么是老用户?新手站长给大家: 腾讯云产品首单特惠是什…

【Linux】Pinctrl子系统简介

前言: 我们工作开发中非常常用的就是GPIO,在Linux开发中,是有必要去熟悉并理解的。在Linux内核中也有提供相应的子系统pinctrl子系统,本文从大的面上去了解它。 参考学习:Linux笔记老师课程(Pinctrl子系统&…