0
我想計算卷積運算符A和伴隨運算符AT,我需要計算AU = H * U和AT(AU),其中H是內核並且尺寸非常小比圖像U.這是我的代碼,是否有任何錯誤?我不知道如何擴大與U相同的尺寸。謝謝!matlab卷積算子A和伴隨運算符
[M,N] = size(U);
Mask = zeros(M,N);
[H1,L] = size(H);
%Mask([end+1-floor(H1/2):end,1:ceil(H1/2)],[end+1-floor(L/2):end,1:ceil(L/2)]) = H;
Mask(1:size(h,1),1:size(h,2)) = H; % here I am not sure!!!!
FMask=fft2(Mask);
AU =iff2(FMask.*(fft2(U))) %%% AU= H*U
ATAU= iff2((abs(FMask).^2).*(fft2(U))) %AT(AU)
任何理由不使用'conv2'? – Dan
@Dan空間域中的卷積比使用傅里葉卷積定理計算量大得多。 – Raab70
@ Raab70,但這個問題沒有提到計算限制,因此在繼續這種方法之前,值得確保OP(a)知道'conv2'和(b)有充分的理由不使用它。 – Dan