clear; nx = 200; ny = 600; for i = 1:nx % Define the big wave with periodic noise. for j = 1:ny u(i,j) = 0+100*(1+sin(2*pi*((j-1)/ny)*5)) + ... 15.*(1+sin(2*pi*((i-1)/nx)*80))+... 15.*(1+sin(2*pi*((j-1)/ny)*80)); end end sine = uint8(u); imwrite(sine, 'sine.jpg'); fftu = fft2(u,2*nx-1,2*ny-1); % Padded fft. fftu = fftshift(fftu); figure(1); mesh(u'); figure(2) mesh(log(1+(abs(fftu)))); filter = ones(2*nx-1,2*ny-1); d0 = 150; % Use ideal low pass filter. for i = 1:2*nx-1 for j =1:2*ny-1 dist = ((i-(nx+1))^2 + (j-(ny+1))^2)^.5; if dist > d0 filter(i,j) = 0; end end end figure(3) mesh(filter); fil_sine = filter.*fftu; figure(4) mesh(log(1+abs(fil_sine))); fil_sine = ifftshift(fil_sine); fil_sine = ifft2(fil_sine); fil_sine = real(fil_sine(1:nx,1:ny)); fil_sine = uint8(fil_sine); imwrite(fil_sine, 'sine_fil.jpg');