算法我就不贴了。算法就是算法导论的内容。
我直接写推导过程。
假设变化率为f(n+1)-f(n)
首先计算二进制数,这里我假设为3位二进制。
例如:f(5)-f(4),
5和4的二进制为101,100。所以逆序数为101,001
101对应的频率为5, 001对应的频率为1。书上的代码是fft变换,这里是反变换,所以1是顺时针转动。
这里高频的只有5,所以先计算5的转动过程。
我先介绍一下Fk转动过程,首先,最高位为1的Fk的都这样转动,第一次转动为,第二次转动为
,第k次转动为
,总共会转动
次。至于转动的方向是根据正变换还是反变换,因为这里是反变换,所以1是顺时针转动,0是不转动。如果最高位不为1,就不转动,次高位为1,开始转动
,继续按照上面的规律转动,每次转动为当前层级2^(N-n)的
(从第零层开始),n为当前层级。
转动过程在生成的fn中起什么作用呢?我只能说是做加减组合之后就是生成fn的分量了,如何组合呢?关键就是符号的确定了。
符号的确定方式是这样的:
以ai在yj中的符号确定为例,
首先是a4在y5中的符号
100与101=100,经历了负正正,所以为负。
a6在y4中的符号
110与001=000,所以为正。
a3在y4中的符号
011与001=001,为负。
ai的下标的二进制数和yj的下标的二进制数的逆序数相与,出现偶数个1为正,奇数个1为负。
这样我就获得了傅里叶反变换的计算公式了。
总结如下:
1..首先是计算输入的ai在复平面的转动角度,即是
。假设N恰好是2次方幂,设长度为m=
。假设下标i的二进制数为x1x2....xm。

本文详细描述了算法中计算像素变化率的过程,涉及二进制表示、傅里叶变换的反变换、符号确定规则以及频率与变化率的关系。作者通过实例展示了高频和低频如何影响变化率,并强调了在特定位置n,不同频率对变化率的影响差异。
最低0.47元/天 解锁文章
3672





