A method of training a neural network to perform decoding of a
time-varying signal comprising a sequence of input symbols, which is
coded by a coder such that each coded output symbol depends on more than
one input symbol, characterized by repetitively: providing a plurality of
successive input symbols to the neural network and to the coder,
comparing the network outputs with the input signals; and adapting the
network parameters to reduce the differences therebetween.