Deinterleave input symbols using algebraically derived permutation vector
The AlgebraicDeinterleaver object restores the original ordering of a sequence that was interleaved using the AlgebraicInterleaver object. In typical usage, the properties of the two objects have the same values.
To deinterleave input symbols using an algebraically derived permutation vector:
H = comm.AlgebraicDeinterleaver creates a deinterleaver System object™, H. This object restores the original ordering of a sequence from the corresponding algebraic interleaver object.
H = comm.AlgebraicDeinterleaver(Name,Value) creates an Algebraic deinterleaver System object, H, with each specified property set to the specified value. You can specify additional name-value pair arguments in any order as (Name1,Value1,...,NameN,ValueN).
Algebraic method to generate permutation vector
Specify the algebraic method as one of Takeshita-Costello| Welch-Costas. The default is Takeshita-Costello. The algebraic interleaver performs all computations in modulo N, where N equals the length you set in the Length property.
For the Welch-Costas method, the value of () must be a prime number, where N equals the value you specify in the Length property. You must set the PrimitiveElement property to an integer, A, between 1 and N. This integer represents a primitive element of the finite field .
For the Takeshita-Costello method, you must set the Length property to a value equal to , for any integer m. You must also set the MultiplicativeFactor property to an odd integer that is less than the value of the Length property. The CyclicShift property requires a nonnegative integer which is less than the value of the Length property. The Takeshita-Costello interleaver method uses a cycle vector of length N, which you specify in the Length property. The cycle vector calculation uses the equation, , for any integer n, between 1 and N. The object creates an intermediate permutation function using the relationship, . You can shift the elements of the intermediate permutation vector to the left by the amount specified by the CyclicShift property. Doing so produces the interleaver's actual permutation vector.
Number of elements in input vector
Specify the number of elements in the input as a positive, integer, scalar. When you set the Method property to Welch-Costas, then the value of Length+1 must equal a prime number. When you set the Method property to Takeshita-Costello, then the value of the Length property requires a power of two. The default is 256.
Cycle vector computation factor
Specify the factor the object uses to compute the interleaver's cycle vector as a positive, integer, scalar. This property applies when you set the Method property to Takeshita-Costello. The default is 13.
Amount of cyclic shift
Specify the amount by which the object shifts indices, when the object creates the final permutation vector, as a nonnegative, integer, scalar. The default is 0. This property applies when you set the Method property to Takeshita-Costello.
Specify the primitive element as an element of order N in the finite field . N is the value you specify in the Length property. You can express every nonzero element of as the value of the PrimitiveElement property raised to some integer power. In a Welch-Costas interleaver, the permutation maps the integer k to , where A represents the value of the PrimitiveElement property. This property applies when you set the Method property to Welch-Costas. The default is 6.
|clone||Create algebraic deinterleaver object with same property values|
|getNumInputs||Number of expected inputs to step method|
|getNumOutputs||Number of outputs from step method|
|isLocked||Locked status for input attributes and nontunable properties|
|release||Allow property value and input characteristics changes|
|step||Deinterleave input symbols using algebraically derived permutation vector|
hInt = comm.AlgebraicInterleaver('Length', 16); hDeInt = comm.AlgebraicDeinterleaver('Length', 16); data = randi(7, 16, 1); intData = step(hInt, data); deIntData = step(hDeInt, intData); [data, intData, deIntData]
ans = 6 4 6 7 7 7 1 7 1 7 7 7 5 7 5 1 7 1 2 1 2 4 6 4 7 6 7 7 7 7 2 2 2 7 2 7 7 5 7 4 4 4 6 1 6 1 1 1
This object implements the algorithm, inputs, and outputs described on the Algebraic Deinterleaver block reference page. The object properties correspond to the block parameters.