We present a particle filtering algorithm, which combines both time-invariant (TIV) and time-varying autoregressive (TVAR) models for accurate extraction of breathing frequencies (BFs) that vary either slowly or suddenly. The algorithm sustains its robustness for up to 90 breaths/min (b/m) as well. The proposed algorithm automatically detects stationary and nonstationary breathing dynamics in order to use the appropriate TIV or TVAR algorithm and then uses a particle filter to extract accurate respiratory rates from as low as 6 b/m to as high as 90 b/m. The results were verified on 18 healthy human subjects (16 for metronome and 2 for spontaneous measurements), and the algorithm remained accurate even when the respiratory rate suddenly changed by 24 b/m (either increased or decreased by this amount). Furthermore, simulation examples show that the proposed algorithm remains accurate for SNR ratios as low as -20 dB. We are not aware of any other algorithms that are able to provide accurate TV BF over a wide range of respiratory rates directly from pulse oximeters.