Representation of Polynomials in Communications Toolbox
You can specify polynomials as a character vector or string scalar by using a variety of
syntaxes. Communications Toolbox™ functions that support character vector and string scalar polynomials convert
these various syntaxes into the appropriate form, which varies depending on the function.
For example, the comm.BCHEncoder
function expresses polynomials
as a binary row vector with powers in descending order.
When specifying a character vector or string scalar to represent a polynomial:
Ascending or descending order is valid.
Spaces are ignored.
The caret symbol,
^
, which indicates the presence of an exponent, is optional. If omitted, the function assumes that the integer that follows the variable is an exponent.Braces,
{}
, denote an exponent. For example, you can represent x2 asx{2}
.Text appearing before the polynomial expression (with or without an equals sign) is ignored.
Punctuation that follows square brackets is ignored.
Exponents must be uniformly positive or uniformly negative. Mixed-sign exponents are not allowed. For example,
'x^2 + x + 1'
and'1 + z^-6 + z^-8'
are valid, but'1 + z^6 + z^-8'
is not valid.
This list shows some examples of how to express the polynomial x14 + 4x5 + x3 + 2x + 1 in code. Use single quotes for character vectors (as shown) or double quotes for string scalars.
'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]'