A signal processing technique for estimating the frequency of a pulsatilesignal (including but not limited to pulse oximetry signals) is disclosed.Each of the functions contained within a pre-selected set of functions iscompared to the input signal at many different time-shifts, and thefunction/time-shift combination that best matches the input signal isselected. The frequency of the best-matching function is then used as the bestestimate of the frequency of the input signal. Optionally, once a function hasbeen selected, the rising portion of the selected function can be correlatedin time to the rising portion of the input signal. Improved results can thenbe obtained by basing the oxygen saturation level calculations on samplestaken from the rising portion of the input signal.