Die 3PM-Codierung, Three Position Modulation, ermöglicht eine hohe Packungsdichte gegenüber anderen Codierverfahren, sie benötigt allerdings eine komplexe Hardware.
Die 3PM-Codierung ist eine adaptierbare Codierung nach dem Run Lenght Limited ( RLL 2,7), bei dem zwischen zwei 1- Bits mindestens zwei und maximal sieben 0-Bits sein dürfen. Bei der 3PM-Codierung werden drei Eingangsbits in 6 Ausgangsbits konvertiert. Die minimale Zeitdifferenz zwischen den Übergängen ist mindestens doppelt so lang wie die Taktperiode, die maximale entspricht der sechsfachen Taktperiode.