  A coding scheme for transmission of a bit maps a given bit to a sequence of
channel inputs (called the codeword associated to the transmitted bit). In this
paper, we study the problem of designing the best code for a discrete Poisson
channel with memory (under peak-power and total-power constraints). The outputs
of a discrete Poisson channel with memory are Poisson distributed random
variables with a mean comprising of a fixed additive noise and a linear
combination of past input symbols. Assuming a maximum-likelihood (ML) decoder,
we search for a codebook that has the smallest possible error probability. This
problem is challenging because error probability of a code does not have a
closed-form analytical expression. For the case of having only a total-power
constraint, the optimal code structure is obtained, provided that the
blocklength is greater than the memory length of the channel. For the case of
having only a peak-power constraint, the optimal code is derived for arbitrary
memory and blocklength in the high-power regime. For the case of having both
the peak-power and total-power constraints, the optimal code is derived for
memoryless Poisson channels when both the total-power and the peak-power bounds
are large.
