1
我想用偶數偶數對稱對複數輸入數組進行1D IFFT變換,其中z(1)
和z(N/2+1)
是真實的。該陣列的總大小爲N=256
。如果我準備IFFT像下面這樣:使用MKL從複數到實數IFFT
stat = DftiCreateDescriptor(desc_handle, DFTI_DOUBLE, DFTI_REAL, 1,256)
stat = DftiSetValue(desc_handle, DFTI_CONJUGATE_EVEN_STORAGE, DFTI_COMPLEX_COMPLEX)
stat = DftiSetValue(desc_handle, DFTI_PLACEMENT, DFTI_NOT_INPLACE)
stat = DftiComputeBackward(desc_handle, X_in, M_out)
...其中X_in
具有上面甚至描述的共軛對稱。這意味着,M_out
預計是在這個意義上,如果一個數學實陣列:
real(dp) :: M_out(N+2)
然後與預期實際Fortran數組具有等於零的所有其他元素。
complex(dp) :: M_out(N/2)
則期望複雜FORTRAN陣列將具有N/2
大小與虛部爲零。
但是,我得到的結果是不真實的做完上述。這就像例程不理解輸入複數fortran陣列不具有共軛偶對稱性。這是爲什麼?是否需要添加其他首選項參數以確保正確讀取輸入的結構?
很好的問題,達卡洛!雖然我不知道答案,但我對格式進行了一些編輯,以幫助保持其可讀性。如果您點擊「編輯」,您將能夠看到我所做的更改,並且可以在您提出更多問題或提供答案時自行完成。 –
非常感謝您的更改。對不起,我是新的論壇,所以我不知道如何做到這一切。我會學習它們,這樣我可以使我的問題更具可讀性。再次感謝!! – dakarot
結果如何呢?對於哪個輸入?嘗試製作一個簡單的測試程序,我們可以嘗試(並使用較小的矢量)。 –