Describir: Precoding Techniques for Digital Communication Systems