离散傅里叶变换(DFT)

离散傅里叶变换(DFT)

离散傅里叶变换(Discrete Fourier Transform,DFT)是一种将离散时间序列转换到频域的数学工具。DFT 可以将一个有限长的时间序列分解为一组正弦波和余弦波的组合,从而分析信号的频率成分。

DFT 的定义

对于一个长度为 N N N的离散时间序列 x [ n ] x[n] x[n],其离散傅里叶变换 X [ k ] X[k] X[k]定义如下:

X [ k ] = ∑ n = 0 N − 1 x [ n ] e − j 2 π N k n , k = 0 , 1 , … , N − 1 X[k] = \sum_{n=0}^{N-1} x[n] e^{-j \frac{2\pi}{N} kn}, \quad k = 0, 1, \ldots, N-1 X[k]=n=0N1x[n]ejN2πkn,k=0,1,,N1

其中:
- X [ k ] X[k] X[k]是频域信号的第 k k k个频率分量。
- x [ n ] x[n] x[n]是时间域信号的第 n n n个时间点。
- j j j是虚数单位,满足 j 2 = − 1 j^2 = -1 j2=1
- e − j 2 π N k n e^{-j \frac{2\pi}{N} kn} ejN2πkn是复指数函数,表示频率为 k N \frac{k}{N} Nk的正弦波和余弦波。

逆离散傅里叶变换(IDFT)

DFT 的逆变换称为逆离散傅里叶变换(Inverse Discrete Fourier Transform,IDFT),用于将频域信号转换回时间域。IDFT 的定义如下:

x [ n ] = 1 N ∑ k = 0 N − 1 X [ k ] e j 2 π N k n , n = 0 , 1 , … , N − 1 x[n] = \frac{1}{N} \sum_{k=0}^{N-1} X[k] e^{j \frac{2\pi}{N} kn}, \quad n = 0, 1, \ldots, N-1 x[n]=N1k=0N1X[k]ejN2πkn,n=0,1,,N1

DFT 的性质
  1. 周期性
    - X [ k ] X[k] X[k] x [ n ] x[n] x[n]都是周期性的,周期为 N N N

  2. 对称性

    • DFT 结果 X [ k ] X[k] X[k]的对称性:如果 x [ n ] x[n] x[n]是实数序列,那么 X [ k ] X[k] X[k]的正频率部分和负频率部分是共轭对称的,即 X [ k ] = X ∗ [ N − k ] X[k] = X^*[N-k] X[k]=X[Nk]
  3. 能量守恒

    • Parseval 定理指出,时间域信号的能量等于频域信号的能量总和,即:
      ∑ n = 0 N − 1 ∣ x [ n ] ∣ 2 = 1 N ∑ k = 0 N − 1 ∣ X [ k ] ∣ 2 \sum_{n=0}^{N-1} |x[n]|^2 = \frac{1}{N} \sum_{k=0}^{N-1} |X[k]|^2 n=0N1x[n]2=N1k=0N1X[k]2
DFT 的计算

直接计算 DFT 需要 O ( N 2 ) O(N^2) O(N2)次运算,因为每个 X [ k ] X[k] X[k]需要计算 N N N项乘法和加法。快速傅里叶变换(FFT)是计算 DFT 的高效算法,可以将计算复杂度降低到 O ( N log ⁡ N ) O(N \log N) O(NlogN)

示例

假设我们有一个长度为 4 的时间序列 x [ n ] = [ 1 , 2 , 3 , 4 ] x[n] = [1, 2, 3, 4] x[n]=[1,2,3,4]。我们计算其 DFT:

  1. 定义
    X [ k ] = ∑ n = 0 3 x [ n ] e − j 2 π 4 k n X[k] = \sum_{n=0}^{3} x[n] e^{-j \frac{2\pi}{4} kn} X[k]=n=03x[n]ej42πkn

  2. 计算各频率分量

    - X [ 0 ] X[0] X[0]:
    X [ 0 ] = 1 ⋅ e − j 0 + 2 ⋅ e − j 0 + 3 ⋅ e − j 0 + 4 ⋅ e − j 0 = 1 + 2 + 3 + 4 = 10 X[0] = 1 \cdot e^{-j 0} + 2 \cdot e^{-j 0} + 3 \cdot e^{-j 0} + 4 \cdot e^{-j 0} = 1 + 2 + 3 + 4 = 10 X[0]=1ej0+2ej0+3ej0+4ej0=1+2+3+4=10

    - X [ 1 ] X[1] X[1]:
    X [ 1 ] = 1 ⋅ e − j 2 π 4 ⋅ 0 + 2 ⋅ e − j 2 π 4 ⋅ 1 + 3 ⋅ e − j 2 π 4 ⋅ 2 + 4 ⋅ e − j 2 π 4 ⋅ 3 X[1] = 1 \cdot e^{-j \frac{2\pi}{4} \cdot 0} + 2 \cdot e^{-j \frac{2\pi}{4} \cdot 1} + 3 \cdot e^{-j \frac{2\pi}{4} \cdot 2} + 4 \cdot e^{-j \frac{2\pi}{4} \cdot 3} X[1]=1ej42π0+2ej42π1+3ej42π2+4ej42π3
    计算复数指数部分:
    X [ 1 ] = 1 + 2 ( − j ) + 3 ( − 1 ) + 4 ( j ) = 1 − 3 + 2 j + 4 j = − 2 + 2 j X[1] = 1 + 2(-j) + 3(-1) + 4(j) = 1 - 3 + 2j + 4j = -2 + 2j X[1]=1+2(j)+3(1)+4(j)=13+2j+4j=2+2j

    - X [ 2 ] X[2] X[2]:
    X [ 2 ] = 1 ⋅ e − j 2 π 4 ⋅ 0 + 2 ⋅ e − j 2 π 4 ⋅ 2 + 3 ⋅ e − j 2 π 4 ⋅ 4 + 4 ⋅ e − j 2 π 4 ⋅ 6 X[2] = 1 \cdot e^{-j \frac{2\pi}{4} \cdot 0} + 2 \cdot e^{-j \frac{2\pi}{4} \cdot 2} + 3 \cdot e^{-j \frac{2\pi}{4} \cdot 4} + 4 \cdot e^{-j \frac{2\pi}{4} \cdot 6} X[2]=1ej42π0+2ej42π2+3ej42π4+4ej42π6
    由于 e − j π = − 1 e^{-j \pi} = -1 e=1,计算结果为:
    X [ 2 ] = 1 + 2 ( − 1 ) + 3 ( 1 ) + 4 ( − 1 ) = 1 − 2 + 3 − 4 = − 2 X[2] = 1 + 2(-1) + 3(1) + 4(-1) = 1 - 2 + 3 - 4 = -2 X[2]=1+2(1)+3(1)+4(1)=12+34=2

    - X [ 3 ] X[3] X[3]:
    X [ 3 ] = 1 ⋅ e − j 2 π 4 ⋅ 0 + 2 ⋅ e − j 2 π 4 ⋅ 3 + 3 ⋅ e − j 2 π 4 ⋅ 6 + 4 ⋅ e − j 2 π 4 ⋅ 9 X[3] = 1 \cdot e^{-j \frac{2\pi}{4} \cdot 0} + 2 \cdot e^{-j \frac{2\pi}{4} \cdot 3} + 3 \cdot e^{-j \frac{2\pi}{4} \cdot 6} + 4 \cdot e^{-j \frac{2\pi}{4} \cdot 9} X[3]=1ej42π0+2ej42π3+3ej42π6+4ej42π9
    计算复数指数部分:
    X [ 3 ] = 1 + 2 ( j ) + 3 ( − 1 ) + 4 ( − j ) = 1 − 3 − 2 j − 4 j = − 2 − 2 j X[3] = 1 + 2(j) + 3(-1) + 4(-j) = 1 - 3 - 2j - 4j = -2 - 2j X[3]=1+2(j)+3(1)+4(j)=132j4j=22j

所以,时间序列 x [ n ] = [ 1 , 2 , 3 , 4 ] x[n] = [1, 2, 3, 4] x[n]=[1,2,3,4]的 DFT 结果为 X [ k ] = [ 10 , − 2 + 2 j , − 2 , − 2 − 2 j ] X[k] = [10, -2+2j, -2, -2-2j] X[k]=[10,2+2j,2,22j]

总结

离散傅里叶变换(DFT)是将时间序列转换到频域的重要工具。通过 DFT,我们可以分析信号的频率成分。在实际应用中,快速傅里叶变换(FFT)提供了高效计算 DFT 的方法,被广泛用于信号处理、图像分析等领域。在 Autoformer 模型中,DFT 被用于查询和键向量的频域变换,帮助模型捕捉时间序列中的周期性模式。

  • 9
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 离散傅里叶变换DFT)是指将一个离散的信号序列转换为其频域表示的过程。它把一个有限长的离散序列映射到一个有限长的频域序列。 离散傅里叶变换是傅里叶变换在离散输入上的推广。它将一个长度为N的离散序列转换为一个长度为N的频域序列。在时域上,输入序列可以表示为离散时间的采样点集合。在频域上,它表示了输入信号的不同频率成分的幅度和相位。 离散傅里叶变换的计算过程包括两个步骤:首先,通过线性组合计算正弦和余弦函数的离散采样来表示信号;然后,再次对这些离散采样应用傅里叶变换公式以得到频域表示。 离散傅里叶变换广泛应用于信号处理和图像处理等领域。它可以用于频域滤波、快速傅里叶变换(FFT)、频谱分析等。通过DFT,我们能够将一个时域上的信号转换为其频域表示,从而能够更好地理解和处理信号的频率特性。 尽管离散傅里叶变换可以通过直接计算实现,但其计算复杂度较高,特别是对于较长的输入序列。快速傅里叶变换(FFT)是一种高效的算法,能够在O(NlogN)时间复杂度内计算离散傅里叶变换,其被广泛应用于实际应用中。 总之,离散傅里叶变换是将离散序列转换为其频域表示的过程,通过DFT我们可以了解信号的频率特性,并在信号处理中得到广泛应用。 ### 回答2: 离散傅里叶变换DFT)是将离散时间域信号转换成频域信号的一种数学变换方法。在信号处理和图像处理领域中广泛应用。 DFT的基本原理是将一个离散时间域信号分解为一系列复数的正弦和余弦函数分量,表示信号在不同频率上的振幅和相位信息。通过DFT,我们可以得到信号的频率特性,如频谱图、频率分量以及它们在时间上的实现方式。 DFT的计算是通过对输入信号的N个离散采样点进行离散傅里叶变换公式的运算得到的。公式可以描述为: X[k] = Σ(n=0 to N-1) x[n] * W^(-kn) 其中,X[k]表示输出频域信号的第k个频率分量,x[n]表示输入的时间域信号的第n个采样点,N表示信号的采样点数,W为复数旋转因子,定义为W = e^(-j2π/N)。 DFT计算的复杂度是O(N^2),这意味着当信号的采样点数增加时,计算所需的时间也会呈平方倍数增长。为了提高计算效率,可以使用快速傅里叶变换(FFT)算法,将计算复杂度降低到O(NlogN)的级别。 通过DFT,我们可以从时域的输入信号中得到其频域的频谱信息,进而可以进行频域滤波、频谱分析、频率特征提取等一系列信号处理操作。此外,DFT还广泛应用于音频处理、图像处理、通信系统等领域中。 ### 回答3: 离散傅里叶变换(Discrete Fourier Transform,DFT)是一种将离散序列(通常是时域上的信号)转换为频域上的表示的数学工具。它是傅里叶变换在离散信号上的推广。 DFT将一个长度为N的离散序列X={x_0, x_1, x_2, ..., x_{N−1}}转换为其频域表示X'={X_0, X_1, X_2, ..., X_{N−1}}。其中,X_k是X的第k个频谱系数,k=0,1,2,...,N−1。DFT的数学公式是: X_k = ∑_{n=0}^{N−1} x_n * exp(−2πikn/N),k=0,1,2,...,N−1。 DFT将一个信号分解为一系列正弦和余弦波的和,这些波的频率从0到N-1,每个波的振幅由X_k决定。相反地,逆DFT(IDFT)可以从频域表示恢复出原始的时域序列。 DFT的应用十分广泛。对于信号处理,DFT可以用于频域滤波、谱分析和频谱合成等。在通信系统中,DFT被广泛应用于正交频分复用(OFDM)技术,其中信号在频域上被划分为多个子载波进行传输,利用DFT实现时域与频域之间的转换。此外,DFT还被应用于图像处理、声音合成、压缩和音频编码等领域。 尽管DFT是一种强大的工具,它的计算复杂度较高,特别是对于大规模的输入序列。为了解决这个问题,人们发展出了快速傅里叶变换(Fast Fourier Transform,FFT)算法,它通过利用DFT的对称性和周期性,将计算复杂度从O(N^2)降低到O(NlogN)。FFT广泛应用于实际工程中,提高了计算效率。 总结来说,DFT是将离散序列转换为频域表示的数学工具,广泛应用于信号处理、通信系统、图像处理等领域。它的计算复杂度较高,但通过FFT等算法可以得到高效的计算方法,为实际应用提供了便利。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值