Documentation

# lteSCIDecode

## Syntax

``````[scibits,err] = lteSCIDecode(scilen,softbits)``````
``````[scibits,err] = lteSCIDecode(ue,softbits)``````

## Description

example

``````[scibits,err] = lteSCIDecode(scilen,softbits)``` recovers a sidelink control information (SCI) message and also returns the cyclic redundancy check indication, given the SCI vector length and input vector of soft bits. For more information, see SCI Message Decoding.```

example

``````[scibits,err] = lteSCIDecode(ue,softbits)``` uses a UE settings structure to determine the SCI message length.```

## Examples

collapse all

Decode an SCI format 0 message given the SCI message length. Use the length of an SCI format 0 message, determined using the `lteSCIInfo` function, to create and encode an SCI message.

Create a UE settings structure with 10-MHz bandwidth and normal cyclic prefix length.

`ue = struct('NSLRB',50,'CyclicPrefixSL','Normal');`

Determine the SCI message length with the `lteSCIInfo` function. Encode the SCI message.

```sciInfo = lteSCIInfo(ue); scilen = sciInfo.Format0; sciBits = zeros(scilen,1); cw = lteSCIEncode(ue,sciBits);```

Decode the SCI message payload bit vector.

```[sciBits,crcErr] = lteSCIDecode(scilen,cw); crcErr```
```crcErr = logical 0 ```

The cyclic redundancy check returns a zero, indicating that the decoded SCI message has no errors.

Decode an SCI format 0 message using UE settings. Encode a bit vector representing an SCI information payload, and then decode and error-check the result. Use a UE settings structure to create and encode an SCI message.

Create a UE settings structure with 5 MHz bandwidth and extended cyclic prefix length. Generate and encode an SCI format 0 message.

```ue = struct('NSLRB','5MHz','CyclicPrefixSL','Extended'); [~,sciBits] = lteSCI(ue); cw = lteSCIEncode(ue,sciBits);```

Decode the SCI message payload bit vector, `cw`. Use the UE settings structure to determine the SCI message length.

```[sciBits,crcErr] = lteSCIDecode(ue,cw); crcErr```
```crcErr = logical 0 ```

The cyclic redundancy check returns a zero, indicating that the decoded SCI message has no errors.

## Input Arguments

collapse all

Length of recovered SCI message vector, specified as a positive integer. This argument is normally equal to the length of the SCI format 0 message for the sidelink bandwidth. Use `lteSCIInfo` to determine the expected SCI message length.

Data Types: `double`

Floating-point soft bits, specified as a column vector. The length of `softbits` is nominally 288 bits for normal cyclic prefix or 240 extended cyclic prefix, matching the bit capacity of the PSCCH (ignoring the SC-FDMA guard symbol). For V2X sidelink, the nominal input length is 480 bits. Otherwise, the number of soft bits must be a multiple of 2 and should be a multiple of 12 or 10 for D2D normal and V2X normal/D2D extended cyclic prefix respectively, corresponding to the number of data SC-FDMA symbols in a PSCCH subframe.

Data Types: `double` | `int8`

User equipment settings, specified as a structure containing these parameter fields:

Number of sidelink resource blocks, specified as an integer scalar from 6 to 110. (${N}_{\text{RB}}^{\text{SL}}$)

Example: `6`, which corresponds to a channel bandwidth of 1.4 MHz.

Data Types: `double`

Cyclic prefix length, specified as `'Normal'` or `'Extended'`.

Data Types: `char` | `string`

Data Types: `struct`

## Output Arguments

collapse all

Recovered SCI message bits, returned as a column vector. For more information, see SCI Message Decoding.

CRC error status, returned as 0 for no errors or 1 when the CRC fails.

collapse all

### SCI Message Decoding

Sidelink control information (SCI) message decoding performs the inverse SCI processing operation as specified in TS 36.212 [1], Section 5.4.3. Specifically, `lteSCIDecode` performs PUSCH deinterleaving, rate recovery, and Viterbi and CRC decoding to recover the SCI message bit vector (`scibits`) from an input vector of received soft bits previously coded by the SCI processing. `lteSCIDecode` also returns the CRC error status, signaled by 0 for no errors and 1 when CRC fails.

If `scilen` is provided as an input argument, the function uses it for the length of the SCI information payload to be recovered. Otherwise the function computes the length, using the fields in `ue` that specify the bandwidth (`NSLRB`) and cyclic prefix length (`CyclicPrefixSL`).

## References

[1] 3GPP TS 36.212. “Evolved Universal Terrestrial Radio Access (E-UTRA); Multiplexing and channel coding.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.