Text this: Adaptive machinery fault diagnosis based on improved shift-invariant sparse coding