Introduction: Thoracic Impedance

The measurement of resistance in the chest cavity is utilized as a diagnostic tool for several diseases. It can be used to detect abnormal values of impedance in the chest cavity due to fluid accumulation and decreased lung volume. These conditions are indicative of diseases such as pulmonary edema. We developed an instrument that is able to determine thoracic impedance in a quick, noninvasive way through the use of an AD5933 microcontroller.

Step 1: Effects of Lung Volume on Thoracic Impedance

One of the sources of literature we consulted shows how the lung volume effects the value of thoracic impedance. The differing lung volumes caused impedance to vary by about 1 ohm from the residual volume.


Fein, Alan, et al. "Evaluation of transthoracic electrical impedance in the diagnosis of pulmonary edema." Circulation 60.5 (1979): 1156-1160.

Step 2: Block Diagram

Step 3: Requirements, Specifications, and Goals

In order to prove that our instrumentation determines a person's thoracic impedance, we will demonstrate how the value of impedance changes at three different lung volumes: total lung capacity, functional residual capacity, and residual volume. The impedance value should vary about 1 ohm from residual volume to total lung capacity. As the volume of the lungs increases, the chest impedance increases.

By running a current of 10 µA at a frequency of 100 kHz across the chest and measuring the voltage drop from the first electrode to the second, we are able to calculate the impedance of the thorax.

Our instrument will take three measurements of thoracic impedance, one at total lung capacity, one at functional residual capacity, and one at residual volume. The impedance value taken at functional residual capacity will be the center value, and the other values taken at total lung capacity and residual volume will be about ± 1 ohm.

Step 4: Sensor Operation Principles

When prompted by the user, the arduino code triggers the AD5933 to perform a frequency sweep. For our purposes, we did not want to sweep over a large range of values, so we coded the AD5933 to begin a 10 point sweep at 100kHz and increment by 1Hz. The frequency generator of the AD5933 is then able to excite an external impedance with a known frequency. We are able to determine unknown impedances using this configuration through the calculation of a gain factor with a known calibration resistance value. Using this calibrated gain factor and the impedance magnitude value measured by the AD5933, we can back-calculate an unknown impedance value.

The AD5933 can only accept a range of voltages from 0 to 5V, so we have to offset the sinusoidal voltage input coming from the instrumentation amplifier stage. We want a peak-to-peak voltage of 2V, so in order to keep that value in the range of [0,5V] we must add a 2.5 V offset to the instrumentation amplifier stage of the circuit. This ensures that the peak-to-peak voltage stays within the acceptable range for the AD5933.

We also must utilize pull-down resistors between the arduino/circuit interface. These resistors ensure that inputs to the arduino settle at expected logic levels if external devices are disconnected. These resistors are connected to ground and hold the logic signal near zero volts when no active device is connected.

Step 5: Circuit Diagram

This circuit, depicted in the figure above, consists of four main parts:

1. AD5933

2. High Pass Filter

3. Voltage to Current Converter

4. Instrumentation Amplifier and Reference Voltage Generator

These parts will be discussed in detail in the following sections.

Step 6: AD5933

As touched upon earlier, the AD5933 is a microcontroller that combines an on-board frequency generator with a 12-bit, 1 MSPS, analog-to-digital converter. The input of the AD5933 is the amplified differential voltage from the two electrodes attached to the chest of the patient. As discussed earlier, this voltage must range from 0-5V. The gain of the AD5933 is set by the External Feedback Resistor (RFB). For our configuration we used a 1000 ohm resistor for RFB. The output of the AD5933 is the generated voltage and frequency which enter directly into the high pass filter.

Step 7: High Pass Filter

Our next stage is the high pass filter, which allows us to remove low-frequency signals coming from our AD5933. We chose to use a resistor value of 20 kohm and capacitor value of 100 nF in order to achieve a cutoff frequency around 500 Hz.

Step 8: Voltage to Current Converter

Our next stage is a voltage to current converter. This stage is imperative because it allows us to attenuate the current before sending it through a person's body. It is VERY IMPORTANT that you send less than 4 mA of current through the body or else you WILL GET INJURED! The current amplitude is determined by the resistor Rcurrent (100 kohm). We read several papers about thoracic impedance instrumentation and decided to go with a current of 10 μA which would not harm the body, but would allow us to get an acceptable impedance reading. We have an additional resistor Rprotect (10k) that shields the body in case something tragic happens.

Step 9: Electrode Placement

We placed the electrodes on the body using the above configuration. The electrodes delivering current to the body should be placed above one collar bone at the base of the neck and the center of the abdomen right above the belly button. The voltage sensing electrodes should be placed above the second collar bone at the base of the neck and near the base of the sternum.


Step 10: Instrumentation Amplifier and Reference Voltage Generator

The final stage is the instrumentation amplifier and reference voltage generator. An instrumentation amplifier is ideal for our configuration because it is able to amplify a voltage difference from a very small current source. We chose resistor values to achieve an overall gain of 3. The voltage-measuring electrodes are inputted into the instrumentation amplifier. We implicate the offset voltage necessary for the AD5933 in this stage as well. By setting the reference voltage of the instrumentation amplifier to 2.5 V, we ensure the acceptable range. This offset voltage was achieved by using the 3.3 V source pin from the arduino and a voltage divider with resistor values R1=1kohm R2=3.2kohm in order to achieve 2.5V. The output of the instrumentation amplifier is then fed into the AD5933 input.

Step 11: Software Interface

We tweaked an already established arduino code used to run the AD5933 micro-controller.The arduino code specifies the start frequency, frequency resolution, and number of increments over which to sweep. For our microchip, we wanted to keep the frequency as close to 100 kHz as possible, so we chose to begin our sweep at 100 kHz and increment by 1 Hz over 10 points. In essence, the AD5933 will begin at 100 kHz and end at 100.01 kHz, measuring at every 1 Hz. The AD5933 always measures its temperature as well, as a safety mechanism. In order to register the program, the user must enter "A" into the serial monitor. Then by entering "B" the user prompts the AD5933 to measure its temperature. The temperature is serial printed into the serial monitor. Then when the user enters "C" into the serial monitor, the AD5933 runs its frequency sweep.

Originally, the code outputted several values when this command was completed. The serial monitor would display the frequency, magnitude, resistance, and reactance (all values measured by the AD5933 during the each point in the frequency sweep). Since we were only interested in the impedance, we entered several algebraic formulas into the code in order to calculate impedance from the values found in the sweep. We first calibrated our AD5933 in order to calculate our gain factor (discussed in depth in the next step), and then used that value in our algebraic formula in order to print the impedance of the body in the serial monitor.

Impedance = Magnitude / Gain Factor

Step 12: Calibration

In order to calibrate our system, we attached a resistor of a known value where the voltage-measuring electrodes for the body would normally go. We consulted several scientific articles and chose a 22 ohm resistor as an indicator of healthy thoracic impedance. We ran the arduino code 5 times using this resistor value and calculated the average gain factor from those 5 trials. This is the gain factor we then used to determine impedances of unknown values using the electrodes.

Gain Factor = Magnitude / Impedance

Step 13: Completed Circuit