27 views (last 30 days)

I have an image and I have a code which gives the 2d fft of each color of the image. Now I need to calculate the amplitude of each frequency but I don’t know how to do it. Help is appreciated. Here’s my code so far:

im=imread('image ')/255.;

im1=im;

im=im(:,:,1);

imagefft2=fft2(im);

a=im_fft2;

a(angle(imagefft2)<pi/2)=1;

figure();

im1(:,:,1)=abs(ifft2(a));

imshow(im,[]);

AdamG2013468
on 21 Aug 2019

For a 1-D fft, the process is as follows:

fs = %arbitrary sample frequency

N = length(signal);

fbins = [(0:1/N:1-1/N)*fs]; %frequency bin vector for plotting (x axis)

calval = N/2; %for two-sided ffts, calval should just be N for one-sided

[fftdat] = fft(signal);

fftmag = abs(fftdat)/calval;

%to visualize that expected magnitude is correct

figure

hold on

plot(fbins, fftmag)

See if you have any luck with a similar approach for your 2-D fft.

AdamG2013468
on 21 Aug 2019

One way,

for i = 1:length(fftmag)

if fftmag(i) < 1/8

fftmag(i) = 0

end

end

Sign in to comment.

Sign in to answer this question.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.