Main Content

ltePUCCH3PRBS

PUCCH format 3 pseudorandom scrambling sequence

Description

[seq,cinit] = ltePUCCH3PRBS(ue,n) returns a column vector containing the first n outputs of the Physical Uplink Control Channel (PUCCH) format 3 scrambling sequence when initialized according to UE-specific settings, ue, which must be a structure. It also returns an initialization value cinit for the pseudorandom binary sequence (PRBS) generator.

example

[seq,cinit] = ltePUCCH3PRBS(ue,n,mapping) allows control over the format of the returned sequence, seq, with the input mapping.

example

[subseq,cinit] = ltePUCCH3PRBS(ue,pn) returns a subsequence of a full PRBS sequence, specified by pn.

[subseq,cinit] = ltePUCCH3PRBS(ue,pn,mapping) allows additional control over the format of the returned subsequence, subseq, with the input mapping.

Examples

collapse all

Scramble a random PUCCH3 codeword.

Create a ue-specific configuration structure. Generate a codeword. Generate a PUCCH3 pseudorandom scrambling sequence the same length as the codeword.

ue.NCellID = 1;
ue.NSubframe = 0;
ue.RNTI = 1;
cw = randi([0 1],48,1);
seq = ltePUCCH3PRBS(ue,length(cw));

Scramble codeword with PDCCH PRBS.

scrambled = xor(seq,cw);

Scramble a UCI3 codeword with a PUCCH3 pseudorandom scrambling sequence.

Create a ue-specific configuration structure. Generate a UCI3 codeword. The UCI3 codeword is 48 bits long.

ue.NCellID = 1;
ue.NSubframe = 0;
ue.RNTI = 1;

txAck = [1;0;0;1];
cw = lteUCI3Encode(txAck);
cwLength = length(cw)
cwLength = 
48

Generate a PUCCH3 pseudorandom scrambling sequence the same length as the codeword. Scramble codeword with PDCCH PRBS.

seq = ltePUCCH3PRBS(ue,length(cw));
scrambled = xor(seq,cw);

This example shows the generation of unsigned and signed PUCCH format 3 pseudorandom scrambling sequences.

Initialize ue specific parameters.

ue = struct('NCellID',1,'NSubframe',0,'RNTI',1);

Generate a PUCCH format 3 pseudorandom scrambling sequence.

pucch3Seq = ltePUCCH3PRBS(ue,5)
pucch3Seq = 5x1 logical array

   1
   1
   0
   0
   1

Generate a signed PUCCH format 3 pseudorandom scrambling sequence.

pucch3Seq = ltePUCCH3PRBS(ue,5,'signed')
pucch3Seq = 5×1

    -1
    -1
     1
     1
    -1

Input Arguments

collapse all

UE-specific settings, specified as a structure having the following fields.

Physical layer cell identity, specified as an integer between 0 and 503.

Data Types: double

Subframe number, specified as an integer.

Data Types: double

Radio Network Temporary Identifier (16-bit), specified as an integer.

Data Types: double

Data Types: struct

Number of elements in returned sequence, seq, specified as a numeric scalar.

Data Types: double

Range of elements in returned subsequence, subseq, specified as a row vector of [p n]. The subsequence returns n values of the PRBS generator, starting at position p (0-based).

Data Types: double

Output sequence formatting, specified as 'binary' or 'signed'. mapping controls the format of the returned sequence.

  • 'binary' maps true to 1 and false to 0.

  • 'signed' maps true to –1 and false to 1.

Data Types: char | string

Output Arguments

collapse all

PUCCH format 3 scrambling sequence, returned as a logical column vector or a numeric column vector. seq contains the first n outputs of the scrambling sequence. If you set mapping to 'signed', the output data type is double. Otherwise, the output data type is logical.

Data Types: logical | double

PUCCH format 3 scrambling subsequence, returned as a logical column vector or a numeric column vector. subseq contains the values of the PRBS generator specified by pn. If you set mapping to 'signed', the output data type is double. Otherwise, the output data type is logical.

Data Types: logical | double

Initialization value for PRBS generator, returned as a numeric scalar.

Data Types: uint32

Version History

Introduced in R2014a