Go Back   Home > Forums > >
Home Forums Rules Articles diyAudio Store Blogs Gallery Wiki Register Donations FAQ Calendar Search Today's Posts Mark Forums Read

PC Based Computer music servers, crossovers, and equalization

sensorless DSP cone excursion limiter
sensorless DSP cone excursion limiter
Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Reply
 
Thread Tools Search this Thread
Old 20th October 2016, 06:11 PM   #1
CharlieLaub is offline CharlieLaub  United States
diyAudio Member
 
Join Date: Mar 2007
Location: California
Default sensorless DSP cone excursion limiter

I recently developed some DSP code that can reduce bass boost to a woofer/subwoofer when the signal level exceeds some threshold. The impetus for this was to avoid digital clipping when significant amounts of boost (e.g. via a Linkwitz-Transform applied to a subwoofer) are used at low frequencies. Using some hand-waving, this was also shown to more or less also limit the cone excursion, but only as a side effect.

Recently I figured out a way to get a good estimate of the cone excursion for the driver from the input signal alone (there is no sensor of the actual cone position, velocity, etc.) using a model of the driver. This is valid for closed box systems only (vented box may also be possible but I haven't looked at it yet). Open baffle system can be treated as closed box system with infinite box volume for this purpose.

This estimate of peak cone excursion can be integrated into the lookahead limiter code I previously developed, so that it is the cone excursion that is being limited in a more direct fashion. As before, there is a latency penalty for the lookahead function and the audio signal to the rest of the system must be delayed to match. Longer latencies allow the changes to the system to be smoother in time, and this is an adjustable user parameter.

The application is meant especially for open baffle systems where low bass requires significant excursion and the driver can easily be over-driven. By reducing low frequency levels only when the excursion would exceed some level (e.g. Xmax) the driver can be protected from over-excursion or bottoming out on the back plate of the motor. It would also allow low-level bass to be increased, while at higher level the bass is automatically dialed back as needed in response to program material. This approach better matched the low frequency hearing sensitivity curves as well.

I will provide additional detail in a few days time and I hope to integrate this into an upcoming open baffle project that I have planned.
__________________
Visit my Audio Web Page <<--CLICK TO LEARN MORE-->> Get my LADSPA plugins
  Reply With Quote
Old 23rd October 2016, 06:39 PM   #2
SamAnytime is offline SamAnytime  India
diyAudio Member
 
Join Date: Jul 2016
Very interesting. A compressor/limiter for a specific frequency band.

I was thinking of something along similar lines - something that mimics the crossover network to figure out the power going into each of the various elements in the speaker - woofer, midrange, tweeter - and limiting the drive to protect them against overload.

If you use your system to reduce the drive to the subwoofer, will that change the tonal balance of the overall sound? Are you considering a way to alert the user to the change, so he can take corrective action?
  Reply With Quote
Old 23rd October 2016, 11:50 PM   #3
CharlieLaub is offline CharlieLaub  United States
diyAudio Member
 
Join Date: Mar 2007
Location: California
Quote:
Originally Posted by SamAnytime View Post
Very interesting. A compressor/limiter for a specific frequency band.
Sort of, but not exactly like that. You are describing a multi-band compressor, which is slightly different.

Quote:
I was thinking of something along similar lines - something that mimics the crossover network to figure out the power going into each of the various elements in the speaker - woofer, midrange, tweeter - and limiting the drive to protect them against overload.
The input to my algorithm would typically be the output from the "crossover" filters. My limiter could be added on to an existing system, for example one that uses one of the popular miniDSP crossovers, as long as the other channels are delayed to match the latency that results from my algorithm.

Quote:
If you use your system to reduce the drive to the subwoofer, will that change the tonal balance of the overall sound? Are you considering a way to alert the user to the change, so he can take corrective action?
If you run the algorithm on a small ARM platform computer (like a Raspberry Pi) you can connect an alert LED to show the user when the algorithm is kicking in. You could do this to show digital clipping, and not alter the signal in any way - use it only to advise the operator.

In the intended application (subwoofer, etc.) there really is no need to take any corrective action. The limiting should only happen sporadically and won't change the tonal balance of the music since it's really only the lowest bass that would be altered.

I would not use this on other bands like midrange or you WILL hear the effects. This is really for high-excursion drivers like subwoofers.
__________________
Visit my Audio Web Page <<--CLICK TO LEARN MORE-->> Get my LADSPA plugins
  Reply With Quote
Old 24th October 2016, 07:18 AM   #4
wernie is offline wernie
diyAudio Member
 
Join Date: Aug 2016
Default Hypex DLCP

@CharlieLaub: I found your post as the first hit after googling "DSP bass limiter excursion", for I am building an open baffle active crossover stereo sound system using the Hypex DLCP DSP and 6x Hypex UcD180 amplifiers (so tri-amp). I was just thinking about how to prevent over-excursion on the subwoofer when paradoxically one will want to boost the bass region due to the reduced low frequency response of the open baffle setup. I could imagine that a big 20Hz peak in the signal (music), some 20dB above nominal, could kill my woofer driver when I have the gain set based on the nominal music level. One solltion I thought of is to sacrifice the very low end, say 20Hz - 40Hz, by attenuating that by some dB's in the DSP and then only boost from 40Hz upwards, but better would be if indeed, as you also describe, the low end would be limited / compressed by only attenuating peaks above a certain threshold level, so one does not loose that whole frequency range. It seems logical that indeed you can only do this by looking ahead and filtering the signal depending on the signal content. I wonder if Hypex thought of something like that in their DLCP firmware. I havent studied it really yet. Just designed the casings (cutouts), general design, speaker driver choices, etc, now waiting for the cases for the DSP and the power amp to arrive in the mail :-)
Thanks for your idea. I welcome any other info / suggestions / tips, since I am actually completely new in the hifi DIY audio (but have math & physics degree, worked in acoustics, built PC's, quadcopters, etc so that helps to understand the info I find on the web :-) )
Rgds,
Werner
  Reply With Quote
Old 27th October 2016, 05:09 PM   #5
CharlieLaub is offline CharlieLaub  United States
diyAudio Member
 
Join Date: Mar 2007
Location: California
So, how does one get information about the cone excursion in real time without a sensor??? Answer: you predict it from the input. This has been done very nicely using a very complicated analysis and characterization of the driver including thermal and other effects by Klippel, however, the complexity of this modeling approach is too high for DIY use.

Instead one can make use of the work of R.H. Small. In his papers "Closed Box Loudspeaker Systems Part I: Analysis" and "Direct-Radiator Loudspeaker System Analysis" he presents equations for the peak cone excursion of a driver as a function of frequency. These equations are used in many box-modeling programs. The calculations consists of two parts:
  • A low-pass transfer function
  • A multiplication factor
The input for these parts are the Thiele-Small driver parameters and the input power. The low pass TF predicts the "shape" of the excursion curve as a function of frequency, with respect to the excursion at DC, from the in-box resonance frequency and Q. The multiplication factor takes into account the input power, cone area, and other Thiele-Small parameters. Together the product of these two quantities predict the peak excursion.

I believe that these equations can also be used on a time-varying signal to predict the instantaneous cone position using DSP. The audio data stream (signal versus time) is low pass filtered using Small's transfer function. This is easily done in real time in software. Then the resulting signal is substituted for the input voltage and instantaneous power into a load equal to the DC voice coil impedance (per Small) is calculated, along with the rest of the multiplication factor. The result should be the instantaneous cone position, sample by sample, or at least a prediction of it.

This method is not exact, but it's exact enough for our purposes. The cone position is not being measured, it's being predicted by a model. The model is a linear one, and excludes some well-known driver non-linearities so you could not use this approach to try to reduce distortion, for example. The TS parameters can be measured but typically only in the small-signal regime and these parameters will like by somewhat different under large-signal conditions. It's the large signal conditions that are of interest, because large excursions are what we are interested in limiting. None of this is really a major obstacle because we are trying to get an estimate of the excursion only. We do not need to know the excursion to an accuracy of 0.1mm, but rather within 1 or 2 millimeters or so. For improved accuracy, the large-signal TS parameters can be obtained, for example using a Klippel Analysis of the driver.

The limiting action is done in this way:
  • A set of attenuating filters are chosen to represent various amounts of "bass reduction", e.g. the low bass is rolled off to varying degrees
  • All filters are calculated, in parallel, on the input signal
  • The limiting algorithm looks to see if the input signal level will cause the driver excursion to exceed a user-specified threshold (e.g. Xmax)
  • If the threshold is exceeded, the algorithm then looks through the filters in order of increasing attenuation until it finds one with an output that is no longer exceeding the threshold
  • The output signal is then transitioned over to the output of this filter over a short period of time (it's a lookahead algorithm)
  • In general the action is to, only when needed, apply frequency dependent attenuation such that peaks are dialed down to keep the excursion below the pre-determined limit.
I have already written and tested a LADSPA plugin that employs a very similar lookahead limiter algorithm. In it, the signal level was being limited instead of a model of the cone excursion, but the action of the algorithm is very much the same, so I am confident I can modify the code to include excursion limiting as well.
__________________
Visit my Audio Web Page <<--CLICK TO LEARN MORE-->> Get my LADSPA plugins
  Reply With Quote
Old 27th October 2016, 05:42 PM   #6
Boden is offline Boden  Netherlands
diyAudio Member
 
Join Date: Mar 2010
Hello Charlie,

For someone with your programming skills and DSP knowledge this might be interesting.

The Schurer Thesis is based on the Klippel work.

http://doc.utwente.nl/13925/1/t0000002.pdf

http://etd.dtu.dk/thesis/185888/imm3871.pdf

Good Luck,

Eelco
  Reply With Quote
Old 27th October 2016, 06:29 PM   #7
CharlieLaub is offline CharlieLaub  United States
diyAudio Member
 
Join Date: Mar 2007
Location: California
Quote:
Originally Posted by Boden View Post
Hello Charlie,

For someone with your programming skills and DSP knowledge this might be interesting.

The Schurer Thesis is based on the Klippel work.

http://doc.utwente.nl/13925/1/t0000002.pdf

http://etd.dtu.dk/thesis/185888/imm3871.pdf

Good Luck,

Eelco
Thanks for linking to those texts. I like to read this stuff, actually.

Some of these approaches are intended to make the transducer perform better, e.g. by reducing non-linearities, etc. That's not my (current) goal.

I build open baffle speakers mostly these days. OB bass requires very large swept volume because of the cancellation due to the open path between front and rear. Typicallly one has to apply some boost (depending on a variety of factors) below 100-200 Hz to raise the response on axis to the rest of the passband and this can easily exceed 12dB. At low volumes this is probably OK but on louder passages cone excursion can easily exceed Xmax. In fact, it is very possible to create a system that can bottom out the voice coil former, and that is not good. But I do want to add extension when I can.

One solution is to apply limiting. The idea is to still use a good amount of bass lift and allow the driver to do as much as its excursion will allow. When playing at louder volumes where this may cause excessive excursion the bass lift should be dialed back just enough to keep the cone excursion within a safe limit. My existing LADSPA plugin did this essentially by keeping the signal level under some limit. This also has the effect of preventing clipping when the digital signal is rendered via the DAC, but I showed that it will also limit cone excursion in a sense. I built the plugin around a Linkwitz-Transform function and dialed back the amount of boost by modulating the LT filter itself. This new twist is an effect to more directly get an estimate on the cone excursion. Again it's only a linear model, but that is probably good enough in this case.

I have always thought that Klippel's Mirror Filter concept was interesting. Seems to have some modest success in the real world, at least that is what I recall reading some while back, but the characterization and implementation seemed a bit more than I wanted to tackle on my own. It seemed to be targeted at making small, inexpensive drivers perform much better. This is very important in the commercial realm. But for DIY purposes, when you are not building speakers for a laptop or TV, you might as well just choose a better performing driver to begin with.
__________________
Visit my Audio Web Page <<--CLICK TO LEARN MORE-->> Get my LADSPA plugins
  Reply With Quote
Old 27th October 2016, 07:27 PM   #8
Boden is offline Boden  Netherlands
diyAudio Member
 
Join Date: Mar 2010
The real challenge with the feedforward process, as described by Schurer, is the accurate establishment of the non-liniar parameters of the speaker in question. Not two drivers seem to be alike. Also, an amp that is really fully dc coupled and can actually deliver dc pulses to the speakers is necessary. Fine for a lab, not for series production. This might be an explanation for the non-use of Klippels concept.

Eelco
  Reply With Quote
Old 31st October 2016, 05:20 AM   #9
HammerSandwich is offline HammerSandwich
diyAudio Member
 
Join Date: Nov 2011
Quote:
Originally Posted by CharlieLaub View Post
In general the action is to, only when needed, apply frequency dependent attenuation such that peaks are dialed down to keep the excursion below the pre-determined limit.
Seems similar to Bag End's Infrasub.

Nice work!
  Reply With Quote
Old 31st October 2016, 03:29 PM   #10
CharlieLaub is offline CharlieLaub  United States
diyAudio Member
 
Join Date: Mar 2007
Location: California
Quote:
Originally Posted by HammerSandwich View Post
Seems similar to Bag End's Infrasub.

Nice work!
The limiter should actually perform better than Bag Ends circuit, at least from what I know about that. The consequence of my approach is latency, which is unacceptable in a commercial standalone subwoofer that will be used with other loudspeakers. My LADSPA limiter plugin is just one part of the overall crossover system, and so you can delay the rest of the loudspeaker system to match the latency from the subwoofer's limiting algorithm. Well, a better choice of words would be: you have to!

I'm still thinking about how best to (re) configure the existing limiter plugin so that it can be used in this way (excursion limiting).
__________________
Visit my Audio Web Page <<--CLICK TO LEARN MORE-->> Get my LADSPA plugins
  Reply With Quote

Reply


sensorless DSP cone excursion limiterHide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Frequency dependent limiter to avoid one excursion above x max hahfran Multi-Way 9 12th April 2016 05:31 PM
Cone Excursion johnc124 Subwoofers 7 10th April 2009 02:45 AM
Question about cone excursion. perpetual Subwoofers 15 5th May 2005 01:45 PM
calculating cone excursion? Jim85IROC Multi-Way 11 3rd April 2004 08:41 AM
Peak cone excursion Vikash Multi-Way 8 9th July 2003 06:21 PM


New To Site? Need Help?

All times are GMT. The time now is 02:06 AM.


Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Resources saved on this page: MySQL 15.00%
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Copyright ©1999-2018 diyAudio
Wiki