Map unipolar signal in range [0, M-1] into bipolar signal

Utility Blocks

The Unipolar to Bipolar Converter block maps the unipolar input
signal to a bipolar output signal. If the input consists of integers
between 0 and M-1, where M is the **M-ary number** parameter,
then the output consists of integers between -(M-1) and M-1. If M
is even, then the output is odd. If M is odd, then the output is even.
This block is only designed to work when the input value is within
the set {0,1,2...(M-1)}, where M is the **M-ary number** parameter.
If the input value is outside of this set of integers the output may
not be valid.

The table below shows how the block's mapping depends on the **Polarity** parameter.

Polarity Parameter Value | Output Corresponding to Input Value of k |
---|---|

`Positive` | 2k-(M-1) |

`Negative` | -2k+(M-1) |

**M-ary number**The number of symbols in the bipolar or unipolar alphabet.

**Polarity**A value of

`Positive`

causes the block to maintain the relative ordering of symbols in the alphabets. A value of`Negative`

causes the block to reverse the relative ordering of symbols in the alphabets.**Output Data Type**The type of bipolar signal produced at the block's output.

The block supports the following output data types:

`Inherit via internal rule`

`Same as input`

`double`

`int8`

`int16`

`int32`

When the parameter is set to its default setting,

`Inherit via internal rule`

, the block determines the output data type based on the input data type.If the input signal is floating-point (either

`single`

or`double`

), the output data type is the same as the input data type.If the input data type is not floating-point:

Based on the

**M-ary**number parameter, an ideal signed integer output word length required to contain the range [-(M-1)M-1] is computed as follows:ideal word length = ceil(log2(M))+1

**Note:**The +1 is associated with the need for the sign bit.The block sets the output data type to be a signed integer, based on the smallest word length (in bits) that can fit best the computed ideal word length.

**Note:**The selections in the**Hardware Implementation**pane pertaining to word length constraints do not affect how this block determines output data types.

If the input is [0; 1; 2; 3], the **M-ary number** parameter
is `4`

, and the **Polarity** parameter
is `Positive`

, then the output is [-3; -1;
1; 3]. Changing the **Polarity** parameter to `Negative`

changes
the output to [3; 1; -1; -3].

If the value for the **M-ary number** is 2^{7} the
block gives an output of int8.

If the value for the **M-ary number** is 2^{7}+1
the block gives an output of int16.

Was this topic helpful?