傅里叶变换 a+bi

python 程序执行傅里叶分解的结果是 a+bi,复指数形式,三角函数形式

举个例子哈

[32,96,7],傅里叶变换分解出的形状是[32,49,7]

  • 每一条时间序列分解成了

  • 复数形式 $[a₀+0i, a₁+b₁i, a₂+b₂i, ..., a₄₈+0i]$

    • 第一个元素a₀是直流分量(实数)

    • 最后一个元素a₄₈是奈奎斯特频率(实数)

    • 中间元素是共轭对称的复数

  • 三角函数形式 $[a_0,a_1\cos{\frac{2\pi}{96}} ]$

$f(t) = a₀/2 + Σ[aₙcos(2πnt/96) + bₙsin(2πnt/96)]$

$n=1,2,3,4,...,48$ 分别代入

$$ f(t) = a₀/2 + \\ a₁cos(2πt/96) + b₁sin(2πt/96) + \\ a₂cos(4πt/96) + b₂sin(4πt/96) + ... +\\ a₄₈cos(96πt/96) $$
  • 其中n从1到48。
  • 这里a₀/2表示直流分量
  • 最后一项没有正弦部分,因为sin(nπ)=0,当n为整数时

三角函数形式和复数形式的一一对应

对于一个长度为96的实时间序列,其FFT结果为长度49的复数序列,两种表示形式的一一对应关系如下:

  • 直流分量(DC, n=0)
    • 复数形式: $a₀+0i$
    • 三角函数形式: $a₀$ (不是$2a₀$)
    • 对于直流分量,通常不需要乘以系数2,因为它不存在对称性的问题。在重构信号时,直流分量直接加上即可。
  • 第1个频率分量(n=1)
    • 复数形式: $a₁+b₁i$
    • 三角函数形式: $2a₁cos(2πt/96) + 2b₁sin(2πt/96)$
  • 第2个频率分量(n=2)
  • 复数形式: $a₂+b₂i$
  • 三角函数形式: $2a₂cos(4πt/96) + 2 b₂sin(4πt/96)$
  • 第3个频率分量(n=3)
    • 复数形式: $a₃+b₃i$
    • 三角函数形式: $2a₃cos(6πt/96) + 2b₃sin(6πt/96)$
  • 第k个频率分量(n=k)
    • 复数形式: $a_k+b_ki$
    • 三角函数形式: $2a_k\cos(2\pi kt/96) + 2b_k\sin(2\pi kt/96)$
    • 系数2来自于实信号傅里叶变换的对称性,因为我们只保留了正频率部分
  • 奈奎斯特频率(n=48)
    • 复数形式: $a_{48}+0i$
    • 三角函数形式: $a_{48}\cos(\pi t)$ (不是$2a_{48}\cos(\pi t)$)
    • 对于奈奎斯特频率,也不需要乘以系数2,因为它仅出现一次,没有对称分量。

欧拉公式

$e^{i\theta}= \cos \theta + i \sin \theta$

  • $a+bi$
  • $Acos\theta + Bcon\theta$

证明: 复数形式 $a+bi$ 与三角函数形式 $A\cos\theta + B\sin\theta$ 的系数

对于复数形式 $a+bi$ 与三角函数形式 $A\cos\theta + B\sin\theta$ 的系数对应关系是:

  • $A = 2a$
  • $B = -2b$

或反向转换:

  • $a = A/2$
  • $b = -B/2$

在傅里叶变换中,一个频率分量可以表示为复指数形式: $c \cdot e^{i\omega t}$,其中 $c = a+bi$

步骤1:展开复指数

$(a+bi)(\cos(\omega t) + i\sin(\omega t))$ $= a\cos(\omega t) - b\sin(\omega t) + i(a\sin(\omega t) + b\cos(\omega t))$

步骤2:考虑共轭对称性

对于实信号,每个频率 $\omega$ 都有其共轭对应的频率 $-\omega$:

  • 正频率贡献:$(a+bi)e^{i\omega t} = (a+bi)(\cos(\omega t) + i\sin(\omega t))$
  • $= a\cos(\omega t) - b\sin(\omega t) + i(a\sin(\omega t) + b\cos(\omega t))$
  • 负频率贡献:$(a-bi)e^{-i\omega t} = (a-bi)(\cos(\omega t) - i\sin(\omega t))$
  • $= a\cos(\omega t) - b\sin(\omega t) - i(a\sin(\omega t) + b\cos(\omega t))$

步骤3:相加两个贡献

$(a+bi)e^{i\omega t} + (a-bi)e^{-i\omega t} = 2a\cos(\omega t) - 2b\sin(\omega t)$

结论

因此,一个频率分量的复数表示 $a+bi$ 对应的三角函数表示为: $2a\cos(\omega t) - 2b\sin(\omega t)$

也就是说 $A = 2a$ 且 $B = -2b$,证毕。

注意:对于直流分量($\omega=0$)和奈奎斯特频率,因为它们没有共轭对应的频率分量,所以系数不需要乘以2。

傅里叶变换的三角函数形式与指数函数形式

1. 三角函数形式

傅里叶级数的三角函数形式表示为:

$$f(t) = \frac{a_0}{2} + \sum_{n=1}^{N/2} [a_n \cos(2\pi nt/T) + b_n \sin(2\pi nt/T)]$$

其中:

  • $a_0/2$ 是直流分量(序列平均值)
  • $a_n$ 是余弦系数
  • $b_n$ 是正弦系数
  • $T$ 是周期长度

2. 指数函数形式

指数形式利用欧拉公式将傅里叶级数表示为:

$$f(t) = \sum_{n=-N/2}^{N/2-1} c_n e^{i2\pi nt/T}$$

其中:

  • $c_n$ 是复数系数
  • $e^{i2\pi nt/T}$ 是复指数函数

两种形式的转换关系

  1. 从复数到三角函数:X[n] 表示计算机中存储的复数形式

    • $a_0 = \text{Re}(X[0])$
    • $a_n = 2\text{Re}(X[n])$ 对于 $1 \leq n < N/2$
    • $b_n = -2\text{Im}(X[n])$ 对于 $1 \leq n < N/2$
    • $a_{N/2} = \text{Re}(X[N/2])$ (奈奎斯特频率)
  2. 从三角函数到复数

    • $X[0] = a_0$ (直流分量)
    • $X[n] = \frac{a_n - ib_n}{2}$ 对于 $1 \leq n < N/2$
    • $X[N/2] = a_{N/2}$ (奈奎斯特频率)

思考 一个频率的表示

96 时间步发现了 24 的周期,

  • a+bi 的形式:
  • 三角函数形式:
  • 复指数形式:

周期为24的频率分量在三种形式下的表示

对于长度为96的时间序列中发现的周期为24的模式,这意味着该频率分量在整个序列中完成了4个完整周期(96/24=4)。以下是这个频率分量在三种不同表示形式下的数学描述:

复数形式(a+bi)

1
X[4] = a₄ + b₄i

这是通过torch.fft.rfft(x)计算得到的第4个频率分量,包含实部a₄和虚部b₄。

三角函数形式

1
2a₄·cos(2π·4t/96) + 2b₄·sin(2π·4t/96)

化简为:

1
2a₄·cos(πt/12) + 2b₄·sin(πt/12)

这里的系数2来自于傅里叶变换的对称性,保证了能量守恒。

复指数形式

1
c₄·e^(i2π·4t/96) + c₍₋₄₎·e^(-i2π·4t/96)

化简为:

1
c₄·e^(iπt/12) + c₍₋₄₎·e^(-iπt/12)

其中:

  • c₄ = (a₄-ib₄)/2
  • c₍₋₄₎ = (a₄+ib₄)/2
  • c₄与c₍₋₄₎是共轭复数

计算机傅里叶变换中a₄+b₄i的计算方法

在TimeMixer中,复数系数a₄+b₄i是通过离散傅里叶变换(DFT)计算得到的,具体来自DFT_series_decomp类的实现。

计算过程

  1. 首先,使用PyTorch的FFT函数计算时间序列的频谱:

    1
    
    xf = torch.fft.rfft(x)
    
  2. 对于具体的复数系数a₄+b₄i(第4个频率分量):

    1
    2
    
    a₄ = xf[4].real  # 复数的实部
    b₄ = xf[4].imag  # 复数的虚部
    
  3. 在物理意义上,这个复数表示:

    • a₄是复数结果的实部,对应于三角函数形式中余弦系数的一半
    • b₄是复数结果的虚部,对应于三角函数形式中正弦系数的一半且可能有符号变化

对于长度为N的序列x,傅里叶系数计算公式为:

$$X_k = \sum_{n=0}^{N-1} x_n \cdot e^{-i2\pi kn/N}$$

对于周期为24的模式(在96点序列中),其主要频率分量将出现在k=4处,因为96/24=4。

$$ a+bi \\ = \sqrt{a^2 + b^2} e^{i {arctan\frac{b}{a}}} \\ = \sqrt{a^2 + b^2}(\cos {(\arctan\frac{b}{a})}+ i \sin {(\arctan\frac{b}{a})} )\\ \cos {(\arctan\frac{b}{a})} = \frac{a}{\sqrt{a^2 + b^2}}\\ \sin {(\arctan\frac{b}{a})} = \frac{b}{\sqrt{a^2 + b^2}} $$

DFT由原始时间序列计算 a+bi 的方式

emm…还是懵懵ε=ε=ε=(#>д<)ノ

👾 本站运行时间:
发表了59篇文章 · 总计11万6千字
使用 Hugo 构建
主题 StackJimmy 设计