This project will study point-to-point communication systems where the transmitter and receiver are regarded as parameterized functions (e.g., neural networks) and jointly optimized to improve end-to-end performance. This general approach can be regarded as a special type of (denoising) autoencoder, that learns to (i) protect the transmitted payload data against channel noise and corruptions, and (ii) demodulate the received signal to recover the data. Potential applications and use cases that we will investigate include novel joint radar-communication systems and communication systems that are robust against hardware distortions.