您正在查看: 2020年9月

Radix4 Radix8等更高级的FFT的推导以及Unity中的实现和性能分析

一、Radix2的傅里叶变换的缺陷

首先,我们解释一下什么是Radix2,Radix4,Radix8等的傅里叶变换。在上一篇中,我们得出我们可以将N的傅里叶变换的输入拆为奇数和偶数,然后奇数和偶数分别进行傅里叶变换,再通过蝶形变换组合为N的傅里叶变换的结果。简单的公式形式化描述如下

$$
DFT(N) = DFT_1(\frac N 2) \oplus DFT_2(\frac N 2), \oplus表示蝶形变换
$$

我们可以知道,一次蝶形变换中所做的计算非常少,每一轮GPU派发很多任务,然后每个任务仅执行一次2个数据的蝶形变换,然后就结束写回Buffer了。这样我们的瓶颈往往会卡在DrawCall上。

Continue Reading...

记一次PC的辅助开发记录

【先声明,本人没有对该游戏服务器做任何数据篡改,也没有改动客户数据,仅仅是监控数据并模拟鼠标操作。本外挂仅当时自己用过一两天。】
最近在整理自己以前开的各种坑的代码,发现自己以前脑子发热做的一些稀奇古怪的东西。时间太久,感觉都忘记的差不多了。因此开个博客坑,写一下一些项目的开发心得。
大概是在研究生一年级的时候,2014年的时候,那时候的暑假,《幻想神域》端游的国服上线了,是搜狐畅游代理的,我当时是一个忠实的二次元+游戏玩家,所以义不容辞的去玩了一下。那时候,游戏里有个钓鱼玩法,可以钓到不少好东西,但是这个玩法实在是太枯燥啦。因此,当时心生邪念,我得做个工具辅助我通宵挂钓鱼。然而写完之后,我对这个游戏已经失去了兴趣,然后就被遗忘了。。

Continue Reading...

Radix2 FFT推导以及Unity中实现

一、连续傅里叶变换 和 离散傅里叶变换

假设$f$是复平面上的勒贝格可积的函数,则定义$f$的连续傅里叶变换$F$是
对于任意实数$w$,

$$
F(\omega) =
\int_{-\infty} ^{\infty} f(t) e^ { -i \omega t }dt
\tag{1}

$$

在这里,我们解释$\omega$为角频率,$F(\omega)$是复数,并且是信号在该频率成分处的幅度和相位。

Continue Reading...