Vibration responses of nonlinear or time-varying dynamical systems are always nonstationary. Time–frequency representation becomes a necessary approach to analysis such signals. In this paper, a nonstationary vibration analysis method based on continuous wavelet transform (CWT) and Wigner–Ville distribution (WVD) is presented. In order to avoid the cross-terms in the original WVD, a time–frequency filter created by wavelet spectrum is employed to filter the time–frequency distribution (TFD). This process eliminates cross-terms and maintains high time–frequency resolution. The improved WVD is applied to both simulated and practical time-varying systems. Bat echolocation signal, train wheel vibration, and bridge vibration under a moving train are used to assess the proposed method. Comparison results show that the improved WVD is free of cross-terms, effective in identifying time-varying frequencies and is more accurate than the wavelet time–frequency spectrum.