The dividing line between spike codes and firing rates is not always as clearly drawn as it may seem at first sight. Some codes which were first proposed as pure examples of pulse codes have later been interpreted as variations of rate codes. For example the stimulus reconstruction (1.12) with kernels seems to be a clear example of a spike code. Nevertheless, it is also not so far from a rate code based on spike counts (Abbott, 1994; Theunissen and Miller, 1995). To see this, consider a spike count measure with a running time window K(.). We can estimate the rate at time t by
The time window in (1.13) can be made rather short so that at most a few spikes fall into the interval T. Furthermore, there is no need that the window K(.) be symmetric and rectangular. We may just as well take an asymmetric time window with smooth borders. Moreover, we can perform the integration over the function which yields
Similarly, a code based on the 'time-to-first-spike' is also consistent with a rate code. If, for example, the mean firing rate of a neuron is high for a given stimulus, then the first spike is expected to occur early. If the rate is low, the first spike is expected to occur later. Thus the timing of the first spike contains a lot of information about the underlying rate.
Finally, a code based on population activities introduced above as an example of a rate code may be used for very fast temporal coding schemes. As discussed later in Chapter 6, the population activity reacts quickly to any change in the stimulus. Thus rate coding in the sense of a population average is consistent with fast temporal information processing, whereas rate coding in the sense of a naïve spike count measure is not.
The discussion of whether or not to call a given code a rate code is still ongoing, even though precise definitions have been proposed (Theunissen and Miller, 1995). What is important, in our opinion, is to have a coding scheme which allows neurons to quickly respond to stimulus changes. A naïve spike count code with a long time window is unable to do this, but many of the other codes are. The name of such a code, whether it is deemed a rate code or not is of minor importance.
We have seen above in Eq. (1.14) that stimulus reconstruction with a linear kernel can be seen as a special instance of a rate code. This suggests a formal definition of a rate code via the reconstruction procedure: If all information contained in a spike train can be recovered by the linear reconstruction procedure of Eq. (1.12), then the neuron is, by definition, using a rate code. Spike codes would then be codes where a linear reconstruction is not successful. Theunissen and Miller have proposed a definition of rate coding that makes the above ideas more precise (Theunissen and Miller, 1995).
To see how their definition works, we have to return to the reconstruction formula (1.12). It is, in fact, the first term of a systematic Volterra expansion for the estimation of the stimulus from the spikes (Bialek et al., 1991)
Let us now suppose that the reconstruction procedure indicates a significant contribution of the second-order term. Does this exclude rate coding? Unfortunately this is not the case. We have to exclude two other possibilities. Firstly, we might have chosen a suboptimal stimulus. A neuron might for example encode the variable x by a rate code, so that a nearly perfect linear reconstruction of x would be possible,
Secondly, according to Theunissen and Miller  a spike code should show a temporal structure that is more precise than the temporal structure of the stimulus. The fact that neurons show precise and reliable spike timing as such is, for them, not sufficient to classify the neuron as a temporal encoder, since the neuronal precision could just be the image of precise temporal input. Let us consider a stimulus with cut-off frequency . In order to exclude the possibility that the timing is induced by the stimulus, Theunissen and Miller propose to consider the Fourier spectrum of the higher-order reconstruction kernels. If the Fourier transform of the higher-order kernels contains frequencies less than only, then the code is a rate code. If higher-order kernels are significant and contain frequencies above , then the information is encoded temporally. A positive example of a spike code (or of `temporal encoding') according to this definition would be the code by correlation and synchrony introduced above. Another example would be the phase code, in particular if the number of spikes per cycle is independent of the stimulus strength. For the exact mathematical definition of a temporal code according to Theunissen and Miller, the reader is refered to the original literature (Theunissen and Miller, 1995).
© Cambridge University Press
This book is in copyright. No reproduction of any part of it may take place without the written permission of Cambridge University Press.