4yp.git
5 years agoAdded adaptive CMA equalizer, "fixed" CD and phase noise
Adrian Iain Lam [Thu, 8 Nov 2018 21:49:44 +0000 (21:49 +0000)]
Added adaptive CMA equalizer, "fixed" CD and phase noise

Implemented CMA equalizer. It can be seen that it works well
in equalizing the received signal when CD is small (i.e. when
the CD compensation does not work well). Convergence is to be
discussed.

Previous version of CD fails miserably when CD is small but
compensation is not used. This is due to the constellation being
rotated by the CD simulation. Code was added to rotate it back.

Previous version of phase noise has a lot of errors due to
cycle slips when attempting to recover the phase using the
Viterbi-Viterbi algorithm. Experimenting with different block
sizes did not help much. A differential PSK was attempted which
seems to work well, agreeing with supervisor's predictions on
asymptotic behaviour, though incurring a penalty at lower SNRs.

5 years agoChromatic dispersion and line width phase noise
Adrian Iain Lam [Fri, 2 Nov 2018 01:15:42 +0000 (01:15 +0000)]
Chromatic dispersion and line width phase noise

Implemented CD and phase noise simulations and their corrections;
files written to (1) inspect waveform behaviour with time, and
(2) plot BER/SNR graphs. For CD, an extra file was written to
demonstrate (check) the pulse-broadening behaviour of the power
of the signal.

Code cleanup: move some code out to separate files for reuse;
renamed some variables for consistency; removed 3F4 PSK upper
bounds in graphs (bound too loose, not useful); removed isOctave
due to the current heavy dependence on functions not supported
by Octave.

TODO: put CD and phase noise together

5 years agoFixed passband, should now be correct
Adrian Iain Lam [Fri, 26 Oct 2018 13:41:50 +0000 (14:41 +0100)]
Fixed passband, should now be correct

5 years agoAdded baseband and passband simulations. Passband is buggy.
Adrian Iain Lam [Fri, 26 Oct 2018 05:17:11 +0000 (06:17 +0100)]
Added baseband and passband simulations. Passband is buggy.

5 years agoAdded root raised cosine pulse shaping.
Adrian Iain Lam [Wed, 24 Oct 2018 00:16:06 +0000 (01:16 +0100)]
Added root raised cosine pulse shaping.

Not very sure about the SNR calculation.

5 years agoUse more library functions; generalized to 2^k-PSK
Adrian Iain Lam [Sun, 21 Oct 2018 23:09:34 +0000 (00:09 +0100)]
Use more library functions; generalized to 2^k-PSK

The previous "initial" version was reinventing the wheel with
PSK modulation/demod, AWGN etc. This version used the library
functions, renamed some variables for consistency; generalized
code to work for M-PSK (M=2^k), and included theoretical upper
bounds and approximations for M > 4.

5 years agoBER/SNR plots for discrete BPSK over AWGN
Adrian Iain Lam [Sun, 21 Oct 2018 16:02:20 +0000 (17:02 +0100)]
BER/SNR plots for discrete BPSK over AWGN