Main Content

ltePSCCHPRBS

PSCCH pseudorandom binary scrambling sequence

Description

example

[seq,cinit] = ltePSCCHPRBS(n) returns a column vector containing the first n outputs of the PSCCH pseudorandom binary scrambling sequence (PRBS). It also returns an initialization value cinit for the PRBS generator.

The scrambling sequence generated should be applied to the coded PSCCH data carried by the associated subframe. The PRBS sequence generator used is initialized with cinit = 510.

example

[seq,cinit] = ltePSCCHPRBS(n,mapping) specifies the format of the returned sequence, seq, through the mapping input.

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

[subseq,cinit] = ltePSCCHPRBS(pn,mapping) specifies the format of the returned subsequence, subseq, through the mapping input.

Examples

collapse all

Scramble a PSCCH codeword by generating the PSCCH pseudorandom binary sequence (PRBS) and applying an exclusive OR operation on the two sequences.

Generate the required length of the PRBS and scramble the PSCCH codeword with the PRBS sequence using xor.

codeword = ones(288,1);
pscchPrbs = ltePSCCHPRBS(length(codeword));
scrambled = xor(pscchPrbs,codeword);

Descramble a received PSCCH codeword.

Scramble PSCCH Codeword

  • Generate the required length of the PRBS and scramble the PSCCH codeword with the PRBS sequence using xor.

  • Modulate the logical scrambled data.

codeword = ones(288,1);
pscchPrbs = ltePSCCHPRBS(length(codeword));
scrambled = xor(pscchPrbs,codeword);

txsym = lteSymbolModulate(scrambled,'QPSK');

Descramble Recovered Codeword

  • Add noise to transmitted symbols and demodulate received soft data.

  • Generate the PSCCH PRBS in signed form.

  • Descramble a vector of noisy demodulated symbols representing a sequence of soft bits. To do so, perform a pointwise multiplication between the PRBS sequence and the recovered data.

  • Compare the transmitted codeword to the recovered codeword.

sym = awgn(txsym,30,'measured');
softdata = lteSymbolDemodulate(sym,'QPSK');

scramblingSeq = ltePSCCHPRBS(length(softdata),'signed');
descrambled = softdata.*scramblingSeq;

isequal(codeword,descrambled > 0)
ans = logical
   1

The transmitted codeword matches the hard decision on the descrambled data.

Input Arguments

collapse all

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

PSCCH pseudorandom scrambling sequence, returned as a logical column vector or a numeric column vector. seq contains the first n outputs of the physical control channel (PCCH) scrambling sequence. If you set mapping to 'signed', the output data type is double. Otherwise, the output data type is logical.

PSCCH pseudorandom scrambling sequence, 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.

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

Data Types: uint32

Introduced in R2016b