DSPRelated.com
Forums

dsp for audio - speaker excursion ?

Started by dspman January 28, 2005
I was wondering whether anyone here had any recommendations for methods
of improving speaker audio performance with the use of a DSP (digital
signal processor).  I have heard of different methods of improving the
system.

I have heard that you can make measurements of the loudspeaker
excursion limits and use these parameters to control a dsp compressor
to get a lot of performance and volume out of the speakers without the
risk of overdriving them at low frequencies.  I imagine that this would
allow you to boost the low end a bit where the speaker starts to drop
off -- without risk of overdriving the speaker.

Has anyone experimented with some methods like this?  I already have a
setup where I drive my speakers from a dsp and it knows what volume and
all of that I'm at, so it seems like with these measurements there
could be a significant improvement. 

Thanks!

dspman <mike_mr2@yahoo.com> wrote:
>I was wondering whether anyone here had any recommendations for methods >of improving speaker audio performance with the use of a DSP (digital >signal processor). I have heard of different methods of improving the >system.
My personal suspicion is that, except at low frequencies, there is not much that you can do to improve overall linearity because modelling the system isn't accurate enough, and the unit-to-unit variations are going to require feedback rather than a simple correction filter that can be used on all speakers of the single model. BUT, if you go to http://www.aes.org and go to conference papers and preprints, and do a search for "speaker correction" and "dsp speaker" you will find dozens and dozens of papers on the subject.
>I have heard that you can make measurements of the loudspeaker >excursion limits and use these parameters to control a dsp compressor >to get a lot of performance and volume out of the speakers without the >risk of overdriving them at low frequencies. I imagine that this would >allow you to boost the low end a bit where the speaker starts to drop >off -- without risk of overdriving the speaker.
This is speaker protection, this is not a performance improvement. It might be a good idea (and it is employed by a lot of speaker manufacturers who are using DSP-based crossovers and protection going into an individual D/A and amp for each driver), but it's not going to improve anything other than ruggedness.
>Has anyone experimented with some methods like this? I already have a >setup where I drive my speakers from a dsp and it knows what volume and >all of that I'm at, so it seems like with these measurements there >could be a significant improvement.
Your first bet might be to move the crossover into the digital domain, which allows you to tweak phase response and frequency response of the crossover filters individually on the fly. This can be a powerful tool both for good and for evil (and there is a Meyer paper from the early eighties in the AES database on it, somewhere). --scott -- "C'est un Nagra. C'est suisse, et tres, tres precis."
Cool - Thanks for your reply.

As far as the crossover - I have already moved that over to the digital
side.  I have done a bit of comparison of my smaller bookshelf speakers
versus much better sounding (in the bass) larger speakers - and that is
primarily what I wanted to fix with my bookshelf speakers.

I basically noticed that the difference was down pretty low, around
60hz - and if I do about a 10dB boost at 60hz, then when playing music
at a moderate listening level, the 2 speakers sound much closer to
equivalent.  Before I was missing a lot of the bass with the smaller
speakers.

However, as with anything there are limitations -  This worked great at
moderate levels, but as soon as I would really turn the system up in
volume a bunch more, it seemed like the loudspeaker excursion got too
great (since I now had a +10dB boost at low frequencies).  It would hit
its limits and of course sound bad.

So what I was thinking was -- I could, as the volume increases, slowly
get rid of that +10dB boost.  That way I could have the best that my
system can do (I would have the extra real low end while my speaker was
able to produce it, and back off so that I wouldn't overdrive my
system).

My next step naturally would be to have the system automatically do
that -- but not according to volume, according to the actual signal.
If I had a compressor (or at least the envelope follower part of the
compressor that determines the peak values of those low frequencies)
and set thresholds according to my speakers limits, it sure seems like
I could get the system to work in a way that I get the maximum
performance out of the system all the time -- basically improving the
low frequencies on these small speakers as much as possible until it
would overdrive, at which point it would just back it off a bit.
Does that make sense?


dspman wrote:

> My next step naturally would be to have the system automatically do > that -- but not according to volume, according to the actual signal. > If I had a compressor (or at least the envelope follower part of the > compressor that determines the peak values of those low frequencies) > and set thresholds according to my speakers limits, it sure seems like > I could get the system to work in a way that I get the maximum > performance out of the system all the time -- basically improving the > low frequencies on these small speakers as much as possible until it > would overdrive, at which point it would just back it off a bit. > Does that make sense?
Perfect sense and an excellent idea. Go for it. Was your crossover based on measurement? It can be done with perfect reconstruction (seamless magnitude and phase) at the measurement point using some methods I've worked out. There's lots more you can do that is measurement based as I'm sure you know. Glad to talk offline with you if you are interested. My email address is naked. Bob -- "Things should be described as simply as possible, but no simpler." A. Einstein
I think you want to add another coil or optical sensor to provide
feedback as to the cones acutal position, then use DSP to put that info
into a feedback loop and correct for non-linearity in the spider and
magnetic circuit of the speaker  etc.

But of course you cannot compensate for the inherent Doppler
distortion...Oh no.
Mark

>
"dspman" <mike_mr2@yahoo.com> wrote in message
news:1106946057.675466.101620@z14g2000cwz.googlegroups.com...
> Cool - Thanks for your reply. > > As far as the crossover - I have already moved that over to the digital > side. I have done a bit of comparison of my smaller bookshelf speakers > versus much better sounding (in the bass) larger speakers - and that is > primarily what I wanted to fix with my bookshelf speakers. > > I basically noticed that the difference was down pretty low, around > 60hz - and if I do about a 10dB boost at 60hz, then when playing music > at a moderate listening level, the 2 speakers sound much closer to > equivalent. Before I was missing a lot of the bass with the smaller > speakers. > > However, as with anything there are limitations - This worked great at > moderate levels, but as soon as I would really turn the system up in > volume a bunch more, it seemed like the loudspeaker excursion got too > great (since I now had a +10dB boost at low frequencies). It would hit > its limits and of course sound bad. > > So what I was thinking was -- I could, as the volume increases, slowly > get rid of that +10dB boost. That way I could have the best that my > system can do (I would have the extra real low end while my speaker was > able to produce it, and back off so that I wouldn't overdrive my > system).
That is quite similar to what a "loudness" control does, expect that it also affects the treble similarly.
> My next step naturally would be to have the system automatically do > that -- but not according to volume, according to the actual signal. > If I had a compressor (or at least the envelope follower part of the > compressor that determines the peak values of those low frequencies) > and set thresholds according to my speakers limits, it sure seems like > I could get the system to work in a way that I get the maximum > performance out of the system all the time -- basically improving the > low frequencies on these small speakers as much as possible until it > would overdrive, at which point it would just back it off a bit. > Does that make sense?
The loudness control (or in your case bass control) could be based on a volume setting, in which case it is quite simple, or signal level like your proposal, which is more complex but certainly possible. I actually implemented that once myself, moving shelving filters up and down based on signal level. It seemed to work as expected, although I didn't do any critical testing with speakers. You could also use a split-band compressor to accomplish this also. Or since you already have a cross-over, a normal compressor working just on the LF signal should do the job nicely. Something with a fairly steep slope (near a limiter) might get you what you want--at low levels, the bass is boosted 10dB. As it rises, the bass level hits its limit at about 10dB before maximum output level. Then, as the signal continues to rise, the bass gain is cut such that it stays at max level from there to full scale.
OK So you think that idea may work . . .  I guess it's
worth a shot.

As far as the crossover - I began checking out the
crossover stuff when I realized that I was starting to
drive my speaker to the limits.

I figured that if I put a highpass filter on there to
cutoff any frequencies that were too difficult for the
speaker to reproduce, it would then sound better
overall.  However, if I cutoff as high as 80 hz -- I
lose my low end bass like I described.  I found that I
wouldn't really want the crossover higher than 20hz
(since I don't have a subwoofer in this configuration)
-- then it didn't seem that the 20hz filter made much
difference (since there isnt much content way down
there) so now I pretty much skip the crossover.

On my other setup though I do have a powered subwoofer
and have often wondered exactly what kind of curve I
should put on there to match it.  I just used like a
2nd order cutoff at around 80 before, which was OK but
I think the subwoofer is tuned to have a steeper
cutoff and then the sub box also has some effect.  I
think the filter I used was a Linkwitz-Riley which I
think was basically 2 butterworth filters cascaded (so
the cutoff is -6dB and adds back flat ?  )  My
subwoofer has a phase knob on the back of it so I was
just tuning the system a bit by ear using that.

I would be interested to hear what kind of
measurements you made - and how you tuned yours.

Have you done any other signal processing to flatten
the (magnitude or phase) response of your speaker or
anything like that?

Mike

Yeah the loudness control is similar.  The loudness though is matched
to the curves of equal loudness on my ear rather than on the speaker
limitations.

Having the whole thing tuned to the speaker seems like it would give me
better performance -  The bass shouldn't drop away as I increase the
volume (other than to the loudness curves) when there isn't enough bass
content to overdrive the speaker.

In comp.dsp and rec.audio.pro, on 28 Jan 2005 18:27:19 -0800, "dspman"
<mike_mr2@yahoo.com> wrote:

>Yeah the loudness control is similar. The loudness though is matched >to the curves of equal loudness on my ear rather than on the speaker >limitations. > >Having the whole thing tuned to the speaker seems like it would give me >better performance - The bass shouldn't drop away as I increase the >volume (other than to the loudness curves) when there isn't enough bass >content to overdrive the speaker.
Excursion isn't the only possible overdrive limitation. At higher frequencies (but still low enough to be handled by the woofer), the limitation is power input, which can overheat the voice coil. This is also true for midrange drivers and tweeters, which have much lower power handling capabilities than woofers. App notes 103 and 104 at this link: http://thatcorp.com/appnotes.html discuss this sort of thing, and implement solutions with analog circuitry, but it's of course also doable in DSP (and as always, if this is for a commercial product, checking to see if you infringe on any patents is your responsibility - I'd be surprised if there weren't a lot of patents in this area). ----- http://mindspring.com/~benbradley
dspman <mike_mr2@yahoo.com> wrote:
> >Have you done any other signal processing to flatten >the (magnitude or phase) response of your speaker or >anything like that?
This generally doesn't work very well unless you are trying to remove a response aberration that is the same in all directions. Most of the frequency response problems on speakers either are different in different directions around the speaker (for example, beamy drivers), or are due to driver interactions causes different response in different directions. The first set of problems you can't solve because you can only alter the input to the driver with DSP... correcting the on-axis response may make the response at 90' worse. The second set of problems you can help a lot by replacing the crossover with a system that allows you to more carefully adjust how the drivers interact, and that is where DSP is a big deal. --scott -- "C'est un Nagra. C'est suisse, et tres, tres precis."