Analyzing Data with WAVE

For many users, WAVE 's data analysis capabilities will be of greatest interest. WAVE itself does not perform analysis of the signals or annotations it displays. What WAVE offers is an easy-to-use means of controlling external analysis programs and viewing their outputs. The buttons in the Analyze window activate these external programs. These buttons are easy to create - in fact, you can add your own buttons to those in the Analyze window while WAVE is running.

In the previous chapter, we used the \ovalbox{\rule[-.3mm]{0cm}{2.5mm}\small\sf ~Mark QRS complexes~} button to run the standard WFDB application program sqrs. In this chapter, we will see how WAVE controls sqrs, and we will create and test a new button to generate a heart rate signal using sqrs and another standard WFDB application, tach. Discussions of WAVE 's ``logbook'' and ``oscilloscope'' facilities follow, and then we study an extended example of how to develop an analysis program controlled by WAVE , using the C programming language. At the end of this chapter, we explore how this relationship can be inverted, so that WAVE can be driven by an external program.

As before, use WAVE to open record 100s:

    wave -r 100s
Click right on \ovalbox{\rule[-.3mm]{0cm}{2.5mm}\small\sf ~File~\ensuremath{\nabla}~}, click left on Analyze..., and once again, click left on \ovalbox{\rule[-.3mm]{0cm}{2.5mm}\small\sf ~Mark QRS complexes~}. Where does the command that appears in the Analysis Commands window,
    sqrs -r 100s -f 0 -t 1:00.000 -s 0
come from, and what does it mean?

If you refer to the man page for sqrs, sqrs(1) (either by typing `man sqrs' in a terminal emulator window, or by looking it up in the WFDB Applications Guide), you will see that the second command-line argument (100s) is (not surprisingly) the record name, `-f 0' instructs sqrs to start at the beginning of the record, `-t 1:00.000' tells it to stop 1 minute later, and `-s 0' specifies that signal 0 is to be used for QRS detection.

George B. Moody (