2023.9.27 闲话

推歌:furry! furry! furry! - SoyTony feat. APJifengc .


SoyTony:

让我们回顾一下 DFT 是什么:

\[\begin{aligned} &\mathcal {F_D} = \begin{bmatrix} (\omega_n ^ 0) ^ 0 & (\omega_n ^ 0) ^ 1 & \cdots & (\omega_n ^ 0) ^ {n - 1} \\ (\omega_n ^ {-1}) ^ 0 & (\omega_n ^ {-1}) ^ 1 & \cdots & (\omega_n ^ {-1}) ^ {n - 1} \\ \vdots & \vdots & \ddots & \vdots \\ (\omega_n ^ {-(n - 1)}) ^ 0 & (\omega_n ^ {-(n - 1)}) ^ 1 & \cdots & (\omega_n ^ {-(n - 1)}) ^ {n - 1} \\ \end{bmatrix} \\ &\mathcal {F_F} = \begin{bmatrix} (\omega_n ^ 0) ^ 0 & (\omega_n ^ 0) ^ 1 & \cdots & (\omega_n ^ 0) ^ {n - 1} \\ (\omega_n ^ 1) ^ 0 & (\omega_n ^ 1) ^ 1 & \cdots & (\omega_n ^ 1) ^ {n - 1} \\ \vdots & \vdots & \ddots & \vdots \\ (\omega_n ^ {n - 1}) ^ 0 & (\omega_n ^ {n - 1}) ^ 1 & \cdots & (\omega_n ^ {n - 1}) ^ {n - 1} \\ \end{bmatrix} \end{aligned} \]

对于 DFT 来说,它相当于对系数矩阵左乘了一个 \(\mathcal{F_D}\) . 对于 FFT 来说,它相当于对系数矩阵左乘了一个 \(\mathcal{F_F}\) .

差卷积

给两个序列 \(f,g\),求:

\[h_k=\sum_{i=k}^nf_i\cdot g_{i-k} \]

考虑相当于把下面两个多项式相乘:

\[A(z)=\sum_{i=0}^nf_iz^i\qquad B(z)=\sum_{i=0}^ng_iz^{-i} \]

则要计算的就是:

\[A\cdot B=\operatorname{IFFT}(\operatorname{FFT}(A)\cdot\operatorname{FFT}(B))=\operatorname{IFFT}(\operatorname{FFT}(f)\cdot\operatorname{DFT}(g))) \]

两次 IFFT,一次 FFT .

这里把 FFT 和 DFT 区分开来的记号看起来非常抽象,不过这篇文章比较简短也可以接受吧 .

posted @ 2023-09-27 06:22  Jijidawang  阅读(120)  评论(7编辑  收藏  举报
😅​