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 区分开来的记号看起来非常抽象,不过这篇文章比较简短也可以接受吧 .
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/17730996.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ