# ltePUCCH1Decode

Physical uplink control channel format 1 decoding

## Syntax

``ack = ltePUCCH1Decode(ue,chs,oack,sym)``

## Description

example

````ack = ltePUCCH1Decode(ue,chs,oack,sym)` returns a vector of hybrid-ARQ (HARQ) indicator values, `ack`, obtained by performing PUCCH Format 1 decoding of the complex matrix `sym`. The decoder uses a maximum likelihood (ML) approach, assuming that `sym` has already been equalized to best restore the original transmitted complex values. The symbols for each antenna are in the columns of `sym`. The number of columns in `sym` should match the number of PUCCH resource indices specified in the structure `chs`. The output argument `ack` is a vector containing `oack` hybrid-ARQ indicator values. ```

## Examples

collapse all

Decoding of a PUCCH Format 1b received symbol vector `pucch1Sym`.

Initialize a UE-specific configuration structure (`ue`), channel configuration structure (`chs`) and ACK vector (`txAck`)

```ue.NCellID = 0; ue.NSubframe = 0; ue.CyclicPrefixUL = 'Normal'; ue.Hopping = 'Off'; ue.Shortened = 0; chs.DeltaShift = 1; chs.ResourceIdx = 0; chs.CyclicShifts = 0; txAck = [0;1];```

Generate PUCCH symbols. Then decode the symbols and verify that the Rx ACK vector matches the Tx ACK vector.

```pucch1Sym = ltePUCCH1(ue,chs,txAck); rxAck = ltePUCCH1Decode(ue,chs,length(txAck),pucch1Sym)```
```rxAck = 2x1 logical array 0 1 ```

## Input Arguments

collapse all

UE-specific configuration settings, specified as a structure that can contain the following fields.

Parameter FieldRequired or OptionalValuesDescription
`NCellID`Required

Integer from 0 to 503

Physical layer cell identity

`NSubframe`Required

0 (default), nonnegative scalar integer

Subframe number

`CyclicPrefixUL`Optional

`'Normal'` (default), `'Extended'`

Cyclic prefix length

`Hopping`Optional

`'Off'` (default), `'Group'`

Frequency hopping method.

`Shortened`Optional

0 (default), 1

Option to shorten the subframe by omitting the last symbol, specified as 0 or 1. If `1`, the last symbol of the subframe is not used. For subframes with possible SRS transmission, set `Shortened` to 1 to maintain a standard compliant configuration.

Data Types: `struct`

PUCCH channel settings, specified as a structure that can contain the following fields.

Parameter FieldRequired or OptionalValuesDescription
`ResourceIdx`Optional

0 (default), integer from 0 to 2047 or vector of integers.

PUCCH resource indices, specified as an integer or a vector of integers. Values range from 0 to 2047. These indices determine the physical resource blocks, cyclic shift and orthogonal cover used for transmission. (${n}_{PUCCH}^{\left(1\right)}$). Define one index for each transmission antenna.

`DeltaShift`Optional

1 (default), 2, 3

Delta shift, specified as 1, 2, or 3. (Δshift)

`DeltaOffset`Optional

0 (default), 1, 2

(Δoffset). Warning: The use of this parameter field is not advised. It applies only to 3GPP releases preceding v8.5.0. This parameter will be removed in a future release.

`CyclicShifts`Optional

0 (default), integer from 0 to 7

Number of cyclic shifts used for format 1 in resource blocks (RBs) with a mixture of format 1 and format 2 PUCCH, specified as an integer from 0 to 7. (${N}_{cs}^{\left(1\right)}$)

Data Types: `struct`

Uncoded HARQ-ACK bits, specified as a nonnegative integer vector. `oack` specifies the number of Hybrid ARQ indicator values expected: 1 (PUCCH Format 1a) or 2 (PUCCH Format 1b).

Data Types: `double`

Symbols for each antenna, specified as complex numeric matrix. The number of columns in `sym` should match the number of PUCCH resource indices specified in the structure, `chs`.

Example: 0.25881 + 0.9659i

Data Types: `double`
Complex Number Support: Yes

## Output Arguments

collapse all

`oack` Hybrid ARQ indicator values, specified as a logical column vector or matrix. This vector is obtained by performing PUCCH Format 1 decoding of the complex matrix, `sym`. A Scheduling Request (SR), which is transmitted on PUCCH Format 1 (no ACK bits), can be detected by setting `oack` = 1; in this case the received Hybrid ARQ indicator value, `ack`, is expected to be zero.

If multiple decoded Hybrid ARQ indicator vectors have a likelihood equal to the maximum, `ack` is a matrix where each column represents one of the equally likely Hybrid ARQ indicator vectors. If a minimum likelihood threshold is not met, `ack` is empty.

Data Types: `logical`

## Version History

Introduced in R2014a