## Character Representation of Polynomials

You can specify polynomials as a character vector or string using a variety of syntaxes that correspond to those found in literature. The Communications Toolbox™ functions that support character vector and string polynomials internally convert them into the appropriate form. The form varies depending on the function. For example, the `comm.BCHEncoder` function expresses polynomials as a binary row vector whose powers are in descending order.

When specifying character vectors or strings to represent polynomials:

• The order of the polynomial, ascending or descending, does not matter.

• Spaces are ignored.

• The caret symbol, `^`, which indicates the presence of an exponent, is optional. If omitted, the function assumes that the integer following the variable name is an exponent.

• Braces, `{}`, denote an exponent. For example, you can represent x2 as `x{2}`.

• Text appearing before the polynomial expression (with or without an equals sign) is ignored.

• Punctuation following square brackets is ignored.

• Exponents must be uniformly positive or uniformly negative. Mixed exponents are not allowed. For example, `'x^2 + x + 1'` and `'1 + z^-6 + z^-8'` are valid while `'1 + z^6 + z^-8'` is not.

To illustrate these characteristics, you can express the polynomial 1 + 2x + x3 + 4x5 + x14 using any of the following examples using single quotes for character vectors as shown or double quotes for strings.

• `'1+2x+x^3+4x^5+x^14'`

• `'1+2m+m3+4m5+m14'`

• `'q14 + 4q5 + q3 + 2q + 1'`

• `'g(x) = 1+2x+x3+4x5+x14'`

• `'g(z) 1+2z+z3+4z5+z14'`

• `'p(x) = x{14} + 4x{5} + x{3} + 2{x} + 1'`

• `'[D14 + 4D5 + D3 + 2D + 1]'`