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

แชร์
ฝัง
  • เผยแพร่เมื่อ 6 ก.ย. 2024
  • In this video, I demonstrated how to compute Fast Fourier Transform (FFT) in Python using the Numpy fft function. Plotting the frequency spectrum using matplotlib is also shown. It would be great if you can give me some feedbacks. Thanks for watching!

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

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

    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

  • @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

  • @MrELMOSAFER
    @MrELMOSAFER 2 หลายเดือนก่อน +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👨‍💻👨‍💻

  • @JJGhostHunters
    @JJGhostHunters 11 หลายเดือนก่อน +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.

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

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

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

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

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

    Thank you so much ! Easy to understand and aplicate !

  • @hrudaideepthi3346
    @hrudaideepthi3346 3 ปีที่แล้ว +2

    Very informative

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

    Great summary of fft() !

  • @baghdadiabdellatif1581
    @baghdadiabdellatif1581 9 หลายเดือนก่อน +1

    Thank you

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

    Thank you, Absolutely beautiful.

  • @user-xc9pp4tf3f
    @user-xc9pp4tf3f ปีที่แล้ว +1

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

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

    Thank you, this tutorial Is gold

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

    very helpful

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

    Thanks a lot, clarifying fft

  • @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?

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

    Great explanation - thanks

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

    good explaination. good job. Thanks

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

    Nice!

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

    very good demo! Thank you!

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

    Thank you very much!

  • @Mephysto9292
    @Mephysto9292 3 ปีที่แล้ว +2

    nice !

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

    good video thanks

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

    Thank you so much

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

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

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

      try set_xlim(0,)

  • @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

      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.

  • @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 ;)

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

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

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

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

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

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

    • @1mviews876
      @1mviews876  2 ปีที่แล้ว

      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.

  • @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.

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

    thanks dude

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

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

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

      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.

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

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

    • @robytoby1544
      @robytoby1544 ปีที่แล้ว +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.

  • @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
      th-cam.com/video/ELPlzXNAp34/w-d-xo.html

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

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

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

      Follow the link th-cam.com/video/ELPlzXNAp34/w-d-xo.html

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

    What is the purpose of N-1

  • @noviaantika5276
    @noviaantika5276 2 ปีที่แล้ว +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  2 ปีที่แล้ว

      pls share your code

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

      Follow this channel for updates th-cam.com/video/ELPlzXNAp34/w-d-xo.html

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

    Which software have you used

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

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

  • @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 th-cam.com/video/ELPlzXNAp34/w-d-xo.html

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

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

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

    Thank You

  • @user-ri8zl1tt7q
    @user-ri8zl1tt7q 2 ปีที่แล้ว

    thank you