Introducing channels
Issue #13
resolved
It could be nice to implement a structure to support channels in the project., and be ready to set these as part of the demonstrator.
According to you, what do we need to have inside our channels files?
Comments (3)
-
-
I forget exactly what design we ended up with during our discussions in Lyon, though...
-
- changed status to resolved
More or less. This Issue is deprecated as is, at least
- Log in to comment
In
channels.sage
in Codinglib I have already a bit of functionality, as well as a few easy channels. I briefly describe the design of those classes. I'm not saying this is the design we will end up with.input_space
andoutput_space
. These can be any Sage container object, and have very few formal requirements in general.transmit_element
andtransmit
. The difference is thattransmit_element
takes one element ofinput_space
and produces one inoutput_space
.transmit
takes a list (iterable) of such input elements and returns a list of output elementsThat's it. On top of this, I've implemented
QarySymmetricChannel
which relies onrandom_element
oninput_space
BinaryAdditiveGaussianWhiteNoise
uses BPSK modulation of F2 andoutput_space
isRR
. Supports helper functionsdecide_hard
for going back to F2 andposteriori_probability
for calculating prob. of a 0 resp. 1 given the output.)BinaryExtSoftChannel
(which does binary expansion of F2m elements, sending each over a soft channel (e.g.BinaryAdditiveGaussianWhiteNoise
). Output space isS^m
whereS
isoutput_space
of the inner soft channel. Also has helper functionsdecide_hard
,posteriory_probability
andposteriory_probability_table
.