[0. Introduction]
[1. Data Inspection]
[2. Net Wave Intensity]
[3. Ensemble Averaging]
[4. Wave Speed]
[5. Wave Separation]



A practical guide to wave intensity analysis

Kim H. Parker
Department of Bioengineering
Imperial College, London



0. Introduction

This is meant to be a practical guide to the application of wave intensity analysis to clinically or experimentally measured data. The theory of wave intensity analysis is the subject of my Introduction to Wave Intensity Analysis pages. Eventually, I hope to cross-link to the relevant sections of theory, but that will have to wait until I finish this practical guide.

Since I use Matlab for data analysis, all of the examples are given as Matlab scripts. Matlab is a very convenient, but very expensive, bit of software. Since wave intensity analysis uses only a small fraction of the power of the full Matlab package, it seems a shame that there is not a cheaper, equally convenient alternative. Unfortunately I do not know of one and so we are stuck with Matlab until someone gets around to generating wave intensity analysis programs in some public domain software (such as Python or Java). I will continue to concentrate on the development of wave intensity analysis but would encourage (and support) cheaper and more accessible programs.

[Added 26/02/2015] I have recently been contacted by Alicia Quiros Carretero from Madrid who has translated the Matlab code presented below into R, an open source computer language which is available as part of the Gnu project. She has kindly given me permission to include her program on my web pages (see below for the link). I hope that this stimulates others to develop wave intensity analysis in open software form so that it can be made available more widely, particularly in the clinical environment where Matlab is not generally available (or affordable). Thank you Alicia.

For the bulk of the work contained herein, we will analyse sample data. These data are measurements of pressure and velocity in the abdominal aorta made by my cardiological colleagues at St. Mary's Hospital in the Imperial College School of Medicine. The data were collected with all of the appropriate ethical safeguards including informed consent in a patient undergoing catheterisation to study idiopathic chest pain. They are 'real' data but I intentionally give little information about them so they cannot be used to represent any particular condition. They should be considered as 'generic' data typical of the type of data that is measured clinically. The data in text format can be downloaded by using the links at the bottom of the page (use the 'save link as' option on your browser) and are provided so that anyone interested in trying out the programs can download both the data and the scripts used to generate the examples in these pages.

The program used to generate all of the results in these pages can also be downloaded following the link at the bottom of the page. The portion of the script used to generate particular results are contained in cells (sections of script delineated by %% at the start of a line). In the more recent versions of Matlab these cells can be evaluated separately by clicking on the appropriate menu button (or pressing Ctrl-Return). If you are using an older version of Matlab, you can get the same effect by copying the script into the command window. This format is convenient because all of the different bits of wave intensity analysis can be combined into one script and you can calculate only the parts that you are interested in, assuming of course that you have already calculated the necessary variables.

The format of the pages will be to show the script used to calculate some particular results and then to show the results of this script applied to the sample data. The actual calculations are generally very simple and compact. In almost every case, the script used to generate the figure illustrating the results is much longer than the script used to calculate the results. I am a firm believer in plotting interim results in the development of a program. A simple plot will tell you immediately if your program is producing what you think it is. These plots, however, quickly become tedious when you have successfully tested that bit of the program. For these reasons, I have commented out almost all of the figures so that the user does not get dozens of plots of all of the intermediate stages of the analysis every time the program is run. It is easy to restore the plots by 'uncommenting' the lines that produce the figures (i.e. remove the %'s from the start of the appropriate lines of script.

Wave intensity analysis involves the solution of the 1-D equations for the conservation of mass and momentum in an elastic tube whose mechanical properties are give by a 'tube law' relating the pressure and the area of the tube. The dependent variables for these basic equations are pressure P, volume flow rate Q and cross-sectional area A, and the independent variables are distance along the tube x and time t. Using the tube law we can eliminate any one of the dependent variables from the conservation equations to give a second order system of partial differential equations in two dependent variables. Historically we chose P and U = Q/A as the dependent variables since these were the quantities that were generally measured clinically. With the introduction of newer clinical measurements it is frequently more convenient to preform wave intensity analysis in terms of other variables. For example, MR can be used to measure both Q and A and so it is convenient to use wave intensity analysis in terms of these variables. Eventually I hope to include some examples of these analyses, but initially all of the examples will be in terms of the 'historical' variables P and U.

Finally, the emphasis of these pages is on the analysis, not the format. Everything is written in very basic html and tested using the latest version of Firefox. I hope that different browsers do not wreak too much havoc with these pages. If anyone experiences real difficulties, please contact me so that I can find a way around the problem. Similarly, I would be grateful for any corrections and comments from anyone using these pages.

Vesalius (1554)

Links to scripts and sample data

Matlab script

R script

Abdominal aorta data
     1. pressure
     2. velocity
     3. ECG

Happy analysis.

Kim H. Parker
31 Dec 2012
(last updated 09 Aug 2013)

1. Data inspection