Discrete Fourier Transform Explained Easily

Поделиться
HTML-код
  • Опубликовано: 30 июл 2024
  • We live in a world that consumes an incredible amount of digital (audio) signals. To make sense of these signals, we can’t use the (Continuous) Fourier Transform. We should adapt this powerful tool to the digital domain. Hence, the Digital Fourier Transform (DFT). This video builds on top of the topic discussed in earlier videos in the series and explores the secrets of DFT.
    Slides:
    github.com/musikalkemist/Audi...
    Join The Sound Of AI Slack community:
    valeriovelardo.com/the-sound-...
    Interested in hiring me as a consultant/freelancer?
    valeriovelardo.com/
    Follow Valerio on Facebook:
    / thesoundofai
    Connect with Valerio on Linkedin:
    / valeriovelardo
    Follow Valerio on Twitter:
    / musikalkemist
  • НаукаНаука

Комментарии • 31

  • @AbdullahOlcay-wh4or
    @AbdullahOlcay-wh4or Год назад +11

    I've never commented on a RUclips channel so far, but honestly, you have the most underrated channel with your presentation hardworked and prepared for the students. Please, Valerio, keep it up for those who are eager to learn acoustics!!

  • @laimonade
    @laimonade 3 года назад +8

    I've been watching your videos for a while and my gosh they are so interesting and useful. I'm about to start and master in computing for sound and audio and it's super useful to have these maths reminder. Thank you and keep up the great work Valerio !

  • @AbhishekMishra-fr7po
    @AbhishekMishra-fr7po 3 года назад +2

    Awesome explanation of DFT, FFT!

  • @harutyunyansaten
    @harutyunyansaten 3 года назад +6

    How do we get F(k) = k /NT ? By nyquist-shannon theorem maximum frequncy in the digital signal is sample_rate / 2. With your formula almost 1/T = sample_rate.

    • @harutyunyansaten
      @harutyunyansaten 3 года назад +1

      you please provide source for this statement?

  • @fardalakter4395
    @fardalakter4395 10 месяцев назад +1

    great video mas valerio

  • @dbajpeyi
    @dbajpeyi 2 года назад +12

    I don't deserve this quality of knowledge, consumed on my bed

    • @ValerioVelardoTheSoundofAI
      @ValerioVelardoTheSoundofAI  2 года назад +7

      Well... that's one of my favourite spots to learn. When I get tired, I move to the couch :D

  • @kyleaustin2728
    @kyleaustin2728 2 года назад +2

    Yes, our magic wang 😇

  • @fujinafiul6044
    @fujinafiul6044 2 года назад +3

    just got little confused at 15.20 where you replaced "f" by "k/N" and later described "F(k) = k/NT = K . Sr / N ". just can't connect them.

    • @fujinafiul6044
      @fujinafiul6044 2 года назад +1

      As far as I understand now (please correct me if I am wrong), If I have a sampling rate of 16000 Hz, I only can get the frequencies that are present between 0 Hz -> 16000 Hz. And the frequency gap range will be "sampling rate / total samples count" and the value of k'th index in the Fourier complex array I will get the frequency of "( k * sampling rate ) / total samples count" .. in my case total samples were 524288 so frequency gap range is 16000/524288 = 0.031 Hz.. so the magnitude (abs) value of fouriered_complex_array[0] will indicate the energy level of "0 * 0.031 Hz" and fouriered_complex_array[1] will indicate the energy level of "1 * 0.031 Hz" and so on till fouriered_complex_array[16000-1] will indicate "(16000 - 1) * 0.031 " Hz energy. Now you can simply plot and enjoy.
      Thanks for such detailed explanations, I got it later gradually but really enjoyed your excitement and especially the magic wand :3

  • @maddai1764
    @maddai1764 3 года назад +3

    Thanks a lot for these clear videos, at ~16:04, since we replace f(and seeing the next minutes for the frequence definition), why don't we have x(KSr/N) instead of x(K/N) since we are replacing f. thanks.
    YOU ROCK!

    • @surajkhetarpal6152
      @surajkhetarpal6152 3 года назад +2

      It's because we also replaced time (t) with "sample index" (n). So we are replacing both f and t. Valerio forgot to mention that to get back to time, we need to use "t = n / sr". So when you multiply time by frequency, you get "n / sr * k * sr / N = n k / N".

  • @shubhamchauhan3773
    @shubhamchauhan3773 3 года назад +4

    Make video on FFT

  • @nadeemamu
    @nadeemamu 9 месяцев назад +1

    Hi Velardo. Thanks for the nice videos. I saw that Y-axis in Frequency Domain representation is sometimes referred to as Magnitude and sometimes as Amplitude. Why this is the case?

  • @rakshithv5073
    @rakshithv5073 3 года назад +2

    Can you please elaborate on the point that how M=N is computationally effective ?

  • @snippletrap
    @snippletrap 2 года назад +2

    @9:45 sounds like a Slack notification

  • @Waffano
    @Waffano Год назад +1

    If we define k to represent frequencies in the range from zero to the nyquist frequency, do we still need to remove the last half of the spectrum?

  • @MsBalajiv
    @MsBalajiv 3 года назад +1

    Hi Valerio, at 16:16, the equation uses M / N for range of k. Suppose M is NOT EQUAL to N, that is, I have sampling rate : 16000 and my audio contains 220500 samples. What is the range for k in this case? Is it 1 to 16000 or 1 to 220500?

  • @jodelbautista5394
    @jodelbautista5394 Год назад +1

    Do I still need to digitalize the audio signal in order to be processed in DFT functions?

  • @akashdhage
    @akashdhage 3 года назад +2

    Actual frequency can be very high beyond the sampling frequency , assuming the value to be within sampling rate may not holds true always

  • @MrrrJD
    @MrrrJD 3 года назад +1

    Is F(k) = k/(NT) the explanation for pitching effects when we occur a package(- and therefor a sample)loss? (MIND = BLOWN??)

  • @scienceshiritai5604
    @scienceshiritai5604 3 года назад +1

    It seems that in practice sometimes the signal is zero-padded at the end to double the length of the audio you're looking at. To increase frequency resolution? Or why is that?
    Thank you again for the informative video!

    • @ValerioVelardoTheSoundofAI
      @ValerioVelardoTheSoundofAI  3 года назад +2

      In a ML learning context, you may want to 0-pad audio files, so that they all have the same number of samples. Apart from that, I can't think of other useful applications...

    • @scienceshiritai5604
      @scienceshiritai5604 3 года назад

      @@ValerioVelardoTheSoundofAI Thank you for your reply. Indeed, for e.g. batching in ML, zero-padding is useful.
      However, I was actually talking about FFT Frequency resolution. I came across posts like these:
      - www.bitweenie.com/listings/fft-zero-padding/
      - dsp.stackexchange.com/questions/741/why-should-i-zero-pad-a-signal-before-taking-the-fourier-transform
      I was wondering if you would be able to explain the why of this technique more clearly?

  • @chahinezhigoun1399
    @chahinezhigoun1399 3 года назад +1

    How can I extract DFT from speech dataset using python programming language ?

  • @ocaudiophile
    @ocaudiophile Год назад +1

    Good tutorial on FFT but I don't see anything related to machine learning in it.