2011-04-20 70 views
2

http://www.mathworks.com/help/techdoc/ref/fftshift.htmlEffcient辦法做到在Matlab FFT移(不使用fftshift功能)

如果您檢查鏈接 - 這就是我要在第一張照片的事 - 矩陣交換象限。

但是,我似乎沒有想到一個好的方法來做到這一點,沒有幾個循環拉出相關的子矩陣。

我需要它與MxN矩陣一起工作,其中M和N可以是偶數和奇數的任意組合。

感謝

+2

爲什麼你不能使用'fftshift'?這是功課嗎? – abcd 2011-04-20 19:47:05

+1

你嘗試過'打開fftshift'嗎? – Phonon 2011-04-20 20:26:00

+0

我不想使用fftshift,因爲我正在將一些matlab移植到C – Derek 2011-04-20 20:53:53

回答

1

如果您在MATLAB的命令行輸入type fftshift.m,您將看到MATLAB實現函數的源代碼(如果您想在編輯器中使用語法高亮顯示,請使用edit fftshift.m)。我沒有在這裏發佈代碼,因爲它是受版權保護的。但是,您可以在您的機器上嘗試它,然後在C中重新實現它。如果您遇到任何問題,則可以自行決定授權條款等。

1

下應該工作

sz = ceil(size(A)/2) 
A = A([sz(1)+1:end, 1:sz(1)], [sz(2)+1:end, 1:sz(2)]) 

這僅適用於二維矩陣,但是可以很容易地推廣到釹情況。