In this paper, a new method based on Hilbert transform is proposed to detect the power swing and faults occurring during the power swing. The proposed method operates independently from the system parameters. As well as, this method has the ability to detect different types of power swings, including stable, unstable, and multi-mode power swings, and also can differentiate the power swing from the faults for blocking or unblocking the distance relay. In order to evaluate the proposed method, various types of power swing and simultaneous faults are simulated in DIgSILENT software and then using the obtained matrix data from the current signals, the proposed algorithm has been implemented in Matlab software using the Hilbert transform. The results of this study show that the proposed method can detect different types of power swing successfully. In addition, it has been shown that the proposed method operates very fast; besides when a fault occurs simultaneously with the power swing unblocks the relay as soon as possible. This method has been also implemented practically on a distance relay and is tested by a relay tester device made by Vebko Amirkabir knowledge-based company. The results obviously show that the proposed method has a better operation than industrial conventional methods.