Simple RLC meter (Fourier transform part 3)

As an application of the FFT algorithms I present here a simple RLC meter that is able to measure resistors, inductors, capacitors with a reasonable precision. It uses a simple circuit in which a known frequency is sent to a R+Z circuit (where Z could be R, L, C) and then the current and voltage on the Z are measured. The current is indirectly measured by actually measuring the voltage on R.

A PC sound card is used to output the test signal on line-out and also to do acquisition of the measurement signals through line-in.

Two frequencies are used, a low one and a high one for cases where Z is too low or to high.

A calibration is performed with DUT (Device Under Test) unplugged. It will measure the impedance of the circuit and use it subsequently to adjust the DUT measurement.

The time domain signals acquired from the sound card are transformed into frequency domain using FFT and so they become complex signals. Then you could do calculus using DC current methods.

Impedance calculation:

u_L[N] – time domain channel left

u_R[N] – time domain channel right

U_L[N] – frequency domain channel left

U_R[N] – frequency domain channel right

Z = R\frac{U_L}{U_R - U_L}

During calibration the program stores Z_{calib} and then on the DUT measurement it will calculate correct impedance with:

Z_{DUT} = \frac{Z_{mes}Z_{calib}}{Z_{calib} - Z_{mes}}

Note on frequency domain:

FFT will use a number of N points for its calculation which corresponds to maximum frequency of the signal, N/2 corresponds to Nyquist frequency. Therefore if the signal has frequency f you could calculate which point corresponds to this frequency:

k = f \frac{N}{r}, where r is the sampling rate.

Going from complex to real:

\mid Z \mid = \sqrt{Re(Z(k))^2 + Im(Z(k))^2} and

tg(\phi) = \frac{Im(Z(k))}{Re(Z(k))}

Now you could determine whether the DUT is R, L, C based on tg(\phi).

The program runs on Linux with ALSA, alsa-utils, fftw installed.

Source code is distributed under GNU GPL public license and can be downloaded from RLC meter source code.

One thought on “Simple RLC meter (Fourier transform part 3)

  1. What accuracy you get for capacitors over 1000 micro farads, and ESR lower than 0.1 ohm. Because there are many programs for windows like this one, buuut they are not accurate. Also can you tell me if the measurement is stable, or numbers are changing all the time ? Can i use this device for measuring ESR of capacitor ? Thanks

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>