I'm trying to make an app(running on an android phone) that can detect the frequency of a guitar string being played. I know it'll be hard to detect that but that's a problem I'll deal with later.

Right now I'm trying to reduce the effects of noise on my FFT of an audio signal. I'm sampling at $44.1\textrm{ kHz}$ and have a sample size of $4096$. This gives me a bin size of $10.7\textrm{ Hz}$.

I've read good things about averaged periodograms killing noise. I want to try to use an averaged periodogram, Welch's Method, to reduce the effects of noise.

  • What I'm wondering is, if I window it into $1024$ sample windows, then will the resolution of my final product become $\approx 40\textrm{ Hz}$?
  • If I have overlapping windows to keep my resolution high, will I still have effective noise reduction?

Sorry if this is a bad question. This is my first time doing DSP outside MATLAB so I'm struggling.


Yes, if you reduce the FFT window from 4096 to 1024 samples, then you will have 4 times less frequency resolution. Also, if you have significant overlap between the windows, your resolution will not change. It only depends on the length of the FFT window. Furthermore, with Welch's method, a window for each segment is usually used, which again reduces the spectral resolution due to convolution of the signal spectrum with the window spectrum.

So, yes Welch's method reduces noise, but also spectral resolution.

If you want to have both, why dont you increase the recorded signal length to lets say 4*4096? This would amount to 360ms, which, depending on your requirements, might still be fine for guitar pitch detection. THere's always the tradeoff between spectral resolution and required amount of time.

  • 1
    $\begingroup$ 4*4096 samples at 44.1kHz is ~360ms, not 40ms. $\endgroup$ – SleuthEye Jan 19 '17 at 4:29
  • $\begingroup$ @SleuthEye Thans for pointing this out and you are completely right. I dont know, what I calculated beforehand. I corrected itin my answer. $\endgroup$ – Maximilian Matthé Jan 19 '17 at 6:45

The answer by Maximillian is correct. I would only add that technically, I think noise is reduced must when the samples are independent, and as such, one should not overlap windows. Overlapping is a trade off between noise reduction and rapid response when a signal is changing.

  • $\begingroup$ Averaging only effects the effective degrees of freedom. There is still noise reduction. The derivation is a bit long for a comment, but the effective N is the number of independent DFT intervals. The problem with independent windows is the scalloping loss to tonals. Overlapping gains back signal lost to scalloping $\endgroup$ – user28715 Jun 18 '17 at 21:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.