summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Adrian Iain Lam [Fri, 23 Nov 2018 00:08:00 +0000 (00:08 +0000)]
Added presentation; DE-QPSK; CD with FFT; split-step Fourier
LaTeX code and images for the 1st presentation (presented last
week) were added to the repository. Probably useful when writing
the technical milestone report.
Differentially-encoded QPSK was implemented last week. The results
were satisfactory, with smaller penalty than DPSK, and not affected
by cycle slips.
Chromatic dispersion is now (also) implemented in the frequency
domain. This gives a complexity of O(n log n) (set by FFT),
better than in the time domain (convolution, O(n^2)). This was
done as a prerequisite to implementing the split-step Fourier
method for simulating non-linearities (Kerr effect).
The split-step Fourier method was implemented, although not
thoroughly tested and may contain mistakes. To be discussed
with supervisor.
As discussed in last week's meeting, the code (at least the
CD code) was updated to only use 2 samples per symbol (sps).
Some convenience functions were added to aid debugging. They
may be removed later.
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.
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
Adrian Iain Lam [Fri, 26 Oct 2018 13:41:50 +0000 (14:41 +0100)]
Fixed passband, should now be correct
Adrian Iain Lam [Fri, 26 Oct 2018 05:17:11 +0000 (06:17 +0100)]
Added baseband and passband simulations. Passband is buggy.
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.
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.
Adrian Iain Lam [Sun, 21 Oct 2018 16:02:20 +0000 (17:02 +0100)]
BER/SNR plots for discrete BPSK over AWGN