Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Algorithm for dB vs time graph for one frequency from FFT?

  1. Dec 13, 2016 #1
    I'm doing a physics experiment for school, for which I am measuring the reverb time for specific frequencies in a room. What I did was record a 1000 Hz sound, and some time after it, and looked at its FFT on Audacity to see the intensity of just 1000 Hz at a given time. Manually, I can do this for t=0.2s, 0.4s... so on and compare the values, but I want an algorithm that shows me the decay of the 1000 Hz sound from the FFT by plotting a graph of the intensity vs time of the 1000 Hz. Is there an existing software that does this? I am not able to find it anywhere.

    (this is my first question here, sorry for any mistakes.)
  2. jcsd
  3. Dec 13, 2016 #2


    User Avatar

    Staff: Mentor

    Welcome to the PF.

    I believe that the FFT usually assumes a stationary (non-changing) signal versus time as its input. If the signal is changing only very slowly over time, you could use multiple FFTs to give you your 1000Hz data. But it sounds like your sound is decaying relatively quickly? If so, can you find/use a digital filter (bandpass) instead? Is that available as a phone app as well?

    EDIT -- What is Audacity? Is it a phone app or something else?
  4. Dec 13, 2016 #3
    Using multiple FFTs was my initial idea, but I was wondering if it was possible for a software to plot this graph for me, as it seems like a lot of trouble to do it manually (especially since I am doing 5 different frequencies)
  5. Dec 13, 2016 #4


    User Avatar

    Staff: Mentor

    Good questions and good project.

    Do you understand the difference between an FFT and digital signal processing? It's important to understand when to use different tools for different situations. We can help you learn about the differences. What reading have you been doing about FFTs and DSP so far? :smile:
  6. Dec 14, 2016 #5
    It sounds like what you want is a spectrogram. Except you are only interested in isolating ~1000Hz and making a single 2D plot?

    You can compute this in matlab if you have access, and then just grab whichever bins you want from the output.

    Python is a good alternative.

    It's a good exercise to use a library like these within a programming language to compute ffts for time series data analysis, as you will have to learn some interesting fundamentals about discrete signals and sample rates in order choose the parameters and prepare and handle the input and output. In the end you should have a better understanding exactly what it is you're seeing, rather than just using some application and being left with only a high level understanding.

    Audacity may have the functionality to give you something like what you want, but I'm not sure how flexible this is. I would recommend to use matlab or python or some other language/library still.
    Last edited: Dec 14, 2016
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted