A Poisson-based communication system comprising: a receiver comprising: a photodetector configured to receive photons and to generate pulses based on the received photons; characterized by a sampling event counter configured to count the number of generated pulses by the photodetector; and a demodulator configured to: sample the sampling event counter at predetermined time intervals to determine an occurrence of a first state when light pulse energy has been transmitted by a transmitter and received by the photodetector and an occurrence of a second state when light pulse energy has not been transmitted by the transmitter and received by the photodetector; decode a symbol waveform to recover message data or a waveform encoded in the symbol waveform that is based on a pattern of the occurrences of the first state and the second state over a plurality of predetermined time intervals; and compute a matched filter response from count values of the sampling event counter and employ a shape of this response to provide feedback to the sampling event counter to synchronize the sampling of the sampling event counter to an incoming symbol waveform corresponding to a pattern of occurrences of the first and second states to maximize received signal energy counts from the sampling event counter. a receiver comprising: a photodetector configured to receive photons and to generate pulses based on the received photons; characterized by a sampling event counter configured to count the number of generated pulses by the photodetector; and a demodulator configured to: sample the sampling event counter at predetermined time intervals to determine an occurrence of a first state when light pulse energy has been transmitted by a transmitter and received by the photodetector and an occurrence of a second state when light pulse energy has not been transmitted by the transmitter and received by the photodetector; a photodetector configured to receive photons and to generate pulses based on the received photons; characterized by a sampling event counter configured to count the number of generated pulses by the photodetector; and a demodulator configured to: sample the sampling event counter at predetermined time intervals to determine an occurrence of a first state when light pulse energy has been transmitted by a transmitter and received by the photodetector and an occurrence of a second state when light pulse energy has not been transmitted by the transmitter and received by the photodetector; sample the sampling event counter at predetermined time intervals to determine an occurrence of a first state when light pulse energy has been transmitted by a transmitter and received by the photodetector and an occurrence of a second state when light pulse energy has not been transmitted by the transmitter and received by the photodetector; decode a symbol waveform to recover message data or a waveform encoded in the symbol waveform that is based on a pattern of the occurrences of the first state and the second state over a plurality of predetermined time intervals; and compute a matched filter response from count values of the sampling event counter and employ a shape of this response to provide feedback to the sampling event counter to synchronize the sampling of the sampling event counter to an incoming symbol waveform corresponding to a pattern of occurrences of the first and second states to maximize received signal energy counts from the sampling event counter.