Measuring Loudspeaker Impedance with IOScope
Today, a new video, Measuring Loudspeaker Impedance with IOScope, was published on this site, as well as on the Faber Acoustical YouTube channel. The video is both a demonstration of IOScope, as well as a simple tutorial on measuring loudspeaker impedance. Although the video is largely self-explanatory, I thought it would be beneficial to include some further explanation and tips for those who are interested. The movie is essentially broken into four chapters and a similar format will be followed here.
What is impedance? How is it measured?
By a generalized version of Ohm’s law, we understand that voltage is equal to the product of electrical current and impedance. This means that electrical impedance is equal to the ratio of voltage and current, or:
Z = V/I
where Z represents impedance, V represents voltage, and I represents current. This means that we can calculate impedance as long as we can measure voltage and current. Voltage is easily measured from the iPhone’s audio inputs, but how do we measure current? By returning to Ohm’s law, we see that if we measure the voltage across a resistor (a known impedance), we can compute the current by I=V/Z. So, as long as we have a known resistance and a means to measure the voltage on both sides of it, we can effectively measure current.
Although audio signals come into the iPhone as voltages, those voltages get converted to digital values. In order to measure voltage correctly within IOScope, we need to perform some type of calibration that will define the relationship between the digital values and the actual voltage reaching the iPhone audio input jack.
As is demonstrated in the video, voltage calibration in IOScope can be easily achieved by measuring the voltage going into the iPhone with an rms voltmeter. Once the rms voltage has been measured with the voltmeter, that measured quantity should be entered into the Ref Input Level text box of IOScope’s calibration screen. All that’s left is to press the Calibrate button and confirm the action–IOScope will automatically compute the audio input device’s voltage sensitivity.
- The accuracy of the calibration will largely depend on the accuracy of the voltmeter.
- In the video, IOScope’s built-in signal generator is used to produce a single tone with a frequency of 1 kHz. As long as the tone is turned on in the Excitation tab of IOScope’s main screen, the signal will be output when the calibration screen appears.
- When entering values into a text box in IOScope, you can enter unit magnitude prefixes, like m for milli, or u for micro. For example, in the video, “618m” is entered into the text box for 618 millivolts. Alternatively, “.618” could have been entered for the same value.
- When performing a voltage calibration, you need to be sure that the input device or input channel units are set to V (for volts).
When working with a stereo input device, like the Belkin TuneTalk Stereo that was used in the video, IOScope adds a special third channel to the device. That channel is the difference between input channel 2 and input channel 1. Such a channel enables convenient measurement of current by measuring the voltage difference across a resistor. Since the previous voltage calibration was performed at the device level, which means that the calibrated voltage sensitivity applies to all input channels, calibrating the difference channel for accurate current measurement simply requires you to enter the value of the resistor you will be using. In this case, the resistor was measured to have a resistance of 999 ohms. Instead of using the Calibrate button on the channel calibration screen, the known sensitivity of 999 Volts per Amp can be entered directly into the Input Sensitivity text box.
How do we know the sensitivity of the Ch2-Ch1 difference channel should be 999 V/A? Again, Ohm’s law gives us the answer. Since V=IZ (or, in this case V=IR, where R is resistance), if we put 1 amp of current through a 999 ohm resistor, we should read 999 volts, or 999 volts per amp.
- When performing a current calibration, you need to be sure that the input channel units are set to A (for amps).
Setting up the loudspeaker measurement
As I indicated before, in order to measure the impedance of a loudspeaker, we need to measure the voltage across the loudspeaker’s terminals and the current flowing through them. Measuring the voltage across them is as simple as connecting one of our input channels to the terminals. However, we need a little help from Kirchoff’s current law to understand that if we put a resistor in series with the loudspeaker, the electrical current through the resistor and the loudspeaker will be identical. Since we’re already prepared to measure current across a resistor, we’re good to go.
- IOScope’s Measurement Configuration screen provides a simple graphic representation of the measurement, which makes it easy to identify which input channel should be which. Since we’re measuring loudspeaker impedance, which is equal to V/I, we set the Y signal to Input Channel 1 and the X signal to Input 2 – Input 1.
- The proper connections of the signals to the loudspeaker are shown in the video (at 3 minutes).
- Again, the built-in excitation signal is employed, although this time it is in the form of a logarithmic frequency sweep. The length of the sweep corresponds to the length of the FFT used by IOScope, which allows excellent results to be obtained with little or no averaging (which is also evident in the video).
Making the measurement
Once things are configured, making the measurement just takes a tap of the start button in the toolbar of IOScope’s Frequency tab.
- A double tap in the vertical axis label region of the display will toggle auto scaling on and off (it’s on by default).
- Notice that the magnitude measurement is displayed in units of ohm’s (IOScope is smart enough to know that volts divided by amps means ohms).
- The video also demonstrates saving the frequency domain data into a .mat file, which can be downloaded from IOScope onto a Mac or PC, via a web browser. Data contained in .mat files can be loaded in to MATLAB, Gnu Octave or FreeMat.