Autoencoders were implemented using Tensorflow. ReLU activations were used on most layers, except for the bottleneck and output layers. A linear activation was applied to the bottleneck to avoid the possibility of one of its two latent dimensions being rectified to zero. A sigmoid activation was applied to the output layer, which we believe can aid the training process given the bounded nature of the waveform amplitude. For compatibility with the sigmoidal output, the input data was first scaled to the [0,1] range.