Abstract: Rolling-element bearing faults are the most frequent faults in induction machines. This paper proposes a bearing fault characteristics extraction and fault diagnosis algorithm which is named as the SWPHT algorithm. Firstly, stationary wavelet packet transform was used to pretreat the signal and thus the signal was decomposed into low- and high-frequency sub-bands. Subsequently, Hilbert transform was used to obtain the instantaneous frequency and instantaneous amplitude of the low- and high-frequency sub-bands. Finally, the proposed SWPHT algorithm adaptively selects the path of signal decomposition and extracting the characteristic frequency components for fault diagnosis. The simulations show that the SWPHT algorithm provides sufficient frequency-amplitude fault information with the less computational workloads and data storage spaces. The algorithm also has a good anti-noise performance.