Ross Whenmouth
2016-03-31 09:50:07 UTC
Hi,
I have implemented Manchester (bi-phase-mark coding), Miller^2 and
Xerxes line coding, transmission through a noisy channel, decoding,
followed by a BER check, in an ~ 1.6 million cell LibreOffice spreadsheet.
I would really appreciate it if someone could point me in the direction
of a good crash course on Octave scripting so that I can have a decent
go at hacking mancyfsk.m etc ;)
All three binary line codes tested were confirmed DC-free. I was
surprised that over 100 kbit of random data (20x trials), all three
codes had practically the same BER (about 0.023 for additive flat noise
at 1.02 times the magnitude of the signal).
I think that the big advantage of Miller^2 and Xerxes over Manchester
are that they consume half the bandwidth of Manchester, meaning that we
could either avoid the noisier upper half of the FM channel, or
alternately, we could send bits twice as fast in the same bandwidth as a
Manchester line code but a with 1/2 rate FEC.
The channel in my spreadsheet has flat noise added to it (flat
distribution of random numbers, not Gaussian) and I have not attempted
to filter the channel or simulate FM modulation/demodulation. However,
the same random data stream and channel noise is used for each line code
under test, so I believe that it is still a fair test of the relative
performance of the different line codes. I think that my SNR calculation
is buggy because I have to select -0.2 dB SNR to get a BER of about 0.023.
Anyone who is interested can access my spreadsheets on Google Drive:
https://drive.google.com/open?id=0BzNXZIXmo93lS2FtZTFOdk5OekU
"line code stats.ods" can be viewed online through Google Docs, however,
"line codes.ods" is too big and you will need to download it if you want
to open it (no, it does not use macros).
73 ZL2WRW
Ross Whenmouth
I have implemented Manchester (bi-phase-mark coding), Miller^2 and
Xerxes line coding, transmission through a noisy channel, decoding,
followed by a BER check, in an ~ 1.6 million cell LibreOffice spreadsheet.
I would really appreciate it if someone could point me in the direction
of a good crash course on Octave scripting so that I can have a decent
go at hacking mancyfsk.m etc ;)
All three binary line codes tested were confirmed DC-free. I was
surprised that over 100 kbit of random data (20x trials), all three
codes had practically the same BER (about 0.023 for additive flat noise
at 1.02 times the magnitude of the signal).
I think that the big advantage of Miller^2 and Xerxes over Manchester
are that they consume half the bandwidth of Manchester, meaning that we
could either avoid the noisier upper half of the FM channel, or
alternately, we could send bits twice as fast in the same bandwidth as a
Manchester line code but a with 1/2 rate FEC.
The channel in my spreadsheet has flat noise added to it (flat
distribution of random numbers, not Gaussian) and I have not attempted
to filter the channel or simulate FM modulation/demodulation. However,
the same random data stream and channel noise is used for each line code
under test, so I believe that it is still a fair test of the relative
performance of the different line codes. I think that my SNR calculation
is buggy because I have to select -0.2 dB SNR to get a BER of about 0.023.
Anyone who is interested can access my spreadsheets on Google Drive:
https://drive.google.com/open?id=0BzNXZIXmo93lS2FtZTFOdk5OekU
"line code stats.ods" can be viewed online through Google Docs, however,
"line codes.ods" is too big and you will need to download it if you want
to open it (no, it does not use macros).
73 ZL2WRW
Ross Whenmouth