Sign in with
Sign up | Sign in
Your question

dsp for audio - speaker excursion ?

Last response: in Home Audio
Share
Anonymous
January 28, 2005 3:17:20 PM

Archived from groups: comp.dsp,rec.audio.pro (More info?)

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!
Anonymous
January 28, 2005 4:00:57 PM

Archived from groups: comp.dsp,rec.audio.pro (More info?)

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?
Anonymous
January 28, 2005 5:16:50 PM

Archived from groups: comp.dsp,rec.audio.pro (More info?)

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
Related resources
January 28, 2005 6:17:03 PM

Archived from groups: comp.dsp,rec.audio.pro (More info?)

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

>
Anonymous
January 28, 2005 6:24:29 PM

Archived from groups: comp.dsp,rec.audio.pro (More info?)

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."
Anonymous
January 28, 2005 6:52:11 PM

Archived from groups: comp.dsp,rec.audio.pro (More info?)

"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.
Anonymous
January 28, 2005 9:13:29 PM

Archived from groups: comp.dsp,rec.audio.pro (More info?)

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
Anonymous
January 28, 2005 9:27:19 PM

Archived from groups: comp.dsp,rec.audio.pro (More info?)

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.
Anonymous
January 29, 2005 6:42:53 AM

Archived from groups: comp.dsp,rec.audio.pro (More info?)

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
Anonymous
January 29, 2005 11:45:16 AM

Archived from groups: comp.dsp,rec.audio.pro (More info?)

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."
January 29, 2005 12:33:45 PM

Archived from groups: comp.dsp,rec.audio.pro (More info?)

Hi Mike,

read a little at www.drc.wildgooses.com. There are some links on this
page with a lot of interesting content about speaker and/or room
correction.

Uli
Anonymous
January 30, 2005 1:27:44 AM

Archived from groups: comp.dsp,rec.audio.pro (More info?)

dspman <mike_mr2@yahoo.com> wrote:
>
>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.

Yes, that's basically the difference between big speakers and small speakers.
You can get any two: bass extension, efficiency, small size. You can't
get all three of them at the same time.

Bottom end EQ can sometimes give you a little bit more extension down there,
but as you note, it takes a lot of driver in order to be able to do that.

This is a thing that can't be fixed with processing. What _can_ be fixed
with processing are various cancellation problems in the crossover region,
though. But there is no magical bass extension fix.

>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).

Yes, but then as you turn the volume up, the bass goes away. What you
are describing is basically having a compressor on the bass driver.
Doing this means the balances change with level, and personally that is
a thing which I find annoying.

>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?

It makes sense on paper, and it's easy to implement, but it doesn't seem
like a route toward better sound quality.
--scott
--
"C'est un Nagra. C'est suisse, et tres, tres precis."
Anonymous
January 30, 2005 1:29:16 AM

Archived from groups: comp.dsp,rec.audio.pro (More info?)

dspman <mike_mr2@yahoo.com> wrote:
>
>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.

What do you mean? You are running all five drivers (the two in each
bookshelf box and the one in the sub) all full range? How can you
not have a crossover?
--scott

--
"C'est un Nagra. C'est suisse, et tres, tres precis."
Anonymous
January 30, 2005 7:19:11 AM

Archived from groups: rec.audio.pro (More info?)

On 28 Jan 2005 13:00:57 -0800, "dspman" <mike_mr2@yahoo.com> wrote:

>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?

None of that requires DSP, if I understand you correctly. Because
all compressions cause amplitude distortions, maybe a DSP-optimized
solution might incorporate a sliding turnover high pass filter
and/or the level-dependent boost. *Still* nothing that requires
DSP though; was done in analog decades ago.

What new can be done? Seems like it will need to be something that
can be applied before the drivers, not necessarily before the
crossover filters, and must be applicable everywhere in the room.

This would rule out the majority of ideas that pop up so often
lately. Some serious folks are working on algorithmic room mode
ameliorations, but they don't claim anything beyond their
dimensional Heisenberg limits, which fall into your range of
interest.

What's left? As Scott has already said, crossover networks. They're
the new frontier; smaller dimensional problems (so higher working
frequencies), and much larger audibility, because we hear the
direct sound first, and because they tend to fall into voice range,
where we mammals tend be be the pickiest.

Good fortune with your project,

Chris Hornbeck
"Don't be foolish, like the others." _Lola Montes_, 1955
Anonymous
January 30, 2005 10:33:47 AM

Archived from groups: comp.dsp,rec.audio.pro (More info?)

"Jon Harris" <goldentully@hotmail.com> wrote in message
news:3601gdF4l34s7U1@individual.net
> "dspman" <mike_mr2@yahoo.com> wrote in message
> news:1106946057.675466.101620@z14g2000cwz.googlegroups.com...

>> 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).

I suspect that there are a lot of systems that do this - probably more
should. The most sophisticated approach to this that I know of actually
measure the DC resistance of the voice coil and infer the voice coil
temperature from it. They then modify the drive to the speaker to avoid
thermal damage.

> That is quite similar to what a "loudness" control does, expect that
> it also affects the treble similarly.

Not all loudness controls have differing roll-offs for the high frequency
range. If you look at the Fletcher-Munson curves, the high frequency curves
tend to be a lot more parallel than the ones for bass. This means that
treble boost or cut should be more constant with level.

These days we have a lot of drivers that are very linear for large
excursions. Therefore using a small box and simply equalizing the dickens
out of the driver can work a whole lot better than it did in the past. Of
course it takes real power to do this, but high quality amplifier power is
pretty cheap. Extra space where we want good sound is not always so cheap.
!