http://www.mathworks.com/help/techdoc/ref/fftshift.htmlEffcient辦法做到在Matlab FFT移(不使用fftshift功能)
如果您檢查鏈接 - 這就是我要在第一張照片的事 - 矩陣交換象限。
但是,我似乎沒有想到一個好的方法來做到這一點,沒有幾個循環拉出相關的子矩陣。
我需要它與MxN矩陣一起工作,其中M和N可以是偶數和奇數的任意組合。
感謝
http://www.mathworks.com/help/techdoc/ref/fftshift.htmlEffcient辦法做到在Matlab FFT移(不使用fftshift功能)
如果您檢查鏈接 - 這就是我要在第一張照片的事 - 矩陣交換象限。
但是,我似乎沒有想到一個好的方法來做到這一點,沒有幾個循環拉出相關的子矩陣。
我需要它與MxN矩陣一起工作,其中M和N可以是偶數和奇數的任意組合。
感謝
如果您在MATLAB的命令行輸入type fftshift.m
,您將看到MATLAB實現函數的源代碼(如果您想在編輯器中使用語法高亮顯示,請使用edit fftshift.m
)。我沒有在這裏發佈代碼,因爲它是受版權保護的。但是,您可以在您的機器上嘗試它,然後在C中重新實現它。如果您遇到任何問題,則可以自行決定授權條款等。
下應該工作
sz = ceil(size(A)/2)
A = A([sz(1)+1:end, 1:sz(1)], [sz(2)+1:end, 1:sz(2)])
這僅適用於二維矩陣,但是可以很容易地推廣到釹情況。
爲什麼你不能使用'fftshift'?這是功課嗎? – abcd 2011-04-20 19:47:05
你嘗試過'打開fftshift'嗎? – Phonon 2011-04-20 20:26:00
我不想使用fftshift,因爲我正在將一些matlab移植到C – Derek 2011-04-20 20:53:53