IBM ESSL:DFT - 实数到复数和复数到实数 - 最终数组大于初始数组
IBM ESSL: DFT - Real to complex & Complex to real - Final array bigger than initial one
我有一个真正的二维双精度数组。我想对其执行 FFT,对结果进行一些操作,然后执行逆 FFT。我在 Blue Gene Q 上使用 IBM ESSL 库。
函数 DRCFT2 正在进行实数到复数的转换 (http://www-01.ibm.com/support/knowledgecenter/SSFHY8_5.3.0/com.ibm.cluster.essl.v5r3.essl100.doc/am5gr_hsrcft2.htm?lang=en). The function DCRFT2 is doing the complex to real transform (http://www-01.ibm.com/support/knowledgecenter/SSFHY8_5.3.0/com.ibm.cluster.essl.v5r3.essl100.doc/am5gr_hscrft2.htm?lang=en)。
起始实际数组大小为 (nx,nz)。在 DRCFT2 之后,复数数组大小为 (nx/2+1,nz)。 DCRFT2之后,最终真正的数组大小为(nx+2,nz).
开始和最终的真实数组大小不同,我该如何比较它们?
ps:如果我把第一个实数数组放在一个复数数组中并执行复数到复数的DFT(DCFT2),那么最终结果和第一个的大小相同,我可以比较它们.无论如何要对 DRCFT2 和 DCRFT2 做一些类似的事情?
根据 DCRFT2
documentation you link to:
x
is the array X
, containing n2
columns of data to be transformed. Due to complex conjugate symmetry, the input consists of only the first ((n1)/2)+1
rows of the array
[...]
On Return
y
[...]
is the array Y, containing n1
rows and n2
columns of results of the real discrete Fourier transform of X
.
你的情况是 n1=nx
和 n2=nz
。换句话说,如果您将一个大小为 (nx/2+1,nz)
的复杂数组作为 DCRFT2
的输入参数,您应该得到一个大小为 (nx,nz)
的真实数组输出,这样您就可以很容易地比较您的开始和最终的真实数组。
我有一个真正的二维双精度数组。我想对其执行 FFT,对结果进行一些操作,然后执行逆 FFT。我在 Blue Gene Q 上使用 IBM ESSL 库。
函数 DRCFT2 正在进行实数到复数的转换 (http://www-01.ibm.com/support/knowledgecenter/SSFHY8_5.3.0/com.ibm.cluster.essl.v5r3.essl100.doc/am5gr_hsrcft2.htm?lang=en). The function DCRFT2 is doing the complex to real transform (http://www-01.ibm.com/support/knowledgecenter/SSFHY8_5.3.0/com.ibm.cluster.essl.v5r3.essl100.doc/am5gr_hscrft2.htm?lang=en)。
起始实际数组大小为 (nx,nz)。在 DRCFT2 之后,复数数组大小为 (nx/2+1,nz)。 DCRFT2之后,最终真正的数组大小为(nx+2,nz).
开始和最终的真实数组大小不同,我该如何比较它们?
ps:如果我把第一个实数数组放在一个复数数组中并执行复数到复数的DFT(DCFT2),那么最终结果和第一个的大小相同,我可以比较它们.无论如何要对 DRCFT2 和 DCRFT2 做一些类似的事情?
根据 DCRFT2
documentation you link to:
x
is the arrayX
, containingn2
columns of data to be transformed. Due to complex conjugate symmetry, the input consists of only the first((n1)/2)+1
rows of the array
[...]
On Return
y
[...]
is the array Y, containingn1
rows andn2
columns of results of the real discrete Fourier transform ofX
.
你的情况是 n1=nx
和 n2=nz
。换句话说,如果您将一个大小为 (nx/2+1,nz)
的复杂数组作为 DCRFT2
的输入参数,您应该得到一个大小为 (nx,nz)
的真实数组输出,这样您就可以很容易地比较您的开始和最终的真实数组。