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 12th December 2016, 01:30 AM   #51
CharlieLaub is offline CharlieLaub  United States
diyAudio Member
 
Join Date: Mar 2007
Location: Michigan
Quote:
Originally Posted by Andrew Eckhardt View Post
Okay. But when I think of thermally related distortion or tuning drift in a woofer, I figure it must be Hot, as in like 10 dB overdriven, at Least now and then. If you're talking about skirting the +/- 3dB region, isn't that simply flirting with the edge of failure?

At volume levels where woofers don't make much distortion, they don't get hot. I think that's where I'm coming from.
Sure there are the limits of:
little or no drive current --> relatively "cold" (e.g. room temp) voice coil
lots of power and compressed program material for a long time --> hot VC

But there is a large area in between, within which (I believe) some careful controlling of the input signal based on some feedback about the system can be useful and can keep the system from getting too overheated. This is the operating region that I am interested in working in, and to make the system perform better there.
__________________
Visit my Audio Web Page <<--CLICK TO LEARN MORE-->> Get my LADSPA plugins
  Reply With Quote
Old 12th December 2016, 01:33 AM   #52
CharlieLaub is offline CharlieLaub  United States
diyAudio Member
 
Join Date: Mar 2007
Location: Michigan
Quote:
Originally Posted by Andrew Eckhardt View Post
Also thought I'd mention... accidents happen. If you could figure out a way to detect when the coil was leaving the gap, and stop that from happening without changing normal running one bit, sensorless, you really would have something. Unfortunately you'd probably still have to include the flashing red light, or many would be none the wiser.
Right. I believe I have indeed figured out a way to predict the instantaneous cone excursion without directly sensing it based on the input level, various gains in the amplification stage, and the Thiele-Small parameters (for large signal behavior). That is the basis for the excursion limiting - predicting the excursion and then dynamically bringing in a highpass filter to reduce low frequency power that is driving the excess excursion.
__________________
Visit my Audio Web Page <<--CLICK TO LEARN MORE-->> Get my LADSPA plugins
  Reply With Quote
Old 15th December 2016, 09:00 PM   #53
andy497 is offline andy497
diyAudio Member
 
Join Date: Jan 2013
Definitely a fun idea, and I think it could have some real utility.

After a little contemplation, I'm thinking you could do this with a near zero latency filter. I was originally hung up on the code needing a running integrator/accumulator and some math to decide how much voltage*duration would push the driver over the excursion limit, but then I realized knowing the real T/S and system Q makes all of that redundant.

Here's some screenshots from winisd model of a small sealed sub I have. Blue is the excursion curve given constant voltage. Green is after a linkwitz transform picked to match the shape of the native system excursion curve, which (after arbitrary scaling) yields a roughly flat line (with an added peq for the very low end). The orange curve is with the inverse of the green equalization, and that's actually want we want as our reference.

sensorless DSP cone excursion limiter



Here's the freq/amplitude for the green and orange filters compared:
sensorless DSP cone excursion limiter


Given any input voltage at any frequency, the output of the orange filter will tell you if you're over/under excursion limit.

The thinking is you don't need a read-ahead or look-back buffer. Your dsp simply passes the input samples along untouched, but it is also computing and storing the same stream transformed with the appropriate biquads/IIRs previously derived for the specific system. To identify the hard limit, you play a signal at an arbitrary frequency and increase volume until you reach your desired excursion limit while monitoring the computed value of the transformed signal in the dsp. If you picked your LT/PEQ/biquads correctly, when you change to any other frequency and then adjust volume up/down to match that excursion limit, the transformed signal should show the same amplitude values.

As for limiting, the dsp module/plugin monitors both the input stream and transformed stream. As the amplitude of the transformed one starts to approach the set limit, the input could be just scaled down linearly per-sample, or filtering/smoothing of the clamping could be applied. As the transformed signal starts to recede below limit, you can scale the input back up to full value.

If you did this on a per-sample basis with no smoothing, the effect would be to square off wave-forms and would yield funky harmonics, but I'd be interested to hear how bad they'd actually sound. Ideally it would be engaging only rarely, you'd have the nice upsides of basically no latency and no attack/release artifacts like with a typical limiter. I think you could also do the scaling on the transformed signal (green line above) and gently blend that back in with the raw input to effectively reduce only the offending frequencies, and that still avoids latency from a buffer.

I'd really like to write a vst plugin to play with this idea, but all of the dsp in my theater is done in the digital domain prior to the AVR that sets the final output volume to the amps, so no such luck.
  Reply With Quote
Old 16th December 2016, 04:58 PM   #54
CharlieLaub is offline CharlieLaub  United States
diyAudio Member
 
Join Date: Mar 2007
Location: Michigan
@andy497: If I am correctly understand what you did, it's very similar to Small's method but you are using the box modeler to generate the excursion filter function.

You are correct in that a lookahead, buffering, and latency are not needed but, as you realized, the only corrective action is a hard limiting of the input signal. Because the driver has mass and thus momentum the cone motion probably will not be able to follow that signal and there will be some overshoot. Otherwise the "flat topped peak" type of limiting will be the result. In a woofer, this will generate harmonics that will probably be objectionable, but maybe not. If you do try that, I would be interested to hear your thoughts about the sound quality.

I use the lookahead approach, which allows a slower reduction in the signal, to perform the limiting. With that approach, no harmonics are generated. It's a blameless way to limit the signal, really. But you must incur some latency to do so.

I might be able to write the excursion limiter LADSPA code so that the user can implement it with no latency and hard limiting (like you suggest) or add some latency to reduce/eliminate harmonics and distortion.
__________________
Visit my Audio Web Page <<--CLICK TO LEARN MORE-->> Get my LADSPA plugins
  Reply With Quote
Old 16th December 2016, 08:31 PM   #55
andy497 is offline andy497
diyAudio Member
 
Join Date: Jan 2013
Quote:
Originally Posted by CharlieLaub View Post
...You are correct in that a lookahead, buffering, and latency are not needed but, as you realized, the only corrective action is a hard limiting of the input signal. Because the driver has mass and thus momentum the cone motion probably will not be able to follow that signal and there will be some overshoot. Otherwise the "flat topped peak" type of limiting will be the result. In a woofer, this will generate harmonics that will probably be objectionable, but maybe not
...
I use the lookahead approach, which allows a slower reduction in the signal, to perform the limiting. With that approach, no harmonics are generated. It's a blameless way to limit the signal, really. But you must incur some latency to do so.
...
A bit of a buffer definitely gives you better and smarter control, and smoothing the on/off transitions certainly seems preferable if you have the option. Since most of the content played on my HT is tv/web streaming and I don't have much leeway with live audio/video sync, I'm still tantalized by the idea that one might be able to do this well with low/no latency. For example it would be neat to be able to completely remove the high pass filter on my vented subs and gain back what's lost at the knee. I guess a first step would be to simulate the application of the filter on some audio files and see how much it mangles the waveforms.


p.s. your plugins look very cool!
  Reply With Quote
Old 18th December 2016, 07:32 PM   #56
CharlieLaub is offline CharlieLaub  United States
diyAudio Member
 
Join Date: Mar 2007
Location: Michigan
Quote:
Originally Posted by andy497 View Post
Definitely a fun idea, and I think it could have some real utility.

After a little contemplation, I'm thinking you could do this with a near zero latency filter. I was originally hung up on the code needing a running integrator/accumulator and some math to decide how much voltage*duration would push the driver over the excursion limit, but then I realized knowing the real T/S and system Q makes all of that redundant.

Here's some screenshots from winisd model of a small sealed sub I have. Blue is the excursion curve given constant voltage. Green is after a linkwitz transform picked to match the shape of the native system excursion curve, which (after arbitrary scaling) yields a roughly flat line (with an added peq for the very low end). The orange curve is with the inverse of the green equalization, and that's actually want we want as our reference.

sensorless DSP cone excursion limiter



Here's the freq/amplitude for the green and orange filters compared:
sensorless DSP cone excursion limiter


Given any input voltage at any frequency, the output of the orange filter will tell you if you're over/under excursion limit.

The thinking is you don't need a read-ahead or look-back buffer. Your dsp simply passes the input samples along untouched, but it is also computing and storing the same stream transformed with the appropriate biquads/IIRs previously derived for the specific system. To identify the hard limit, you play a signal at an arbitrary frequency and increase volume until you reach your desired excursion limit while monitoring the computed value of the transformed signal in the dsp. If you picked your LT/PEQ/biquads correctly, when you change to any other frequency and then adjust volume up/down to match that excursion limit, the transformed signal should show the same amplitude values.

As for limiting, the dsp module/plugin monitors both the input stream and transformed stream. As the amplitude of the transformed one starts to approach the set limit, the input could be just scaled down linearly per-sample, or filtering/smoothing of the clamping could be applied. As the transformed signal starts to recede below limit, you can scale the input back up to full value.

If you did this on a per-sample basis with no smoothing, the effect would be to square off wave-forms and would yield funky harmonics, but I'd be interested to hear how bad they'd actually sound. Ideally it would be engaging only rarely, you'd have the nice upsides of basically no latency and no attack/release artifacts like with a typical limiter. I think you could also do the scaling on the transformed signal (green line above) and gently blend that back in with the raw input to effectively reduce only the offending frequencies, and that still avoids latency from a buffer.

I'd really like to write a vst plugin to play with this idea, but all of the dsp in my theater is done in the digital domain prior to the AVR that sets the final output volume to the amps, so no such luck.
I was re-reading your post. Your approach is essentially correct, however, I am wondering how you were planning to measure excursion or determine the excursion limit? I highlighted the passage in red, above.

If you could accurately measure the instantaneous excursion in real time you could do more sophisticated processing or possibly even distortion reduction. Then this whole Thiele-Small model-based approach that I am using would be unnecessary. As far as I know there is no easy way top do this without resorting to some sophisticated and expensive equipment. For example, Klippel sells a laser based excursion measurement system.

You really only need to measure excursion at some frequency and input power ONCE to calibrate the system. For a somewhat crude estimate of excursion, Linkwitz describes HERE how a paper "wedge micrometer" can be used to measure excursion. The calibration is possible because we are assuming that the system is linear (e.g. follows the TS parameter model). The excursion is then described by a low pass second order filter with Q and corner frequency the same as the highpass character of the driver-in-box, times a single factor that accounts for driver sensitivity, the alignment of the driver, DAC output voltage, amplifier gain, etc. You need only one measurement and you can effectively back-calculate this factor. Because it relies on the eye, the wedge micrometer is pretty crude as far as measurement techniques go, so the estimate of the factor will be very crude as well. Since the TS parameter model is also crude this may be good enough. The other way would be to drive the cone and measure distortion. When it reaches some level (e.g. 10%) at low frequency you choose this (instead of the cone excursion) to determine the factor used in the algorithm. 10% distortion is sometimes how Xmax is determined when the BL curve is not known.

As user soundbloke pointed out, as the voice coil heats up and Re increases, sensitivity falls and the behavior around resonance changes. A more sophisticated system would monitor Re in real time. If the current Re is known, the change in sensitivity, Fc, and Q can be calculated and accounted for in the crossover. This is a more complicated approach, but one that would be more accurate in the long term as Re increases and decreases. Without accounting for changes in Re the estimate of excursion will start to be in error as Re increases and (as soundbloke pointed out) the algorithm will be limiting the actual excursion to some level that is lower than what was assigned when Re was cold. Depending on the average input power level, program material, and other factors this may or may not be a problem. I wrote and implemented a plugin that monitors the signal level and can take corrective action to limit excursion based on that alone. That will likely become the "dumb" limiting algorithm, and the "smarter" one will incorporate some kind of real-time voice coil resistance measurement. The latter could permit continuous adjustment of the signal levels for all the drivers in the system so that they track well as the voice coil of each driver heats and cools. I want to stress that this does NOT mean that the system must INCREASE power to a driver when its sensitivity falls due to Re increases - instead the level to the other drivers could be REDUCED to match driver sensitivities. This would help to prevent runaway increases in power that can end up burning up the VC. Also, the system could include a protection that shuts it down when the VC temp reaches some threshold. Since the system is run by a computer, you can implement whatever type of corrective action that you want or feel is appropriate for your particular system.
__________________
Visit my Audio Web Page <<--CLICK TO LEARN MORE-->> Get my LADSPA plugins

Last edited by CharlieLaub; 18th December 2016 at 07:45 PM.
  Reply With Quote
Old 19th December 2016, 12:55 AM   #57
CharlieLaub is offline CharlieLaub  United States
diyAudio Member
 
Join Date: Mar 2007
Location: Michigan
I thought a little more about what I wrote above and now I am pretty excited! Let me explain why:
First, the cone excursion can be predicted using Small's equations. These predict how the excursion varies with frequency and input power. To know the input power you need to know the input signal to the amp and the voltage gain of the amp. But to know the input signal to the amp you need to know how the internal "digital signal level" is translated into the output voltage from the DAC - let's call this the "DAC gain". The problem is that for some DACs this is different as a function of the load, so it's not necessarily universal. You could, however, measure it.

But if we are going to measure something to "calibrate" the system, why not do this in a more sensible way. Keep in mind that one of the main reasons that I wanted to limit excursion was that in my systems (which are open baffle) the woofer can very easily be driven into over excursion at modest input powers. Over-excursion could significantly increase distortion and result in worse performance overall if the VC was driven far away from the rest position where motor control is poor. If we want to limit distortion, why not just measure THAT directly? This is, frankly, quite easy with today's computer based measurement tools.

If you read the paper by Klippel I linked to in the last post (found HERE) it describes a way to use a multi-tone stimulus to probe inter-modulation distortion at resonance (see page 2, "Practical Usage"). In the past I have generated multi-tone stimuli and measured systems stimulated by it using the freeware program "Visual Analyser" which has oscilloscope and THD measurement capabilities. There are probably other programs that could be used to do this kind of measurement, too.

So, the idea would be to power the driver from the computer system using the DAC and power amplifier that will be used in normal operation. Internally (in the algorithm) the gain factors used in the TS model excursion calculation would be set to 1.0. The multitone stimulus would be processed through the algorithm and the TS-model's excursion level would be output and monitored. At the same time, acoustic measurements would be used to monitor the distortion level. The user would choose some distortion level that they would like to be the "maximum" for the system - let' say for now that this is 10% distortion. When that is recorded by the acoustical measurement system the value that is generated by the TS-model based excursion predictor would be noted. The actual value would be WRONG because the factors of DAC gain or power amp voltage gain were set to 1.0, however, because the system is linear this doesn't matter. We only need to know the corresponding value of what the excursion estimate is spitting out, and scaling this up or down by a factor would not change anything. As long as henceforth the system is limited to this "WRONG" value of excursion the actual system will be limited to a real world excursion level that will result in the distortion not exceeding the 10% limit value that was chosen earlier. This would make distortion level based limiting possible.

Alternately, one COULD measure the DAC gain and the power amp voltage gain and, given a set of TS parameters that describe how the driver is behaving at large excursions predict the real world driver excursion level. Given the driver's Xmax rating, the user could then limit the driver so that the estimated excursion remains below Xmax (or any other value that the user would like to choose).

This provides two alternate ways to calibrate the system - an electrical way and an acoustical way. In fact there could be some mix of both approaches used.

None of this accounts for voice coil heating and how it changes things. But it shows that the system can be set up in various ways that are practical for the DIYer and that do not require very expensive and sophisticated measurement instruments.
__________________
Visit my Audio Web Page <<--CLICK TO LEARN MORE-->> Get my LADSPA plugins

Last edited by CharlieLaub; 19th December 2016 at 12:59 AM.
  Reply With Quote
Old 20th December 2016, 02:06 PM   #58
soundbloke is offline soundbloke  United Kingdom
diyAudio Member
 
Join Date: May 2005
Location: England
Quote:
With that approach, no harmonics are generated
No. The physics is consistent regardless of any delay that is added.

Quote:
Otherwise the "flat topped peak" type of limiting will be the result
There is no difference here to any sort of limiter. But as I have commented before, the excursion is relatively slow rising and a look-ahead limiter by no means guarantees a blameless limiter. In a band-limited sub-woofer, I maintain that a fast onset, one-sided limiter will give the best (in)audible results.

A two-sided response additionally introduces excess phase components that may also contribute audible distortion. The treatment of phase responses at low frequencies remains one of the last improvements in audio performance waiting to be 'discovered' and adding more without good reason seems at odds with a desire to build a blameless device.

Quote:
None of this accounts for voice coil heating and how it changes things. But it shows that the system can be set up in various ways that are practical for the DIYer
Precisely why Birt's simple solution is so good - whether as previously discussed - the feedback is used for offline calibration or online correction.

Quote:
Also, the system could include a protection that shuts it down when the VC temp reaches some threshold.
Indeed it can - or you could implement a genuine rms voice coil power limiter as Birt's solution affords.

And as a final contribution, the more I think about this, the more I am convinced that a low frequency selector would be better than an excursion limiter - which would most likely become a compressor in practical use. A simple detection of excessive excursion requirements (which could be well in advance - and even in advance of programme data starting) could simply set the low frequency roll-off rather than modulate it. This is without question a blameless solution...
  Reply With Quote
Old 21st December 2016, 03:31 AM   #59
kgrlee is offline kgrlee
diyAudio Member
 
Join Date: Nov 2011
Location: Cooktown, Oz
I think we can get too hung up about whether compression, sliding filters etc create audible effects.

If a speaker hits its cone excursion limits, bad things happen, including bad sound. Even the simplest electronic excursion limiter can prevent the bad sound.

A really important example is eg the common 12" bass + fancy horn that is very useful for PA & Sound Reinforcement .. these days often in a small plastic cabinet.

EQ can give these small boxes a truly 'flat' response to 50Hz or better.

But without electronic excursion limiting, you often hear vocals go 'sh sh sh' or worse with every thump of the bass line. What is happening is the 12" has problems playing midrange when hard against its stops.

When you switch in the excursion limiting, you don't lose any bass ... cos the unit was hard against its stops w/o the limiting so couldn't possibly produce more bass. What you hear is the vocals come back undistorted with extra clarity bla bla ... ie the sound is much better.

You don't need super accurate modelling of the excursion, thermal stuff bla bla to gain substantial benefits.

I've designed such systems since the late 70's with some success. My most successful commercial systems were all analogue and crude by your standards but they ALL gave better sound.

The R&D code name for such fancy bass systems was Powered Integrated Super Sub technology but for some reason, Marketing never liked this.

We did a lot of experimental stuff including ACE type systems with Birt temperature sensing and DSP. But in the end, when we listened to the fancier stuff, we always decided the benefits were not worth the (at the time) substantial cost.

For bandlimited stuff like subwoofers, even cruder analogue stuff works well. You can arrange 'instant' limiting with no audible cons.

I've been a beach bum for nearly 2 decades, but regaining contact with civilisation, I'm surprised that some of these cheapo techniques are not more commonplace.

And though cheap DSP power is well beyond what I dreamt of at the end of the last Millenium, not many people know how to use it properly to get better sound.

Last edited by kgrlee; 21st December 2016 at 04:01 AM.
  Reply With Quote
Old 24th February 2017, 05:47 PM   #60
bcodemz is offline bcodemz  Canada
diyAudio Member
 
Join Date: Feb 2014
Can this be adapted to implement equal loudness curves?

I find Audyssey's Dynamic EQ to be quite exceptional in maintaining tonal balance at various volumes. The idea is rather simple. Because of the initial calibration, it knows the exact SPL level at the listening position. It doesn't follow the FM curves. All it does is apply a low shelf filter for the bass and upper treble, nothing in the middle. This is good because matching the FM curves in the midrange IMO messes up the sound quality, but adjusting the 2 extreme ends are very beneficial. The amount is directly dependent on the playback volume.

I essentially want a bass boost and flat high frequencies at low volumes , but as the volume goes up, I want less bass boost as well as less high frequency.

Since there is already a lookahead for the cone excursion, the same lookahead can be used to see the signal level, and apply the appropriate bass boosts and treble cuts for that level. We can have a very good estimate of the listening position SPL level with a simple parameter where it asks the user what SPL are they measuring at the listening position when a -10dB signal is played, and adjust accordingly.

Last edited by bcodemz; 24th February 2017 at 05:51 PM.
  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 06:31 PM
Cone Excursion johnc124 Subwoofers 7 10th April 2009 03:45 AM
Question about cone excursion. perpetual Subwoofers 15 5th May 2005 02:45 PM
calculating cone excursion? Jim85IROC Multi-Way 11 3rd April 2004 09:41 AM
Peak cone excursion Vikash Multi-Way 8 9th July 2003 07:21 PM


New To Site? Need Help?

All times are GMT. The time now is 12:16 PM.


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