Release 1.791 and Portable Speakers

Release 1.791 (located here) has some tools for testing portable speakers & speakers in general. The portable battery-powered speaker segment is very interesting right now, with new class D parts arriving that are using a range of clever techniques to extend battery life. 

This release adds the ability to make a swept sine measurement and apply a window the impulse response of that measurement. This allows far-field speaker measurements to be made in rooms with reflective surfaces. The ability to use a calibrated microphone was also added, as well as a new plug-in for making gated swept sine measurements.

We'll take a look at both of these features to make a frequency response on the left and right channels of a portable speaker called "The Oontz" by Cambridge Soundworks. 

This speaker claims 10W of output power, but beyond that claim, there's not much more in terms of technical specs. For the tests below, the 3.5mm analog input will be used. 

For the test setup, we'll use a calibrated microphone (EEM6) a QA470 Mic Preamp with 20 dB of fixed gain, and a QA401 audio analyzer. Unless noted, the EMM6 was placed 1 meter above the speaker, with the speaker located on the ground and held in a fixture so that's it's firing directly up as shown:


Before starting, let's first make a comparison between ARTA and the QA401 software to ensure the windowing is functioning as expected. Using ASIO401 we can convert the QA401 hardware into a standard audio device. The QA401 can then be used as the audio soundcard in ARTA, as shown below:

Our goal is to generate a sweep and create an impulse response from that sweep so that we can verify the room reflections. And then we'll use that impulse response to generate the response from the speaker and compare that to the new QA401 software. These techniques are well covered by many on the internet, and so the step-by-step procedure won't be attempted here--just the highlights.

First, we use the impulse response button to sweep the Oontz speaker in ARTA and capture it with the microphone. That impulse response is shown below, with some added annotations:

We can see some activity about 500 uS prior to the impulse response, followed by a first reflection that occurs about 6.5 mS after the impulse. Since sound travels around 1200 feet per second, we can calculate this reflection traveled about 7.8 feet, which suggests the reflector was about half that distance (3.9 feet) from the mic and or speaker. And this is correct: There was a file cabinet that was 3.6 feet from the speaker.

And now we can use the Analysis -> Single Gated Smoothed Frequency Response menu to generate the speaker frequency response:

Note that the plot is showing the measurement below about 150 Hz (via yellow bar in lower left corner) is unreliable. This due to the gating interval. Shorter intervals create more uncertainty at lower frequencies--the relationship is reciprocal: the math is simply 1/6.5mS (our gate interval after the impulse) = 153 Hz. In other words, ignore what you see happening below 150 Hz.

OK, so above we used ARTA to create a speaker measurement with a 6.5 mS gate time. How would we do this on the QA401? The Frequency Response context menu has been changed for this release to allow the specification of two new parameters: Window period and Octave smoothing. 

The window period is specified in mS and can be disabled by setting the value to 0. That can be useful if you are performing the sweep in an environment without any reflections (eg an anechoic chamber or a large outdoor area). But most speaker testing will likely be done in an area with reflections. In determining the gate interval, the easiest way to simply measure the distance from reflectors. If you can keep all reflectors 5 feet away from your measurement, then you can ensure a 10 foot path delay. And at 1200 feet per second, this 10 foot distance ensures 8.3 mS to the first reflection, and that would suggest 1/8.3 mS = 120 Hz uncertainty threshold. 

When you specify the gate time, you are specifying ONLY the time after the impulse. The QA401 measurement will always assume a 1 mS pre-impulse. So, a 6.5mS gate time will result in a gate where the impulse 1 mS prior to, and 6.5 mS after the impulse are kept. Everything else is set to zero.

With smoothing set to 1/3 octave (the same used by ARTA), we can run a sweep and compare it to the same measurement made on ARTA. In the plot below, ARTA is on top and the QA401 measurement is on the bottom:

To ensure the Y axis was comparable, some offsets were entered in the QA401 to align the curves. This is because ARTA uses relative measurements unless you go through a tedious calibration procedure. The point here is that the resulting spectrum measurement compares very favorably between the QA401 and ARTA.

With the comparison to ARTA finished, let's move on to graphing a far-field measurement of the left and right channels of the Oontz speaker. 

In setting up the system, the first thing we want to do is load our mic calibration file. This is done by a control-click on the User Weighting button to open the user weighting context menu.

In the context menu we can import the calibration file for the microphone directly, without any changes.We can verify the calibration is being applied as expected by running an FR sweep. Below, you can see the result of an FR sweep run at -20 dBV with the QA401 in loopback and the User weighting applied:

Because the calibration file is specified relative to 1 kHz, we can see the adjustment at 1 kHz is 0, and the amplitude of the -20 dBV sweep remains untouched.

But at 20 kHz, note that the level is reported at -27.4, or about -7.4 dB below the sweep level of -20 dB. This is because the calibration file reported a gain of 7.4 dB at 20 kHz. 

Before we start with actual measurements, it's always good to first run measurements to understand if the system has any linearity issues. For example, algorithms in modern Class D amps can limit output current if they sense current slew rates are exceeding a threshold (indicating the speaker inductance has become saturated). Or there could be a DSP that is compressing the signal. Regardless of the approach, the surest way to determine you aren't surprised by some processing is to do a sweep of the DUT at different levels and look for any telltale compression artifacts. 

Below is a sweep of the speaker at inputs ranging from -30 dBV to 0 dBV. The 0 dBV level is basically line level for most consumer products. It's loud, but not exceptionally loud. The plot shows the measured response (without mic calibration applied) with minimal 1/12th octave smoothing for a range of input level sweeps. Note that spacing between the -30 dBV sweep and the -20 dBV sweep: It is uniformly 10 dB at every point. But look at the difference between -10 dBV and 0 dBV: The spacing is around 7 dB at 1 kHz, and 1 dB at 10 kHz. This is a warning that the system is in compression--it could be due to smart algorithms, or it could be due to the hardware running out of steam. But if our aim is to learn about the speaker response, we'd want to stay out of the region between -10 dBV and 0 dBV. And in fact, we can see around 12 kHz that the peak with -10 dBV input appears blunted compared to the -20 dBV level. So, we'll stick to -20 dBV for the response testing.

As a final check, we can confirm the setup is correctly aligned by applying a -20 dBV 1 kHz tone to the speaker (with right channel muted). A handheld sound meter reported -75 dBSPL (fast response, A weighting) at the microphone. The measured response appears as follows:

Notice the mute indicator (indicating at least one channel is muted and ensuring we aren't measuring the output from both the left and right speaker) and note the incoming level of -40 dBV. This is the level after the 20 dB of mic gain, so this means the mic is actually seeing -60 dB, or about 20 dB below its 94 dBSPL reference. This means the mic is seeing 74 dBSPL, give or take, which agrees with the meter. Because this measurement is being done in a room with reflections, would might easily expect it could vary several dB on either side. But to a first order, the QA401 setup agrees with the handheld dBSPL meter. 

Now, let's run a FR sweep at -20 dBV and a 6.5 mS window:

There are a few items to note above: First, muting is applied to ensure we're only measuring one speaker of the stereo pair. Second, the window is set to 6.5 mS and minimal 1/48th Octave smoothing is applied.We can also see that the User weighting is applied with the EMM6 calibration file applied. 

We can see the level at 1 kHz is about -45 dBV. This is about 5 dB below where we measured with the 1 kHz tone. But remember, in a room with reflecting surfaces, the value you measure with a constant tone can be amplified or attenuated by +/- 10 dB fairly easily. With the windowing applied, we're ignoring all room reflections. Thus, the -45 dBV figure is much more reliable than the un-windowed single tone measurement. 

Now, let's do a sweep with the WindowedFreqResponseChirp plugin:

The menu for that plug-in is as follows:

The settings we're using are shown above. The -20 dBV is our desired sweep level into the DUT. The window size of 6.5mS was determined above and is a function of the distance of nearby reflective surfaces. The offset will take us from the world of dBV to dBSPL. And the math is easy: The mic has an output of -41.2 dBV for a 94 dBSPL stimulus. The pre-amp has 20 dB of gain, which means 94 dBSPL gives us -21.2 dBV of signal. And we'd like that -21.2 to actually give us a 94 dBSPL reading. This is 21.2+ 94 = 115.2. We've also muted the right channel output to ensure we're looking at just the left speaker. 

Running that plugin gives us this raw plot:

We can repeat the run for the right channel by simply changing the muting on the plug-in:

The right channel plot can be added to the same graph, and with a bit of clean-up in the graph tool we get the following:

The speakers appear to be pretty "hot" in the 3 kHz to 10 kHz region, which isn't surprising given the small size. Matching is reasonable. At 1 kHz, the output is about 70 dBSPL, which means to hit 90 dBSPL you'd need another 20 dB of signal. And we know from the measurement above this will put the Oontz into compression. So, you might estimate a reasonable upper-bound listening level for these speakers is in the 80 to 90 dB region measured at 1m. Given the size and cost, this seems a reasonable trade-off. 

If you liked the post you just read, please consider signing up for our mailing list at the bottom of the page.