DSPRelated.com
Forums

Audio Spectrum Analyzer : Do we need correlation???

Started by Aarul Jain January 15, 2004
Hello

I had just finished making an audio spectrum analyzer, when someone
told me that since voice is a random signal you need to first
correlate it before finding the fft of its samples.
I had read somewhere that correlation is generally used for removing
noise, and I tols him that I am assuming noise free environment. But
he said that random signals are infinite energy signals and taking its
fft directly is not valid.

Now I am confused about this correlation thing. If it removes noise
then what kind of noise does it remove?

How do I know where to use correlation?
And then there is something called auto-correlation?

What are all these things?

Are there good books that discusses the practical use of this?

I know there must be many here that have concepts clear about
correlation.Please do reply.

Thanks

Aarul Jain
"Aarul Jain" <aaruljain@yahoo.com> ha scritto nel messaggio
news:207dbed8.0401150634.6fca2dee@posting.google.com...

[...]
> he said that random signals are infinite energy signals and taking its > fft directly is not valid.
It's likely you are not FFTing an infinite lenght sequence, but only some 2^N samples each time. So you can compute its FFT. Bye, -- Virgilio Lattanzi HARPAX srl Tel: +39 0733 816872 via Fontanella, 38 Fax: +39 0733 819133 62012 Civitanova Marche MC WWW: www.harpax.com ITALY
"Aarul Jain" <aaruljain@yahoo.com> wrote in message
news:207dbed8.0401150634.6fca2dee@posting.google.com...
> Hello > > I had just finished making an audio spectrum analyzer, when someone > told me that since voice is a random signal you need to first > correlate it before finding the fft of its samples.
What they probably meant was more like this: If you compute a Finite Time Fourier Transform or Discrete Finite Time Fourier Transform using FFT, then you will get a spectral series - for which you can compute the magnitude or magnitude squared, but it may or may not be what you really want. If what you really want is the Power Spectral Density then you may need to do something slightly different: (The issue here is that you might want to avoid generating large numbers where they aren't justified - ususally as a result of noise content. So, some sort of averaging might be desirable.) One way to do this is to compute the average at each frequency sample of the magnitude squared of the FFT results over a number of FFTs - let's call that number of FFTs "M" and the length of those FFTs "N". This illustrates pretty nicely what's happening - the consistently large elements will average out to be large and the more variable ones will be diminished - thus improving the estimate. Note that the frequency resolution is fs/N here. In the limit, the least "good" estimate is with a sample of *one* FFT of length N - and computing the magnitude squared at each frequency sample. On the other hand, it's done more quickly - i.e. with less data - and is more likely to yield information about real time variations in the data. Surely the length of the FFT is a tradeoff in any case. Because, you could always compute the FFT over M*N time samples. Another way to do this is to compute the autocorrelation function over the entire set of M*N data points and take the FFT of the autocorrelation result - which is the normal definition of power spectral density as a member of this Fourier Transform dual pair. Here the resolution is ~fs/M*N because you're using more data and are computing a Fourier Transform that's longer by a factor of M. So, do you *have to* do this? That's something you have to decide for the sort of data you have and for your application. Fred
aaruljain@yahoo.com (Aarul Jain) wrote in message news:<207dbed8.0401150634.6fca2dee@posting.google.com>...
> Hello > > I had just finished making an audio spectrum analyzer, when someone > told me that since voice is a random signal you need to first > correlate it before finding the fft of its samples. > I had read somewhere that correlation is generally used for removing > noise, and I tols him that I am assuming noise free environment. But > he said that random signals are infinite energy signals and taking its > fft directly is not valid. > > Now I am confused about this correlation thing. If it removes noise > then what kind of noise does it remove?
Correlation does not, in itself, remove any noise. Computing the correlation only "reformulates" the signal in a way that lets you see certain structures that is otherwise not easy to see.
> How do I know where to use correlation?
Correlation is useful when you deal with random or noisy signals. A "random" signal can often be analyzed in terms of Power Spectrum Density (PSD), i.e. in what frequency bands there is high energy and in what frequency bands there are little energy. The correlation is the first step to computing the PSD. There is a connection between the PSD in frequency domain and the "correlation lengths" in time domain.
> And then there is something called auto-correlation?
Yep. If you have a signal that is basically noise, it's not very easy to make much sense of it in time domain. Computing the autocorrelation can reveal some of the temporal structure of the signal, coputing the PSD (the DFT of the autocorrelation sequence) can give information in frequency domain. The PSD and the autocorrelation are different ways of investigating noise-like or noisy signals.
> What are all these things? > > Are there good books that discusses the practical use of this?
Any book on statistical signal processing should be useful. Even some books on basic DSP include chapters on spectrum estimation and the likes. Check out the book by Proakis and Manolakis. Rune