So this is going to be a Part II to my original post from 14 years ago where I first discussed the topic of proper subsonic filter design in conjunction with subwoofer enclosure modeling. It’s been a while, but I recently got around to actually doing what I said I was going to do all those years ago. While my specific example incorporates this super-old (and no longer available) EV XEQ-2 crossover, the methods employed herein are practical for anyone looking into subsonic filter design, how it works, and the best way to incorporate it into you next sub project without sucking the life out of your bass. And more recently since the availability of online, web-based simulation tools, such as National Instruments MultismLive, taking the guesswork out of active filter design is a thing of the past. So let’s get into it!
I’ll do a quick re-cap of my previous post on this topic, but the main idea behind this post is to show how to design subsonic filters and then how to model them into a subwoofer design before you even buy or build anything. The two main tools for achieving this are NI’s MultismLive and Unibox 4.08. Unibox is a bit dated for speaker enclosure design and runs in Excel, which not everyone uses, but is my favorite box simulation software of choice. I took a stab at using WinISD to do this, but it doesn’t provide the option to import .frd files to create custom filters. You can create simple filters using the built-in filter tool, but is limited to certain prescribed filter types. Plus it’s not obvious how to go from the simulation to a real-world active filter, unless you’re building a system with DSP. Unibox 4.08 on the other hand will let you import .frd files which can have any shape, slope, Q, response, etc. you can come up with.
So with that let’s start out with this simple example, which is based on a sub I built several years ago, so we can see how it all plays out. First we’ll start with a simple simulation of the driver and enclosure. In this case I’ve got a Dayton Audio RSS315HF-4 in a 95-liter enclosure tuned to 22 Hz. This looks pretty good in the simulation, has a decent f3, a nice and flat in-band response, without any peaking or drooping, but if you look at the excursion below 19 Hz, you can see that Xmax is widely exceeded, as is the assumed Xmech. Regardless of the driver and enclosure, this is a pretty common behavior that will occur with any vented design. Passive radiator designs are bit better and sealed designs are even better yet, but they too can benefit from a properly designed subsonic filter to accompany them. So even though this sub is already tuned pretty low, if you didn’t want to implement a subsonic filter, you could argue three points: 1. there is little source material that is actually going to push the sub to those levels below 20 Hz and 2. most if not all amplifiers are not even flat 20 Hz, meaning below 20 Hz the amp is starting to roll-off anyway, thus limiting the actual excursion at the driver and lastly 3: eh, it’s just modeled data, who really cares? All valid, but flawed points on their own. A subsonic filter should be implemented to keep the driver under control below tuning to prevent possible driver damage, lower distortion, and keep the amplifier happy (i.e., possibly going into protect mode during playback and interrupting your movie/music).
The biggest problem with subsonic filters is by design, they limit excursion, and in doing so if not set to the correct frequency, will limit the output at and above tuning, which we do not want. Steeper slopes can help, but also make the filter more complex. In this case I am using a fairly simple 12 dB/octave active filter that requires only one op-amp to implement. So how do we determine where to set the corner frequency of this subsonic filter? Well, that’s where MultismLive comes into play. I built a model of the exact crossover that makes up the EV XEQ-2 and ran an AC simulation which lets you see the exact response of the filter. I show that circuit here, which is made up of an input buffer stage, which can be set just about any gain with no EQ, there’s an 18 dB/octave low-pass filter which can be set to any frequency desired, and then there’s the 12 dB/octave high-pass filter (the subsonic filter) which also can be set to any frequency and any Q desired. The input stage is unity gain, and provides a good buffer stage to the source, the LPF stage is set to about 90 Hz, but can be adjusted as shown with three resistors and last stage is the subsonic stage which is set by only two resistors. Depending on the values selected, you can actually create a bass boost circuit, which can be used to model bass boost circuits of common plate amps to see how they will sum with your enclosure, which is what I did with my Sonorous 10S subwoofer. But for this vented sub box, we want zero boost, in fact the ideal roll-off is where the Q=0.7 which can be achieved by changing R9 and R11 at a ratio of 1:2.
So I played around with a bunch of resistor values for gain, LPF and HPF and ran an AC simulation for each one to get an idea of different frequency responses that can be achieved. You can click on this link here and play around with the simulation and model some filter cutoff frequencies of your own. But we’re not done yet. MultismLive lets you export the data into a .csv file which this is where the whole design gets interesting. With that exported file, we can now import that into the Frequency Response Active Filter section of Unibox and actually see how the HPF affects the box response and how it affects the driver excursion. I created about 10 different filters, and imported each of them into Unibox and then compared them all see which one looked the best. And by looked the best, basically what I was shooting for is best control over excursion below tuning, but with minimal impact to frequency response above tuning. Go too low, and excursion is still too high, but FR is minimally impacted, go too high and excursion looks great, but FR suffers. The balance is basically somewhere in the middle. By plotting all of the options, we can better choose where we want this subsonic filter to sit. But even Unibox has limitations, one being you can’t compare more than 6 responses, and you can only compare FR plots and nothing else. So I exported the raw data from Unibox into my own worksheet in Excel where I plotted several configurations and overlay excursion and FR plots on the same graph. I’ve shown that here for this example design. Notice that a filter corner (-3 dB) of 20 Hz does the best at keeping excursion in check, but also has the most impact on FR. The 12 Hz corner is better than no filter at all, but still allows over-excursion. The sweet spot is probably right around 15 Hz or 17 Hz. So that’s the optimum subsonic filter corner for this subwoofer. And that’s the design. Short and sweet.
Now one really cool feature with the XEQ-2 is it has this big ‘ole 6P2T switch that allows 6 different possible filter options to be implemented and with the click of a switch, you can select which one you want on the fly. I bought a massive resistor kit from Amazon and modeled the responses of the standard values available in that kit and came up with 6 different subsonic filter options starting at 14 Hz and going up to 22 Hz in ~2 Hz increments. I opened up the unit and pulled the circuit board out and removed the 12 resistors which made up the original subsonic/bass boost circuit and replaced them with the values shown here. Once that was completed, I increased the two resistors in the unity-gain buffer stage to make it more like 2.3 dB gain just so it would work better with my Yamaha receiver and the Crest Audio Vs900 power amp’s input sensitivity. Pro amps tend to need more voltage than home audio receivers want to deliver so a couple of dB gain seemed reasonable. Once I got the XEQ-2 all modded up, I ran some sweeps using REW to see how close the simulations came to the actual measured response. It looked pretty darn close! But wasn’t perfect, the actual f3 turned out to be about 2 Hz lower than the simulation, so my predicted 22 Hz subsonic filter ended up being more like 20 Hz and so forth all the way down to 12 Hz. Not sure the reason for the delta. Probably the fact that I was mostly just eyeballing the -3 dB point based on some middle frequency that looked like the flat area and counting down 3 dB from there. Once combined with the low-pass filter, the actual flat spot becomes harder to see, plus the LPF starts rolling things off too so the real 3 dB point is somewhat more arbitrary in practice because neither filter is allowed to reach its actual 0 dB pass-band range. Something to consider, but as with most simulations, they are never perfect, and actual measurements are ultimately what matter.
And last but not least, I measured the subwoofer connected to the amp, connected to the subsonic filter to get a final measured enclosure response and compared it to the Unibox model to see how close everything lined up. I created this graph here which attempts to show all of these steps, from the simulation of the filter, to the measured filter, to the simulation of the enclosure with the filter, to the measured enclosure with the filter. They are separated on purpose so visually you can view them better. But overall I think the predictions turned out very close. Oddly enough the actual measured roll-off is slightly shallower than the predicted roll-off. Mathematically we should be at a 42 dB/octave slope: 6 dB for the amplifier, 12 dB for the subsonic filter and 24 dB for the 4th order vented enclosure. That’s a 7th order filter slope right there. But my guess there is some room gain sneaking in masking the slope a bit making it look shallower. But still, that is a real effect, room gain counts as gain just the same and I did not model room gain, since the Unibox simulation assumes anechoic. If I had taken the sub outside I could probably have gotten a more accurate representation of the modeled response. Or I could have played with room gain FR sims and added those into the prediction as well. Maybe another time.
And that’s about it. I stuck a little sticker on the crossover to indicate which switch setting provided which subsonic filter corner. I’ve settled on using the 17 Hz setting for now since it looked the best from an excursion perspective and causing minimal negative impact to the frequency response. With my upcoming sub project, I think the 12 Hz or 14 Hz settings are going to be better. I don’t know how practical this really is for most people, since if you’re going to play with subsonic filters, it’s probably going to be with a MiniDSP or similar, since no one really uses analog op-amp-based active filters all that much. But I thought it was a fun little topic that’s always interested me. Plus it’s fun being able to figure out how to simulate as much of the speaker designing process as I can and subsonic filtering never gets much love in this regard. Maybe the next sub you design you’ll think about whether or not you should incorporate a subsonic filter and the benefits that can be achieved by making sure it’s dead matched to your sub’s response and excursion needs as best as possible. Thanks for reading!
Schematics, Simulation Data and Pictures