Generate Walsh code from orthogonal set of codes

Sequence Generators sublibrary of Comm Sources

Walsh codes are defined as a set of *N* codes,
denoted *W*_{j}, for *j* =
0, 1, ... , *N* - 1, which have the following properties:

*W*_{j}takes on the values +1 and -1.*W*_{j}[0] = 1 for all*j*.*W*_{j}has exactly*j*zero crossings, for*j*= 0, 1, ... ,*N*- 1.$${W}_{j}{W}_{k}^{T}=\{\begin{array}{cc}0& j\ne k\\ N& j=k\end{array}$$

Each code W

*j*is either even or odd with respect to its midpoint.

Walsh codes are defined using a Hadamard matrix of order *N*.
The Walsh Code Generator block outputs a row of the Hadamard matrix
specified by the **Walsh code index**, which must
be an integer in the range [0, ..., *N* - 1]. If
you set **Walsh code index** equal to an integer *j*,
the output code has exactly *j* zero crossings,
for *j* = 0, 1, ... , *N* -
1.

Note, however, that the indexing in the Walsh Code Generator
block is different than the indexing in the Hadamard Code Generator
block. If you set the **Walsh code index** in the
Walsh Code Generator block and the **Code index parameter** in
the Hadamard Code Generator block, the two blocks output different
codes.

**Code length**Integer scalar that is a power of 2 specifying the length of the output code.

**Code index**Integer scalar in the range [0, 1, ... , N - 1], where N is the

**Code length**, specifying the number of zero crossings in the output code.**Sample time**A positive real scalar specifying the sample time of the output signal.

**Frame-based outputs**When checked, the block outputs a frame-based signal. When cleared, the block outputs a [1] unoriented scalar.

**Samples per frame**The number of samples in a frame-based output signal. This field is active only if you select

**Frame-based outputs**. If**Samples per frame**is greater than the**Code length**, the code is cyclically repeated.**Output data type**The output type of the block can be specified as an

`int8`

or`double`

. By default, the block sets this to`double`

.

Was this topic helpful?