move2docker/build/blocks/ccsds_randomiser_softbits.xml

57 lines
1.9 KiB
XML

<?xml version="1.0"?>
<block>
<name>Pseudo (De)randomiser with Softbits (CCSDS)</name>
<key>ccsds_randomiser_softbits</key>
<category>CCSDS/Telemetry</category>
<import>import ccsds</import>
<make>ccsds.randomiser_softbits($poly,$seed)</make>
<param>
<name>Generating Polynimoal</name>
<key>poly</key>
<value>0x95</value>
<type>int</type>
</param>
<param>
<name>Seed</name>
<key>seed</key>
<value>0xFF</value>
<type>int</type>
</param>
<check>$poly >= 0</check>
<check>$poly &lt; 256</check>
<check>$seed >= 0</check>
<check>$seed &lt; 256</check>
<sink>
<name>in</name>
<type>message</type>
</sink>
<source>
<name>out</name>
<type>message</type>
</source>
<doc>
Pseudo (De)randomiser
Combines the input frame with a pseudo random sequence by XOR operation. A one
in the PRN sequence will invert the softbit, a zero will copy it untouched. The
pseudo random sequence is generated by an 8-bit linear feedback shift register
(LFSR) as defined in ECSS.
The pseudo random sequence can be modified by the generating polygon as well as
shifted by choosing a different initial seed state.
poly: Polynomial that defines the network of the 8 shift registers. The MSB
encodes whether the last shift register (which is used for the output) should be
used to generate the new input while the LSB encodes whether the first shift
register (that holds the input bit of the last step should be used to generate
the output. Or in ECSS definition: The MSB holds the coefficient for x^0 up to
the LSB which holds coefficient x^7. x^8 is not encoded as it is always set (due
to the fact that this is a maximum length 8 bit shift register). The default
value is 0x95 which corresponds to the randomiser defined in ECSS with the
polynomial representation x^8+x^7+x^5+x^3+x^0.
seed: Initial state of the shift registers. MSB corresponds to the last register
(which will be the output on the next step). Default to all ones as defined in
ECSS.
</doc>
</block>