1
$\begingroup$

I'm currently trying to implement some of the methods found in this paper on intelligent equalization - http://www.aes.org/e-lib/browse.cfm?elib=16792 -

The first part of the process is to build a "target equalization curve" via the means of "averaging the spectra of all songs in the dataset".

In MATLAB, if I do the following.

mag_1 = abs(fft(file));
mag_2 = abs(fft(file_2));

The two magnitude spectra have different resolution and number of frequency bins right? Does it make sense to just mean(mag_1, mag_2)? I can't seem to find anything that goes over averaging multiple magnitude spectra and it isn't defined in the paper how they achieved the averaged magnitude spectra for the ideal target curve.

Any help would be appreciated.

$\endgroup$
  • 1
    $\begingroup$ You could take a look at welch's method for spectral density estimation. en.wikipedia.org/wiki/Welch's_method. Why don't you analyse you two file with the same resolution ? use fft(file,1000) and fft(file_2,1000) to truncate the signal. Also consider resampling your signals if they havn't the same sampling frequency. $\endgroup$ – Antoine Bassoul May 1 '15 at 21:07
  • $\begingroup$ Well I don't want to lose any information via truncating. So because I'm analyzing the audio in full chunks, (Millions of samples), fft(x, 1000) returns all zeros. What I've done so far is zero pad all the audio to the longest length in samples and then take the FFT so they all have the same number of bins. Then I do a mean(x) where x is an FFT matrix with different magnitude spectra inside of it. I'm just not sure if that's "correct" or not? From a theoretical standpoint. Like does that give me the average magnitude spectra? I will definiltey look at Welchs Method. $\endgroup$ – syyc8A3QierDK4G May 2 '15 at 21:09
  • $\begingroup$ Considering you're already comfortable with fourier analysis I can't help you much aside pointing you to spectral density estimation, which I think is what you want to do. Maybe someone stronger will come by. $\endgroup$ – Antoine Bassoul May 2 '15 at 22:20
1
$\begingroup$

If you're averaging multiple (two, in your case) spectral magnitude sequences your result will be valid, correct, as long as the sequences are equal in length. Now whether the "averaged spectral magnitude" result gives you useful information, that you will have to decide on your own.

$\endgroup$
0
$\begingroup$

To point anyone who needs an answer to this question in the right direction. I have a found a paper that goes over the calculation here - http://www.aes.org/e-lib/online/browse.cfm?elib=17010 -

$\endgroup$

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.