fft海面模拟(三)
接上一篇:杨超:fft海面模拟(二)
00:1500:13本篇说如何用IFFT计算海面IDFT模型。
将海面IDFT模型
写成标量形式:
接下来将 kx和kz展开,因为:
故:
为使下标从0开始,令m=m+N/2,n=n+N/2,则 。得:
令 ,并将 由内层求和号中提出,得:
上式可拆成:
由于L长度可随意选取,为向IDFT形式靠拢,取L=N,得:
...(a)
...(b)
接下来把x和z展开。因为:
又因为L=N,且为使下标变为从零开始,令u=u+N/2,v=v+N/2,得:
代入(a)、(b)得:
...(c)
...(d)
令:
则(c)、(d)变为:
...(1)
...(2)
至此,已化成非归一化的IDFT形式,可以套用IFFT了!
总结起来海面IFFT计算流程如下:
1,根据菲利普频谱公式得到各 。(参见:杨超:fft海面模拟(一))。
2,根据 得到各 。
3,根据 得到各 。(符号校正1)。
4,根据(2)式计算行IFFT,得到各 。
5,根据 得到各 。(符号校正2)。
6,根据(1)式计算列IFFT,得到各 。
7,根据 得到各 。(符号校正3)。
8,结束。
可见,计算量主要集中在1,4,6步,其余步骤均为简单转换。
以N=4为例:
假设1,2,3步已执行完,而后便是核心的计算行、列IFFT步骤(4~6步),图示如下: