How the 2D FFT works

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 พ.ย. 2017
  • This is part of an online course on foundations and applications of the Fourier transform. The course includes 4+ hours of video lectures, pdf readers, exercises, and solutions.
    Each of the video lectures comes with MATLAB code, Python code, and sample datasets for applications. With 3000+ lines of code, this course is also a great way to improve your programming skills.
    Code for this video is available here: mikexcohen.com/lecturelets/fou...
    More info here: www.udemy.com/fourier-transfo...
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 44

  • @godsart3769
    @godsart3769 3 ปีที่แล้ว +4

    Great explanation - exactly what I was looking for to fill in some gaps in my knowledge. You did some of the experiments I was curious about. Thanks.

  • @fdmeneses
    @fdmeneses 3 ปีที่แล้ว +10

    Thank you Mike!! After going through so many videos, I can now finally understand how the two axis interplay. Well done!

  • @johnlovesmath
    @johnlovesmath 3 หลายเดือนก่อน

    Dr. Mike, your linear algebra book is so good. The sections on SVD and intro PCA are explained so well. This video just answered my question too, thanks for all you do.

    • @mikexcohen1
      @mikexcohen1  3 หลายเดือนก่อน

      Awesome, thank you! 🥰

  • @BaillehachePascal
    @BaillehachePascal ปีที่แล้ว

    I spent hours looking at other videos or web pages to try to understand why my implementation of the 2D FFT didn't work, and finally that's your video which clarified everything ! Thank you so much !!!

  • @INCYTER
    @INCYTER ปีที่แล้ว

    Thanks for this - Much appreciated. Well done, and well explained!

    • @mikexcohen1
      @mikexcohen1  ปีที่แล้ว +1

      Glad it was helpful!

  • @berkeberkeme4715
    @berkeberkeme4715 4 ปีที่แล้ว +2

    Could you please tell how to obtain the frequency of a cartesian point on fouriered image in matlab

  • @scott1pb1wow1epic
    @scott1pb1wow1epic ปีที่แล้ว

    This is amazing, great explanation, was able to give some intuition about something unintuitive (to me)

  • @tsehayenegash8394
    @tsehayenegash8394 6 หลายเดือนก่อน

    Thank you to upload this video. I have a question. how can I evaluate Phase and Amplitude at a given temperature data?

  • @saimadhavp
    @saimadhavp 5 ปีที่แล้ว +1

    Mike , Your videos generally hits the bulls eye. Focusing on extremely critical parts and its nuances of overall concepts, which generally is missed by others. I am looking for little more info on how to elicit out Frequencies and amplitudes from the resultant matrix output. Whether it is DFT ot FFT. Can you provide further pointers.

    • @mikexcohen1
      @mikexcohen1  5 ปีที่แล้ว

      Thanks, Saimadhav. Getting amplitude is fairly straight forward: just take the magnitude of the Fourier coefficients (MATLAB function abs() ). Slightly trickier is knowing which frequencies you want to extract. The easiest way is to create a Gaussian to produce a low- or high-pass filter (depending on whether you set the Gaussian to be 1 or the non-Gaussian parts to be 1). A narrowband spatial filter would be a ring in the 2D Fourier space.
      Mike

  • @ciqgmuokefzzyslew2580
    @ciqgmuokefzzyslew2580 2 ปีที่แล้ว

    Excellent video

  • @hasansheikhfaridul1983
    @hasansheikhfaridul1983 5 ปีที่แล้ว

    Thanks Mike

  • @QuyetNguyen-sg9dq
    @QuyetNguyen-sg9dq 3 ปีที่แล้ว

    how to do match between input image and template image? if I use FFT

  • @aayush740
    @aayush740 4 ปีที่แล้ว

    I have a 512 x 81 matrix in matlab. The matrix represents a image. There is clutter in the image. How do I generate image from that matrix and remove the clutter??

  • @JiffyJokes
    @JiffyJokes 2 ปีที่แล้ว

    I applied the 1D fft in matlab by using fft(X, [ ], 1) for an FFT of the 7x7 matrix to get the values like at 1:24 but I get different results

  • @fr4864
    @fr4864 หลายเดือนก่อน

    Bro you’re the goat! Great explanation 🫡

    • @mikexcohen1
      @mikexcohen1  หลายเดือนก่อน

      Thank you, kind internet stranger :)

  • @mszawerd
    @mszawerd ปีที่แล้ว

    But why when calculating 2D transform we are first calculating transform for columns, and then transform for rows of the previous result? Why this works? Why we are not calculating transform for columns, and for rows of the input image and then adding it together like in calculating 2D derivative?

  • @Victor-lc3pw
    @Victor-lc3pw 4 ปีที่แล้ว +1

    Спасибо!

  • @itWouldBeWise
    @itWouldBeWise 4 ปีที่แล้ว

    When you say at 2:07 that for images the DC frequencies are shifted to the center, is that just for displaying the frequency spectrum? Or is it necessary for using it e.g. to apply a gaussian filter convolution via the convolution theorem?

    • @mikexcohen1
      @mikexcohen1  4 ปีที่แล้ว

      Both: Shifting the spectrum facilitates interpretation, and it makes it easier to construct a frequency-domain Gaussian for filtering. But the shifting is not necessary in either case.

  • @georgeevans1341
    @georgeevans1341 6 ปีที่แล้ว +1

    How can I get the matlab code used in the video? What tool box is required ?

    • @mikexcohen1
      @mikexcohen1  6 ปีที่แล้ว

      My apologies for the missing code. I added the link in the description. No toolboxes are required, and it will work in MATLAB and in Octave.

  • @prasadradhika
    @prasadradhika 5 ปีที่แล้ว

    Nice video. Could you please tell how to obtain the frequency in 2D Fourier transform spectrum in Python?

    • @mikexcohen1
      @mikexcohen1  5 ปีที่แล้ว

      Hi Radhika. The concept is the same. Some of the syntax is a bit different, but hopefully easy enough to translate. The 2D FFT in Python would be np.fft.fft2(image)

  • @user-uo7nk1jo5g
    @user-uo7nk1jo5g 4 ปีที่แล้ว

    nice works,我喜欢

  • @gaiuspliniussecundus1455
    @gaiuspliniussecundus1455 ปีที่แล้ว

    So, when you transform to frequency space, you loose the ability to, e.g., edit a single pixel in the spatial domain. Because you decorrelated the pixels into freq and phase components?

    • @mikexcohen1
      @mikexcohen1  ปีที่แล้ว +1

      yes, correct. The frequency domain encodes the spatial frequencies that are distributed over the pixels, not the pixels themselves.

  • @lillinda2428
    @lillinda2428 4 ปีที่แล้ว

    thank you so much : )

  • @subhashiskar4403
    @subhashiskar4403 ปีที่แล้ว

    I want he code for python. If not then MATLAB is ok. Actually I want to build something like this in my final year project.

  • @muhammadfikriarifardi7251
    @muhammadfikriarifardi7251 5 ปีที่แล้ว +2

    I am sorry , its just me or to hear you I need a bigger speaker

  • @husseinalsajer4381
    @husseinalsajer4381 3 ปีที่แล้ว

    hello , lease can you tell me how can I do space domain in python to show image ?please

    • @mikexcohen1
      @mikexcohen1  3 ปีที่แล้ว +1

      The syntax in Python is a bit different from that in MATLAB, but the principle is the same. You can use scipy.fft.fft2 for the 2D Fourier transform, and then use plt.imshow to visualize the results.

  • @binhu1996
    @binhu1996 ปีที่แล้ว

  • @Archturian8880
    @Archturian8880 ปีที่แล้ว

    Sorry I think in the middle should be high frequency, not low frequency.

    • @brandoneickert
      @brandoneickert 6 หลายเดือนก่อน

      The middle corresponds to the DC component, or zero Hz (low frequency). In a 1D FFT, think of how the middle (the y axis) is low frequency as well - same concept