Channels
system:sage


<h1><span style="text-decoration: underline; font-size: xx-large;">Static Error Rate Channel</span></h1>

<p><span style="font-size: large;">Warning: if you do not have a copy of our bitbucket repository, these examples will not work!</span></p>

<p>Creation of a channel</p>

{{{id=1|
F = VectorSpace(GF(7), 7)
Ch = ChannelStaticErrorRate(F, 3)
Ch
///
}}}

<p>Transmission of an element through our channel</p>

{{{id=2|
v = F.random_element()
print v
///
}}}

{{{id=15|
y = Ch.transmit(v)
print y
///
}}}

{{{id=16|
print v == y
///
}}}

<p>What if I just want a random number of errors in a specific range?</p>

{{{id=8|
Ch = ChannelStaticErrorRate(F, (1,4))
print Ch
///
}}}

<p>I try to transmit a vector through this new channel</p>

{{{id=19|
v = F.random_element()
print v
///
}}}

<p>First transmission</p>

{{{id=18|
y = Ch.transmit(v)
print y
print len((v - y).nonzero_positions())
///
}}}

<p>Second transmission</p>

{{{id=22|
y = Ch.transmit(v)
print y
print len((v - y).nonzero_positions())
///
}}}

<p>Third transmission</p>

{{{id=3|
y = Ch.transmit(v)
print y
print len((v - y).nonzero_positions())
///
}}}

<p><span style="text-decoration: underline; font-size: xx-large;">Error-Erasure Channel</span></p>

{{{id=10|
F = VectorSpace(GF(7), 7)
Ch = ChannelErrorErasure(F, 2, 3)
Ch
///
}}}

<p>Transmission example</p>

{{{id=33|
v = F.random_element()
print v
///
}}}

<p>Transmit vector</p>

{{{id=26|
(y, era) = Ch.transmit(v)
print y
///
}}}

<p>Erasure vector</p>

{{{id=13|
print era
///
}}}