Averaging Multiple Magnitude Spectra

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.

• 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. May 1, 2015 at 21:07
• 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. May 2, 2015 at 21:09
• 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. May 2, 2015 at 22:20