An intelligent, rule-based processor provides recognition of individual pulses in a pulse oximeter-derived photo-plethysmograph waveform. Pulse recognition occurs in two stages. The first stage identifies candidate pulses in the plethysmograph waveform. The candidate pulse stage identifies points in the waveform representing peaks and valleys corresponding to an idealized triangular wave model of the waveform pulses. At this stage, waveform features that to not correspond to this model are removed, including the characteristic dicrotic notch. The second stage applies a plethysmograph model to the candidate pulses and decides which pulses satisfy this model. This is done by first calculating certain pulse features and then applying different checks to identify physiologically acceptable features. Various statistics can then be derived from the resulting pulse information, including the period and signal strength of each pulse and pulse density, which is the ratio of the analyzed waveform segment that has been classified as physiologically acceptable.