power spectral analysis for xover placement

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
I wrote some Matlab code that computes the power spectral density (PSD) of a digital recording, splits it into 4 (or whatever) bands according to your crossover points and plots the power vs time for each of those bands. This is to test my assumption that music is approximately pink noise and also to verify some claims seen here that there are significant peaks at the higher frequencies that need tweeter amps to have as much headroom as woofer amps in order to prevent clipping occasional bursts of HF sound.

Starting with crossover points of 35, 350, 3500, I've found:
- with broadband metal (Tool), the tweeter average power is probably 10dB down on the woofer power, but the peaks are about 4dB lower in the most treble-heavy parts. In the bass-heavy parts, the tweeter power is 20dB down on the woofer.
- with electronic dub (Salmonella Dub), the tweeter runs cold (avg and peak tweeter power 20dB down)
- pop music (Cat Empire) shows the tweeter peaking about 8dB down and averaging 15dB down.

Obviously if you move the crossover points, the numbers change. Bringing them down to 250/2000 brings the peak power requirements to about equal for all bands. It's interesting looking at (for example) Desafinado, which has little content between 250 and 350Hz, but it has some big momentary peaks between 2kHz and 3.5kHz - peaks that aren't much in terms of the average midrange content but that push the tweeter headroom requirements up by 10dB.

If you have significant sensitivity differences between your drivers, obviously you will need to adjust your amp powers and/or crossover points accordingly to take that into account.

edit: if you have a 2-way active system, you need at least as much power for the mid+high as the woofer unless the active crossover point is quite high, e.g. 400Hz+.

You can see some example plots and the Matlab source here. Red is woofer, green is mid, blue is tweeter. If you have any track analysis requests for things that you think exhibit interesting dynamics, let me know and I may have the relevant bit of music handy. Otherwise if you have Matlab, feel free to run it yourself.

By all means, take this and use it to make sure your amps are running at the relative powers and headrooms that you think they should be with your music and your crossover points. It's licensed under GPL v3 so don't hold back on hacking and republishing it.
 
Last edited:
The answer will be substantially similar, though more complex to implement. You'd need to build in Matlab the actual time-domain filters used in the crossovers in order to get the true signal through each amp. Not terribly hard but I didn't bother.

The FFT method I used has 4k points so about 90ms per output point, so each point on the graph is total power in each band over ~90ms. Reducing to 2k or 1k point FFTs doesn't substantially change the peak heights - kind of as you'd expect since even the highest frequencies don't AM dramatically at much more than 20Hz for most music.
 
Interesting work Laplace.

I think this follows what most other studies show: that the average power spectrum is heavily dominated by the midrange frequencies, but peak spectrums are flatter with more bass and treble content. Of course, midrange for music often falls in the woofers range.

Just learning Matlab now and will give your code a try.

Regards,
David S
 
Hi all,

Code is updated to implement Linkwitz-Riley filters of whatever order you specify. It runs the actual filters over the music and then prints out RMS power (100ms avg) and sample peak (per 100ms) vs time. You'll need the dfilt (discrete filter design module) from the Signal Processing toolbox.

Plots are also re-uploaded. Conclusions don't really change but I have this little observation wrt much of my music:
- life is harder, thermally, for the woofer, but
- the the midrange and tweeter amps need about as much headroom as the woofer amp.

The above is heavily subject to your crossover points and the ratio of peak/continuous power ratings on your amps+drivers of course. Careful adjustment can get the power balanced.

I've also added some graphs of classical music and unsurprisingly, the midrange is doing all the heavy lifting.

The link again.

Also included is a script to compute preamplifier gains for each frequency band as a function of differing driver sensitivities and amplifier gains, in order to have the same output level from all bands. It will also tell you the headroom differences between your bands as a function of the chosen preamp gains.
 
Last edited:
OK, so the "peak" powers you refer to are actually averaged over 90ms. If you compared maximum instantaneous peaks of the different bands, the answer might be quite different.

See the update above and the current graphs. It now does true per-sample peak detection using output from the actual crossover filters. No FFT, though that code is still in the zip.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.