How to Compute FFT and Plot Frequency Spectrum in Python using Numpy and Matplotlib

Поділитися
Вставка
  • Опубліковано 15 гру 2024

КОМЕНТАРІ • 66

  • @eefunhuang6958
    @eefunhuang6958 Рік тому +7

    Thank you! The DC point I think it’s because it doesn’t have the negative or the complex conjugate component to add up the amplitude, so it doesn’t need to double

  • @WACkZerden
    @WACkZerden Рік тому +1

    thank You for showing how to perform FFT in Python. this is helping me understand it better

  • @arirajuh
    @arirajuh 3 роки тому +3

    Thank you for the learning steps.
    Goal
    Construct
    Perform or Compute
    Plot : Show case of time domain signals

  • @greghumphris174
    @greghumphris174 2 місяці тому +1

    Thank you for the video. I think I will try to implement it as my first Fourier program using numpy. Great video!

  • @cdevagiri
    @cdevagiri Рік тому +1

    Thank you so much. Very helpful. Now I understand why the magnitude doubles when converting from double-sided spectrum to single sided one

  • @JJGhostHunters
    @JJGhostHunters Рік тому +4

    Great content! I wish I could find an example of a real time signal with an unknown "frequency" instead of a contrived sine wave signal. With a contrived signal the time divisions are established automatically. Maybe I am missing something.

  • @MrELMOSAFER
    @MrELMOSAFER 5 місяців тому +1

    Thank you. The explanation is good and some parts can be understood from it, but the variable names are very confusing and the code cannot be understood if you look at it without the explanation especially for beginners in this field of programing

  • @whitehackeryoon7844
    @whitehackeryoon7844 3 роки тому +3

    You really help me to finish my thesis haha. Thanks man👨‍💻👨‍💻

  • @raspicc
    @raspicc 2 роки тому +1

    Me sirvió bastante, muchísimas gracias saludos desde Perú.

  • @SLguitarGuy
    @SLguitarGuy 3 роки тому +3

    Very nice❤I hope U'll reach 1 million views for this

  • @cerita-ceritanabi3343
    @cerita-ceritanabi3343 Рік тому +1

    Hi, I want to analyze an SNR using a CSV file. I want no the signal from 0-200 Hz. In CSV file only has the data on G. What should I do for SNR analysis?

  • @johnsonauk
    @johnsonauk Рік тому +1

    Awesome teaching thank you, but I do not understand why you use (N-1)*tstep in time step instead of (N) * tstep?

  • @davidsalazar154
    @davidsalazar154 2 роки тому +1

    Thank you so much ! Easy to understand and aplicate !

  • @UsamaAhmedZeki
    @UsamaAhmedZeki 2 роки тому +1

    Thank you, Absolutely beautiful.

  • @hectorsanchezsantillan7190
    @hectorsanchezsantillan7190 2 роки тому

    Thank you, this tutorial Is gold

  • @Joe0x7F
    @Joe0x7F 3 місяці тому

    Excellent! Thank you!

  • @mikefredd3390
    @mikefredd3390 3 роки тому

    Great summary of fft() !

  • @bodireddigarimythilireddy1459
    @bodireddigarimythilireddy1459 3 роки тому +1

    Y we are having negative values in time domain signal ..in the final output picture

  • @scottmather6441
    @scottmather6441 3 роки тому

    How could I change it to plotting incoming data from a COM port? Thanks!

  • @hrudaideepthi3346
    @hrudaideepthi3346 4 роки тому +2

    Very informative

  • @liamgaeuman4990
    @liamgaeuman4990 Рік тому

    fstep is just f0? is that right?

  • @rishisurya6008
    @rishisurya6008 3 роки тому +3

    For which signal you have done this, how can i insert a audio signal to apply fft algorithm ?

    • @sujoymondal7511
      @sujoymondal7511 2 роки тому

      Follow this channel for your question
      ua-cam.com/video/ELPlzXNAp34/v-deo.html

  • @nb664rbk
    @nb664rbk 2 роки тому +1

    Why the number of samples N = Fs/F0? Is there a mathematical reason behind it or just because you need an upper bound for your intervals?

    • @prasannagururajan5056
      @prasannagururajan5056 2 роки тому +2

      Sampling frequency is 2000
      Period = 1/2000 = 0.005 which is the time taken for 1 cycle to complete
      Signal frequency = 100
      Period = 1/100 = 0.01
      The period (time) corresponding to signal frequency can be divided between 0 to 0.01. This is the time boundary
      Next question is how many time intervals of 0.005 is between 0 to 0.01 = 20
      Other way of saying is
      How many samples can be taken at sampling frequency of 2000 considering the period of 0.01
      = 2000 * .01 or 2000/100 = 20
      20 samples can be taken at the time interval between 0 sec to 0.01 secs.
      Therefore this period is divided in to 20 , 1 per sample.

  • @kevinshao9148
    @kevinshao9148 3 роки тому +1

    Thanks for the great video! One question at 7:21, what is it to divide by len(time series)? Thank you!

    • @kevinshao9148
      @kevinshao9148 3 роки тому

      Hi could you please help with my question above?

    • @SimeonPlays
      @SimeonPlays 2 роки тому +2

      it divides by how many times he counts the time series

    • @kevinshao9148
      @kevinshao9148 2 роки тому +1

      @@SimeonPlays Thank you so much for your reply! Let me to refresh my memory and try to understand what you explain.

  • @jitendrapagare8970
    @jitendrapagare8970 2 роки тому

    Which software have you used

  • @gajulasrimannrayana3245
    @gajulasrimannrayana3245 2 роки тому

    Thanks a lot, clarifying fft

  • @Seff2
    @Seff2 3 роки тому +2

    very usefull. What do you mean with DC component?

    • @1mviews876
      @1mviews876  3 роки тому +1

      It means 0Hz or you can think of it as the average of the signal.

  • @et4493
    @et4493 2 роки тому

    what if I don't know the frequency of the function (i.e. it is a non-periodic function)?

    • @robytoby1544
      @robytoby1544 2 роки тому +1

      input the data and run the fft, the point of the fft is to break up a function into its constituent sine wave functions without knowing frequencies.

  • @mohanraj411
    @mohanraj411 3 роки тому +1

    Thanks for ur video.Can u try the same without fft inbuilt function.

    • @1mviews876
      @1mviews876  3 роки тому

      Yes, it is possible. You may simplify refer to the definition of FFT or DFT. I believe Numpy is doing the same internally, they just put a wrapper for users.

  • @prasannagururajan5056
    @prasannagururajan5056 2 роки тому

    Great explanation - thanks

  • @WACkZerden
    @WACkZerden Рік тому +1

    very helpful

  • @rupeshkadam7600
    @rupeshkadam7600 3 роки тому +3

    Very informative and great explanation. Can you make full tutorial on Numpy and Scipy?
    Because this tutorial I got interest in this.
    Thank you!

    • @1mviews876
      @1mviews876  3 роки тому

      There are already quite some good videos about Numpy and Scipy out there. Tks for your comment ;)

  • @ChrisYSmithY
    @ChrisYSmithY 3 роки тому

    very good demo! Thank you!

  • @noviaantika5276
    @noviaantika5276 3 роки тому +1

    Hi, I've tried your numpy fft code using rectangular function input and the result is not as expected. It is different from your previous video with sin function (analytical function) for rectangular function. Would you check it?

    • @1mviews876
      @1mviews876  3 роки тому

      pls share your code

    • @sujoymondal7511
      @sujoymondal7511 2 роки тому

      Follow this channel for updates ua-cam.com/video/ELPlzXNAp34/v-deo.html

  • @code2compass
    @code2compass Рік тому

    What is the purpose of N-1

  • @panosp5711
    @panosp5711 3 роки тому

    How plt.plot() calculates in which frequency, each magnitude belongs?

    • @sujoymondal7511
      @sujoymondal7511 2 роки тому

      Follow the link ua-cam.com/video/ELPlzXNAp34/v-deo.html

  • @doditsuprianto6474
    @doditsuprianto6474 3 роки тому

    good explaination. good job. Thanks

  • @scottmather6441
    @scottmather6441 3 роки тому

    Thank you very much!

  • @yoyoke1
    @yoyoke1 Рік тому +1

    Nice!

  • @nuclierrobin5272
    @nuclierrobin5272 3 роки тому +1

    Is fstep = f0 because fstep = fs/n and n= fs/f0 so that means fstep = fs/fs/f0

  • @jahanvichaudhary81
    @jahanvichaudhary81 2 роки тому

    Thank you so much

  • @Mephysto9292
    @Mephysto9292 3 роки тому +2

    nice !

  • @excelsior2229
    @excelsior2229 3 роки тому +1

    Can you send the code please

    • @1mviews876
      @1mviews876  3 роки тому +1

      you may pause it video and type the codes by yourself. there're only a few lines :)

    • @sujoymondal7511
      @sujoymondal7511 2 роки тому

      Another demo and code can be found in ua-cam.com/video/ELPlzXNAp34/v-deo.html

  • @Waterlmelon
    @Waterlmelon 2 роки тому

    good video thanks

  • @ТатьянаДударева-б9ф

    thank you

  • @fajryadir332
    @fajryadir332 3 роки тому

    thanks dude

  • @robertovalenzuela8860
    @robertovalenzuela8860 3 роки тому

    'numpy.ndarray' object has no attribute 'plot' :O

  • @TypicallyThomas
    @TypicallyThomas Рік тому

    This is honestly one of the least helpful tutorials I've ever seen

  • @baghdadiabdellatif1581
    @baghdadiabdellatif1581 Рік тому +1

    Thank you

  • @gunjan6652
    @gunjan6652 4 місяці тому

    Thank You