I currently have a complex base-band simulator for non-coherent detection of M-ary orthogonal waveforms (such as M-FSK). I run the noisy signal through M correlators at lag=0, compute the magnitude squared of the results and pick the largest. Everything is perfectly synchronized.
It is just: modulate -> add AWGN -> demod.
Currently, my non-coherent simulation BER performance matches the theoretical equations derived in Proakis.
What do I have to tweak in order to simulate coherent detection given that my received signal is perfectly synchronized?