I am simulating some optical signals in Matlab as they pass through a waveguide, get amplified, mixed with noises, etc. For the record, I am a theoretical physicist, not an engineer nor an experimentalist, so I have no clue how these measurements are done in real life.
My idea is to compare two types of information encoding: encoding into the amplitude (e.g. a sequence of Gaussian pulses of a certain duration, for instance a pulse equals a 1, no pulse equals a zero) or into the phase of the wave (modulating the phase using something like QPSK, so that if the phase is 45 degrees, then that's a 11 bit pair, and so on).
My main problem is when it comes to reading out the bit sequence in the output. I know for instance that what would be done by a detector is something like what is shown below: (https://spie.org/etop/ETOP2005_021.pdf)
So we sample the voltage at the center of the bit period for each bit, and then we turn that into a 1 or a 0 depending on whether it falls above or below a threshold value. That seems fine to me.
So here come the questions:
(1) Now for the phase modulation case, do we do the same in practice? Do we extract the phase at a single point at the center of the bit period? (in the case of QPSK case presumably the bit period would be 2-bits long, since 1 phase encodes 2 bits at a time).
(2) Is there ever a case in which instead of sampling a single point in the bit period, we take multiple points and do a sample average before determining whether the value should correspond to a 1 or a 0? If so, can you point me to some resources that might talk about how this is done?
I mainly want to do this to estimate things like the Bit Error Rate of my system, as well as creating constellation diagrams (I don't like black boxes, so I want to understand the procedure myself)