3GFDDLib Mathworks Manual

Embed Size (px)

Citation preview

  • 8/6/2019 3GFDDLib Mathworks Manual

    1/267

    3rd Generation Partnership Project (3GPP) Standard Compliant

    3G FDD Library

    Toolbox for MATLAB

    &

    Blockset for

    3GPP:fdd

    Version 5.0

  • 8/6/2019 3GFDDLib Mathworks Manual

    2/267

    This page is intentionally blank

  • 8/6/2019 3GFDDLib Mathworks Manual

    3/267

    iii

    Table of Contents

    Table of Contents iii

    List of Figures vii

    Scope of this Document ix

    3GPP FDD Library Version Number ix

    Distribution and Support ix

    3GPP Standard Documentation ix

    3GPP Web Site ix

    Key FDD Standard Document Numbers x

    Comments and Support Requests x

    This Document Licence xi

    1 Introduction 1

    1.1 3GPP Standard Compliance 1

    1.2 FDD Library Version 1

    1.3 Library Application 1

    1.4 Installing the 3GPP:fdd Library 2

    1.5 FDD Library Directory Structure 2

    2 Why FDD? - The 3GPP Proposal for IMT2000 3

    2.1 Universal Mobile Telephone System (UMTS) 3

    2.2 IMT-2000 Standardisation 4

    2.3 Global Standardisation - Partnership Projects - 3GPP 5

    2.4 Spectrum Allocation 5

    3 FDD Block Overview 6

    3.1 Systems 6

    3.2 PHY Channels 6

    3.3 PHY Channel Components 63.3.1 Transport Channels 6

    3.3.2 Physical Channels 6

    3.3.3 General 7

    3.4 Propagation Channel 7

    3.5 Measurements & Synchronisation 7

    3.6 HSUPA 7

    4 Using the Library 8

    4.1 Uplink Transmit and Receive. 8

    4.2 Downlink Transmit and Receive. 11

    4.3 Block Processing 14

  • 8/6/2019 3GFDDLib Mathworks Manual

    4/267

    iv

    4.3.1 The Delay Offset feature. 14

    4.3.2 The No Leading Output feature 15

    5 The 3GPP:fdd Library Blocks 16

    5.1 Spectrum Spreading and Channelisation Waveform Generators 165.1.1 Orthogonal Variable Spreading Function (OVSF) Code Generator 17

    5.1.2 Uplink Short Scrambling Code Generator 20

    5.1.3 Uplink Long Scrambling Code Generator 24

    5.1.4 Downlink Long Scrambling Code Generator 285.1.5 Spreader/Despreader 35

    5.1.6 OVSF Fast Hadamard Transform 45

    5.2 Code and Channel Generators 485.2.1 Pilot Symbol Generator 50

    5.2.2 Uplink Random Access Channel Preamble Generator 55

    5.2.3 Synchronisation Code Generator 58

    5.2.4 Physical Channel Generator / Multiplexer 62

    5.2.5 Downlink Dedicated Channel Generator 68

    5.3 Channel Coding 775.3.1 Cyclic Redundancy Coding (CRC) - Encoder/Decoder 78

    5.3.2 Convolutional Encoder 835.3.3 Convolutional Decoder (Viterbi Algorithm) 86

    5.3.4 Turbo Encoder 90

    5.3.5 Turbo Decoder 93

    5.3.6 Rate Matcher 96

    5.3.7 Interleaver 99

    5.3.8 De-Interleaver (DeIntLeave) 102

    5.3.9 Transport Channel Coder 104

    5.3.10 Transport Channel Multiplexer 110

    5.4 Channel Generators 1145.4.1 Uplink Generator 115

    5.4.2 Downlink Generator 122

    5.4.3 HSDPA Transmission Generator 134

    5.5 Channel Models 1405.5.1 Complex Gain 141

    5.5.2 Rayleigh Fading Channel 143

    5.5.3 Moving Channel 147

    5.5.4 Birth-Death Channel 150

    5.6 Synchronisation 1535.6.1 Synchronisation Acquisition 154

    5.6.2 Clock Generator 158

    5.7 Physical Measurements 1635.7.1 Adjacent Channel Leakage 164

    5.7.2 Bit Error Rate 167

    5.8 Multiplexers, Demultiplexers and Integrators 169

    5.8.1 I/Q Splitter 170

    5.8.2 I/Q Combiner 172

    5.8.3 1 to 2 Demultiplexer 173

    5.8.4 Slot Field Demultiplexer 176

    5.9 Averaging Blocks 181

    5.9.1 Integrate and Dump 182

    5.9.2 Frame Averaging 185

  • 8/6/2019 3GFDDLib Mathworks Manual

    5/267

    v

    6 Block-driven 3GPP:fdd Library Blocks 187

    6.1 Frame Scrambler 188

    6.2 Frame Spreader 189

    6.3 E-AGCH Coder 190

    6.4 E-HICH Coder 192

    6.5 E-RGCH Coder 193

    6.6 E-DPCCH Coder 195

    6.7 E-DCH Coder 196

    7 Matlab Toolbox Functions 197

    7.1 FddCRC 199

    7.2 FddHSBitScrambling 201

    7.3 FddTrCHCoding 202

    7.4 FddTurboDecoding 203

    7.5 FddConvolutionalDecoding 205

    7.6 FddHSHarq 206

    7.7 FddHSHarqRecovery 207

    7.8 FddEHarq 208

    7.9 FddEHarqRecovery 209

    7.10 FddPhyChSegmentation 210

    7.11 FddPhyChInterleaving 211

    7.12 FddPhyChDeinterleaving 212

    7.13 FddConstellationRearranging 213

    7.14 FddConstellationDearranging 214

    7.15 FddDLModulation 215

    7.16 FddDLDemodulation 216

    7.17 FddULModulation 217

    7.18 FddULDemodulation 218

    7.19 FddSpreading 219

    7.20 FddDespreading 220

    7.21 FddScrambing 221

    7.22 FddDescrambling 222

    7.23 FddHSSCCHCoding 223

    7.24 FddHSSCCHCodingType3 224

    7.25 FddHSSCCH 226

    7.26 FddHSHARQACKEncoding 230

    7.27 FddHSCQIEncoding 231

    7.28 FddEDCHCoding 232

    7.29 FddEDPCCHCoding 233

    7.30 FddERGCHCoding 234

    7.31 FddEHICHCoding 235

    7.32 FddEAGCHCoding 236

    7.33 FddHSDSCH 237

    7.34 FddHSDSCHDecode 239

    7.35 FddHSPDSCH 240

    7.36 FddHSPDSCHDecode 242

    7.37 FddFadingChan 244

    Appendix A:3GPP Definitions 247

  • 8/6/2019 3GFDDLib Mathworks Manual

    6/267

    vi

    Appendix B:3GPP Abbreviations 251

  • 8/6/2019 3GFDDLib Mathworks Manual

    7/267

    vii

    List of Figures

    1 Introduction 1

    Figure 1.3.1: Simulation groupings for the library. 1

    Figure 1.5.1: FDD Library directory structure. 2

    2 Why FDD? - The 3GPP Proposal for IMT2000 3

    3 FDD Block Overview 6

    4 Using the Library 8Figure 4.1.1: Uplink transmit - critical block paths in transport and physical channels. 9

    Figure 4.1.2: Uplink receive: critical block paths in transport and physical channels. 10

    Figure 4.2.1: Downlink transmit: critical block paths in transport and physical channels. 12

    Figure 4.2.2: Downlink receive: critical block paths in transport and physical channels. 13

    Figure 4.3.1: Interleaving with delay 14

    5 The 3GPP:fdd Library Blocks 16

    Figure 5.1.1: Orthogonal code generation structure 19

    Figure 5.1.2: The modulo-4 and two modulo-2 sequence generators. 22

    Figure 5.1.3: Uplink short scrambling code generator. 23

    Figure 5.1.4: Uplink long scrambling code generator. 26Figure 5.1.5: Downlink long scrambling code generator. 34

    Figure 5.1.6: Output of spreader block in spreading mode 39

    Figure 5.1.7: Effect of the timing offset parameter in the operation of the spreader block 40

    Figure 5.1.8: Effect of the delay offset parameter in the operation of the spreader block 41

    Figure 5.1.9: Downlink spreading structure. 42

    Figure 5.1.10: DPCH uplink spreading structure 42

    Figure 5.1.11: Code tree for fast Hadamard transform. 45

    Figure 5.2.1: Effect of clock on data option. 52

    Figure 5.2.2: DPCCH slot structure 52

    Figure 5.2.3: DL DPCH slot format 53

    Figure 5.2.4: CPICH slot format 53

    Figure 5.2.5: Symbol sequence used in CPICH 53

    Figure 5.2.6: S-CCPCH slot format 54

    Figure 5.2.7: Random access transmission structure 56

    Figure 5.2.8: RACH generation. 57

    Figure 5.2.9: Position of primary SCH in slot 59

    Figure 5.2.10: Structure of SCH frame 59

    Figure 5.2.11: Dedicated Physical Channel Mapping. 65

    Figure 5.2.12: DPDCH and DPCCH on the uplink DPCH. 65

    Figure 5.2.13: DPDCH and DPCCH on the downlink DPCH. 65

    Figure 5.2.14: Uplink PRACH control channel. 66Figure 5.2.15: Downlink S-CCPCH. 66

    Figure 5.3.1: Output block structure of CRC encoder. 79

    Figure 5.3.2: CRC parity generator. 81

    Figure 5.3.3: CRC syndrome generator. 81

    Figure 5.3.4: The steps performed by the convolutional encoders block. 84

    Figure 5.3.5: The structure of the convolutional coder function generators. 85

    Figure 5.3.6: Turbo Coder. 92

    Figure 5.3.7: Turbo Decoder. 94

    Figure 5.3.8: Transport Channel Coder Functions (Downlink) 108

    Figure 5.3.9: Multiplexing of logical channels into a transport channel. 111

    Figure 5.3.10: Multiplexing of 3 transport channels into a radio frame. 112Figure 5.5.1: Multipath fading channel structure. 144

    Figure 5.5.2: Moving channel path positions. 148

    Figure 5.5.3: Path birth and death in birth-death channel. 151

  • 8/6/2019 3GFDDLib Mathworks Manual

    8/267

    viii

    Figure 5.6.1: Chip, symbol and slot clock signals. 160

    Figure 5.6.2: Relation between input/internal clock and chip clock 160

    Figure 5.6.3: Use of advance input and its effect on the chip clock. 161

    Figure 5.6.4: Use of retard input and its effect on the chip clock. 161

    Figure 5.7.1: Positioning of adjacent channels. 165

    Figure 5.8.1: Operation of IQ splitting. 171

    Figure 5.8.2: Demultiplexing three bit fields using two Demux12 block 174

    Figure 5.8.3: Demultiplexing of a DTCH using the Demux12 block 175Figure 5.8.4: Structure of downlink DPCH slot at 30 kbps 177

    Figure 5.8.5: Demultiplexing the DPCH slot into the different blocks outputs 178

    Figure 5.8.6: Parameters used to demultiplex DLDPCH slots at 30 kbps 179

    Figure 5.8.7: Assigning fields to outputs 179

    Figure 5.8.8: Assigning slot fields to outputs 180

    Figure 5.9.1: Integrate and dump operation over six samples (N = 6) 183

    Figure 5.9.2: General form for integrate and dump. 184

    Figure 5.9.3: Operation of the Frame Averaging block 186

    6 Block-driven 3GPP:fdd Library Blocks 187

    7 Matlab Toolbox Functions 197

  • 8/6/2019 3GFDDLib Mathworks Manual

    9/267

    ix

    i Scope of this Document

    This document is the users manual for the Steepest Ascent 3rd GenerationPartnership Project (3GPP) Frequency Division Duplex (FDD) simulation library- 3GPP:fdd. The aim of the document is to define, describe and demonstrate byexample the proper use of the various blocks within the 3GPP:fddlibrary.

    ii 3GPP FDD Library Version Number

    This manual is the FDD Library Version 5.0. You can establish the library versionnumber of your installed software by right-mouse-clicking on the file:

    \FDD\fdd.dll

    To use this library you require Windows 2000 (or later) and Matlab/SimulinkVersion 7.3 (R2006b) or later for Windows.

    iii Distribution and Support

    For pre and post sales support please contact:

    iv 3GPP Standard Documentation

    The functionality of this software library is defined by the standard releasedocuments from the 3rd Generation Partnership Project (3GPP) TechnicalSpecification Group (TSG) RAN WG4. The document numbers are from the TS-25 series technical specification.

    v 3GPP Web SiteThe standard documents used for the development and specification of thissimulation library are available from http://www.3gpp.org

    Steepest Ascent LtdLadywell94 Duke Street

    GlasgowG4 0UWUnited Kingdom

    Tel: +44 (0) 141 552 8855Fax: +44 (0) 141 552 8855Email: [email protected]: www.steepestascent.com

  • 8/6/2019 3GFDDLib Mathworks Manual

    10/267

    x

    vi Key FDD Standard Document Numbers

    The reference documents used for the verification of the 3GPP:fddlibrary are:

    The FDD Library Version 5.0 is compliant with Release 6 3GPP specificationsincluding HSDPA and HSUPA, which indicates it is compliant with V6 series ofthe physical layer description documents TS25.211, TS25.212, TS25.213 andTS25.214.

    vii Comments and Support Requests

    Please contact Steepest Ascent ([email protected]) or your localdistributor with comments and for support information.

    DocumentNumber Title Short Descriptor

    TS25.101UE Radio Transmission andReception (FDD)

    Establishes the minimum RF charac-teristics of the FDD mode of UTRAfor the user equipment.

    TS25.104UTRA (BS) FDD; Radio Transmis-sion and Reception

    Establishes the base station mini-mum RF characteristics of the FDDmode of UTRA.

    TS25.133RF Parameters in Support ofRadio Resource Management

    Transmission

    Establishes the base station mini-mum RF characteristics of the FDD

    mode of UTRA.

    TS 25.201Physical Layer - General Descrip-ton

    Presents a general description of thephysical layer of the UTRA radiointerface.

    TS 25.211Physical channels and mapping oftransport channels onto physicalchannels (FDD)

    Describes the characterisation of thelayer 1 transport channels and phys-ical channels in the FDD mode ofUTRA.

    TS 25.212Multiplexing and channel coding(FDD)

    Describes the characteristics of the

    layer 1 multiplexing and channelcoding in the FDD more of UTRA

    TS 25.213 Spreading and Modulation (FDD)Describes the spreading a modula-tion for UTRA physical layer FDDmode.

    TS 25.214 Physical layer proceduresSpecifies and establishes the char-acteristics of the physical layer pro-cedures in the FDD mode of UTRA.

    TS 25.302Services provided by the physical

    layer.

    Services provided by the physical

    layer of UTRA to the upper layers.

  • 8/6/2019 3GFDDLib Mathworks Manual

    11/267

    xi

    viii This Document Licence

    As the owner of the FDD library you have ownership of both a printed and anAcrobat PDF electronic version of this document. Duplication and/or distributionof either paper or electronic format is prohibited.

    The FDD Library is copyright Steepest Ascent Ltd 2005-2011.All asserted IPR Rights are reserved and retained by the owners and materialdevelopers.

  • 8/6/2019 3GFDDLib Mathworks Manual

    12/267

    xii

  • 8/6/2019 3GFDDLib Mathworks Manual

    13/267

    11 Introduction

    1 Introduction

    This manual specifies the components of the 3GPP:fdd (3rd GenerationPartnership Project - Frequency Division Duplex) library. The library provides ameans of simulation of the physical layer between the basestation (BS) and mobilestation (MS) (or user equipment(UE) terminals). Hence the FDD library containsa number of defined source and input/output blocks which can be used as buildingblocks to produce a complete standard compliant FDD system simulation as both abaseband simulation or an RF modulated simulation.

    1.1 3GPP Standard Compliance

    The FDD software library described in this document is standard compliant to the3rd Generation Partnership Project (3GPP) release documents listed in Section iv

    on page xi of this document. The latest release of the standard documents areavailable at:

    http://www.3gpp.org

    1.2 FDD Library Version

    For the latest revision of this library please check the Steepest Ascent website:

    http://www.steepestascent.com/downloads

    1.3 Library Application

    The library is likely to be used in a number of applications within Universal MobileTerminal System (UMTS) TerrestrialRadioAccess (UTRA) design. Typically theuplink and downlink physical layer implementations (summarised in Figure 1.3.1)for the transmit and receive of UTRA can be simulated and analysed with the

    3GPP:fddlibrary.

    Universal Mobile Telephone System (UMTS)

    Figure 1.3.1: Simulation groupings for the library.

    Uplink Downlink

    Transmit Receive Transmit Receive

    Terrestrial Radio Access with Frequency Division Duplex

  • 8/6/2019 3GFDDLib Mathworks Manual

    14/267

    21 Introduction

    1.4 Installing the 3GPP:fddLibrary

    To install the FDD library, (assuming you have a valid licence for the simulator),ensure that the simulator isNOTrunning, and execute the installer from:

    FDDLib_installer_vX.X.X.exe

    This is the file which you will have downloaded from the website, or that wasdelivered on the FDD CD.

    1.5 FDD Library Directory Structure

    The directory structure of the installed FDD library is shown in Figure 1.5.1.

    The directory docs contains Adobe Acrobat portable document format (pdf)version of this manual. The latest Adobe Acrobat Reader can be downloaded fromhttp://www.adobe.com. This document you are reading or viewing now is the filefdd.pdf.

    The FDDLib directory contain all necessary files to ensure the FDD library will runwithin the simulation environment.

    3G simulation example files are located in the directory Examples. Thesesimulations illustrate correct and typical use of the blocks and also include completeand advanced simulation designs for base station (BS) and mobile station (MS)physical layer implementations.

    FDDLib

    Examples

    General

    Downlink

    Compressed Mode

    docs

    Figure 1.5.1: FDD Library directory structure.

    procedures

    spreading

    HSDPA

    Uplink

    channel coding

  • 8/6/2019 3GFDDLib Mathworks Manual

    15/267

    32 Why FDD? - The 3GPP Proposal for IMT2000

    2 Why FDD? - The 3GPP Proposal for IMT2000

    For the third generation (3G) mobile radio systems, the consumer market isexpected to show an increasing demand for services ranging from low data ratevoice communication (as provided by 2G standards such as GSM) to high data ratesto support multimedia applications with integrated audio and videocommunications. These emerging demands lead to the technical requirements forIMT2000 - International Mobile Telephones in the Year 2000, which are now beingstandardised worldwide. Both dedicated circuit and packet switched services willbe available and they will operated in environments with the aim of allowing datacommunication, anyplace, anytime, anywhere.

    Due to spectrum availability different parts of the world may be using differentfrequency bands and therefore an absolute fundamental standard is unlikely to be

    produced. However, in the different regions of the world (Europe, USA, Korea,Japan) very similar proposals have been put forward, and most recently the 3GPP(3rd Generation Partnership Projects) have had the objective of converging thevarious detailed standards. The evolution from 2G to 3G is being very carefullyplanned, as far as possible the 2G investment will be deployed and retained whereappropriate.

    2.1 Universal Mobile Telephone System (UMTS)

    UMTS is the name of the European version of IMT-2000. Currently the UMTSgroup expect that in the year 2000 there will be more than 400 million 2Gsubscribers, and by 2010, some 1800 million. The 2G standards use digital datatransmission and in Europe the standard is GSM, Global System for Mobilecommunications (in the USA it is IS-136 and IS-95, and PDC (personal digitalcellular) and Personal Handyphone System (PHS) technology in Japan). The firstgeneration (1G) mobile technology was based on analogue signalling and is nowbeginning to be phased out. 2G traffic and numbers of users are still on the increase,

    however data rates are limited - a single channel data rate with a GSM telephone(mobile station) is 9.6kbits/s.

    UMTS will bring a number of new services by virtue of its high data rates:

    Internet access, email, multimedia document transfer;

    Mobile video teleconferencing;

    Audio, video narrowcasting (download videos, computer games, newspapers).

    The data rates from UMTS are planned as high as 2Mbits/sec (some 200 xs GSMcapability, and almost 40 xs faster than a 56k modem). More precisely, due tovarious environments that mobile stations will be used in, three upper limit datarates will emerge:

  • 8/6/2019 3GFDDLib Mathworks Manual

    16/267

    42 Why FDD? - The 3GPP Proposal for IMT2000

    144kbits/sec: For vehicular (high speed) mobile stations environments;

    384 kbits/sec: For outdoor and slow roaming environments;

    2.048Mbits/sec: For indoor and wireless area network (WAN) environments

    (picocells).

    It is planned that 3G services will operate in all environments such as downtownurban areas, hilly and mountainous areas, and in indoor building environments.Therefore, with high data rates, global operating environments 3G will see an evenwider application and exploitation than the current 2G.

    2.2 IMT-2000 Standardisation

    The standardisation for IMT-2000 has been carried out primarily in Europe, China,

    Japan, Korea and America:

    European Telecommunications Standard Institute (ETSI) - Special Mobile

    Group (SMG); Europe;

    Research Institute of Telecommunications Transmission (RITT), China;

    Association of Radio Industry and Business (ARIB), Japan

    Telecommunication Technology Committee (TTC), Japan;

    Telecommunications Technology Association (TTA), Korea;

    Telecommunication Industry Association (TIA), USAT1P1, USA.

    The International Telecommunication Union Radio CommunicationStandardisation Sector (ITU-R) called for proposals for radio transmissiontechnology by June 1998 and for evaluation in late 1998. ETSI-SMG have beenconsidering their input since 1996, and proposed wideband CDMA (WCDMA) inboth paired bands (called FDD) and a shared band (called TDD) in January 1998.

    A key consideration was of course the economic feasibility and the compatibilitywith existing GSM systems, and emerging GSM-Edge. ETSI SMG have thereforesubmitted this proposal of UMTS Terrestrial Radio Access (UTRA) concept to theITU-R for inclusion in IMT-2000.

    The Japanese ARIB standard is closed related to the European WCDMA, and wassubmitted to the ITU-R and subsequently frozen in mid-1999 - Japan aims to deploycommercial WCDMA services in mid-2001. The Chinese RITT has proposed atime-division (TD) CDMA technique for TDD services and wireless local loop

    applications. The TTA in Korea has two proposals, one very close to the JapaneseARIB WCDMA and one similar to the American TIA cdma2000 proposal. In theUSA there are a number of proposals. In particular the TIA support the evolutionand extension of the existing IS-95 standard (a 2G CDMA implementation) into

  • 8/6/2019 3GFDDLib Mathworks Manual

    17/267

    52 Why FDD? - The 3GPP Proposal for IMT2000

    what is denoted cdma2000. TIA also have proposed a WCDMA standard calledWIMS and UWC-136, which is an evolution of the 2G IS-136 DAMPs standard.The T1P1 support WCDMA-NA, which corresponds to UTRA FDD from ETSI.

    2.3 Global Standardisation - Partnership Projects - 3GPP

    If the various regional standards can be harmonised then a partial/quasi-globalstandard would be in place. This would of course lead to economical andconvenience advantages for customers, equipment manufacturers, and networkoperators. Therefore two projects have been established:

    The Third Generation Partnership Project (3GPP): To harmonise and

    standardise in detail the similar proposals from ETSI, ARIB, TTC, TTA, T1P1.

    3GPP2: To harmonise the cdma2000 proposals from TIA and TTA.

    In addition, major international operators have invoked a process of cooperationbetween 3GPP and 3GPP2 with the aim of a globally harmonised concept.

    2.4 Spectrum Allocation

    Following the 1992 World Administrative Radio Conference (WARC) thespectrum for 3G systems was identified. At present, all regions have NOT adheredto the this suggested allocation of bandwidth, and therefore no absolutely commonspectrum band is available for 3G mobile radio.

  • 8/6/2019 3GFDDLib Mathworks Manual

    18/267

    63 FDD Block Overview

    3 FDD Block Overview

    3GPP:fdd provides powerful, flexible and easy to use blocks to implement thelatest release of the 3GPP standard for FDD. The blocks can be integrated with anystandard blocks from the simulator, such as modulators, adaptive equalisers, and soon. The blocks in the library provide the functionality outlined below.

    3.1 Systems

    Uplink Generator

    Downlink Generator

    HSDPA Transmission Generator

    3.2 PHY Channels

    Dedicated Physical Control Channel (DPCCH) Generator

    Transport Channel Coder

    Downlink Dedicated Channel Generator

    3.3 PHY Channel Components

    3.3.1 Transport Channels

    Cyclic Redundancy Coding (CRC) - Encoder/Decoder

    Convolutional Encoder

    Convolutional Decoder (Viterbi Algorithm)

    Turbo Encoder

    Turbo Decoder

    Rate Matcher Interleaver

    De-Interleaver (DeIntLeave)

    Transport Channel Multiplexer

    3.3.2 Physical Channels

    Physical Channel Slot Field Demultiplexer

    Clock Generator Orthogonal Variable Spreading Function (OVSF) Code Generator

    Uplink Short Scrambling Code Generator

    Uplink Long Scrambling Code Generator

    DPCHGEN

    UL

    DPCHGEN

    DL

    HSDPA

    PHYCH

    CHCODEC

    CRC

    RM

    OVSF

    SSCC

    UL

    LSCC

    UL

  • 8/6/2019 3GFDDLib Mathworks Manual

    19/267

    73 FDD Block Overview

    Downlink Long Scrambling Code Generator

    Spreader/Despreader

    Pilot Symbol Generator

    Random Access Channel Preamble Generator

    Downlink Synchronisation Code Generator

    Orthogonal Variable Spreading Factor (OVSF) Transform

    Frame Scrambler

    Frame Spreader

    3.3.3 General

    I/Q Splitter

    I/Q Combiner

    1 to 2 Demultiplexer

    Integrate and Dump

    3.4 Propagation Channel

    Complex Gain

    Rayleigh Fading Channel

    Moving Channel Birth-Death Channel

    3.5 Measurements & Synchronisation

    Adjacent Channel Leakage Power

    Bit Error Rate Counter

    Frame Averaging

    Sychronisation Acquisition

    3.6 HSUPA

    E-AGCH Coder

    E-RGCH Coder

    E-HICH Coder

    E-DPCCH Coder E-DCH Coder

    LSCC

    DL

    SPDR

    PILOT

    RACH

    UL

    SCHDL

    OVSFFHT

    MPTH

    MOV

    BD

    ACLR

    BER

    SyncDL

  • 8/6/2019 3GFDDLib Mathworks Manual

    20/267

    84 Using the Library

    4 Using the Library

    4.1 Uplink Transmit and Receive.

    Figure 4.1.1 shows the generic functionality of the blocks to produce an uplink

    transmitter simulation, and in Figure 4.1.2 the uplink receiver is shown. Note thatthese figures only indicate the critical block path and do not illustrate, forexample multiuser or noisy simulations.

    It should also be noted that there is more than one way to produce the same desiredoutput. Therefore in cases where a designer wishes to specify each component,discrete single function blocks are provided. If a standard compliant full uplink isrequired, then a single fully parameterised block is available.

  • 8/6/2019 3GFDDLib Mathworks Manual

    21/267

    94 Using the Library

    Information Bits

    Cyclic Redundancy Coding

    Convolutional Coding

    1st Interleaving

    Rate Matching

    2nd Interleaving

    OVSF

    Transport

    CRCGen

    ConvEnc

    IntLeave

    RateM

    IntLeave

    Fading

    DPCCHGen

    TrChCdr

    Complex Gain,

    Channel Models

    CRC

    CHCODEC

    PHYCH

    MPTH

    RM

    Turbo Coding

    TurboEnc

    RealandImaginary

    ChannelCodec

    3GPP FDD - Uplink Transmit

    DPCHGEN

    UL

    UpLink

    RF Output

    IntLeave

    Transport Channel MuxPhysical Control Chan Gen.

    TChMux

    Figure4.1.1:

    Upl

    inktransmit-criticalblockpathsintransportandphysicalch

    annels.

    BDMOV

    Control Data

    Imag RealSPDR

    Complex Data Output

    Pulse Shaping

    RF Modulation

    Complex data path

    In-Phase Data

    RF Output

    or

    Short Code Gen.Long Code Gen.

    ULSCGen ULLCGen

    SSCC

    UL

    LSCC

    UL

    or

    Quadrature data

    Cos

    Sin

    CplxMpy

    SPRDR

    Moving Birth/Death Cplx Gain

    or

    or

    or or or

    OVSF

    OVSF

    Spreader

  • 8/6/2019 3GFDDLib Mathworks Manual

    22/267

  • 8/6/2019 3GFDDLib Mathworks Manual

    23/267

    114 Using the Library

    4.2 Downlink Transmit and Receive.

    Figure 4.2.1 shows the generic functionality of the blocks that produce a downlinktransmitter simulation, whilst in Figure 4.2.2 the downlink receiver is shown. Notethat again, these figures only indicate the critical block path and do not illustrate,for example, multiuser or noisy simulations. Also note that there is more than one

    way to produce the same desired output. Therefore in cases where a designer wishesto specify each component, discrete single function blocks are provided. Howeverif a standard compliant full downlink link is required, then a single fullyparameterised block is available.

  • 8/6/2019 3GFDDLib Mathworks Manual

    24/267

    124 Using the Library

    Orthogonal Variable

    Downlink

    OVSF

    DLLCGen

    OVSF

    LSCC

    DL

    Spreading Function

    3GPP FDD - Downlink Transmit

    DPCHGEN

    DL

    DownLink

    RF Output

    Cyclic Redundancy Coding

    Convolutional Coding

    1st Interleaving

    Rate Matching

    2nd Interleaving

    Transport

    CRCGen

    ConvEnc

    IntLeave

    RateM

    IntLeave

    IQSplit

    DPCCHGen

    TrChCdr

    CRC

    CHCODEC

    PHYCH

    RM

    Turbo Coding

    TurboEnc

    ChannelCodec

    IntLeave

    Transport Channel MuxPhysical Control Chan Gen.

    TChMux

    Figure4.2.1:

    Downlinktransmit:criticalblockpa

    thsintransportandphysicalc

    hannels.

    Information bits

    SPRDR

    SPDRSpreader

    RF Output

    Pulse ShapingRF Modulation

    Cos

    Sin

    ClockGen

    ClockGenerator

    Complex data path

    Fading

    Complex Gain,

    Channel ModelsMPTH BDMOV

    Moving Birth/Death Cplx Gain

    CplxMpyCode Gen.

    Complex data path

    Complex Data Output

    or

    or or or

    or

    or

  • 8/6/2019 3GFDDLib Mathworks Manual

    25/267

    134 Using the Library

    OVSF

    OVSF

    Cyclic Redundancy Decode

    Convolutional Decoding

    1st Deinterleaving

    Rate Recovery

    2nd Deinterleaving

    Transport

    CRCGen

    ConvDec

    DeIntLev

    RateM

    DeIntLev

    TrChCdr

    CRC

    CHCODEC

    RM

    Turbo Decoding

    TurboDec

    ChannelCodec

    3GPP FDD - Downlink Receive

    Demultiplexing

    Demux12

    Figure4.2.2:

    Downlinkreceive:criticalblockpathsintransportandphysicalchannels.

    Information bits

    Pulse Shaping

    RF Demodulation

    Cos

    Sin

    Complex Data InputRF Input

    CplxMpy

    SPDR

    SPRDR

    or ClockGen

    ClockGenerator

    Complex Symbols

    IntDump Cmplx Gain

    or

    or

    or

    Downlink

    DLLCGen

    LSCCDL

    Code Gen.

  • 8/6/2019 3GFDDLib Mathworks Manual

    26/267

    144 Using the Library

    4.3 Block Processing

    All the library blocks operate in a sample by sample processing fashion. If a blockis required to operate on a specific frame of data (e.g. a block interleaver) then itwill serialize and de-serialize this array of data internally during processing. Toensure that the boundaries of data frames remain aligned as they pass through

    consecutive processing blocks, the library provides a number of parameters tocontrol the synchronization.

    4.3.1 The Delay Offset feature.

    Consider the following simple system, shown in Figure 4.3.1, consisting of a sourcewhich is interleaved and deinterleaved with an arbitrary delay in between. Assumethat the interleaving and deinterleaving block lengths are 804 bits.

    In the case of the delay being zero ( ), the deinterleaver will see a perfectly

    aligned block to deinterleave and the input and output will simply be shifted relativeto each other by 1608 bits - just double the block length. However, if the delay isnon-zero, say sample delays, the data into the de-interleaver will be mis-aligned and a corrupted output will be produced. One method of working aroundthis situation is to introduce enough further delay to resynchronise. In this case 804-5 = 799 samples. This is an awkward solution and will mean an extra 799 sampleswill have to be processed before output data is available, thus unnecessarilyextending the simulation length. In the case of blocks with the delay offsetfeature, all that is required is to enable the feature by specifying 5 in the delay offset

    and enabling the delay in samples check box. Alternatively, the time for 5samples could be entered in the delay offset and the delay in samples check boxleft unchecked.

    See Section 5.3.8 on page 102 for dialog box example of these parameters.

    The delay offset mechanism is therefore an effective mechanism for coping withdelays in data that requires to be synchronised for processing.

    zNinput output

    Figure 4.3.1: Interleaving with delay

    N 0=

    N 5=

  • 8/6/2019 3GFDDLib Mathworks Manual

    27/267

    154 Using the Library

    4.3.2 The No Leading Output feature

    The No Leading Output functionality is not support in Simulink. The library isavailable for a number of different simulation platforms however not a simulatorsoffer the same kind of scheduling features. The No Leading Output feature is onlysupported on platforms which combine both data-flow and event-driven aspects intheir model of computation.

  • 8/6/2019 3GFDDLib Mathworks Manual

    28/267

    165 The 3GPP:fdd Library Blocks

    5 The 3GPP:fddLibrary Blocks

    This section specifies the parametric and functional operation of the FDD libraryblocks. The library blocks are outlined in the following subsections:

    5.1 Spectrum Spreading and Channelisation Waveform Generators

    5.2 Code and Channel Generators

    5.3 Channel Coding

    5.4 Channel Generators

    5.5 Channel Models

    5.6 Synchronisation

    5.7 Physical Measurements

    5.8 Signal Multiplexors and Demultiplexors

    5.1 Spectrum Spreading and Channelisation Waveform Generators

    The library provides a number of blocks which will produce standard compliantspreading codes for the uplink and downlink, and also orthogonal codes forchannelisation. The following blocks are provided:

    Orthogonal Variable Spreading Function Code Generator (OVSF)

    Uplink Short Scrambling Code Generator (ULSCGen)

    Uplink Long Scrambling Code Generator (ULLCGen)

    Downlink Long Scrambling Code Generator (DLLCGen)

    Spreader/Despreader (Spreader)

    Orthogonal Variable Spreading Function Fast Hadamard Transform

    (OVSFTran)

    The blocks allow the designer to build the scrambling/spreading usingcombinations of blocks or to use the SPRDR block which provides a single blockthat will implement the standard compliant, short, long, and orthogonal codes asappropriate for either the uplink or downlink. Figure 4.1.1 to Figure 4.2.2 illustratethe cross-over functionality between these blocks.

    OVSF

    SSCC

    UL

    LSCC

    UL

    LSCCDL

    SPDR

    OVSFFHT

  • 8/6/2019 3GFDDLib Mathworks Manual

    29/267

    175 The 3GPP:fdd Library Blocks

    5.1.1 Orthogonal Variable Spreading Function (OVSF) Code Generator

    Block Name: OVSFGen

    Abbreviation: OVSF

    Synopsis: This block generates OVSF code sequences according to the specifiedclass/spreading factor and code number within the class.

    Block Inputs: Clock: Normally the chip rate clock. The code advances on therising edge of the clock input.

    Block Outputs: Output: The code output sequence, updated on the rising edges

    of the clock input.

    Parameter RangeDefaultValue

    Definition

    Code Class/Spreading factorC1..C12

    SF=2..4096C7/128

    The OVSF code class andlength. This determines thesize of the Hadamard matrix

    SF x SF

    Code Number 0..(SF-1) 16The code number. Selects a

    row within the Hadamardmatrix

    Input Threshold All 0 Input high/low threshold

    True Output All -1 True output voltage

    False Output All 1 False output voltage

    OVSF

  • 8/6/2019 3GFDDLib Mathworks Manual

    30/267

    185 The 3GPP:fdd Library Blocks

    Discussion: The OVSF codes are used as channelisation codes to maintainorthogonality between different physical channels. They are also known as Walshcodes or OVSF codes and are generated from a Hadamard matrix as show below:

    [5.1.1]

    [5.1.2]

    [5.1.3]

    [5.1.4]

    where is a power of two and denotes the binary complement of . The

    channelisation code is the th row of whose binary elements havebeen mapped into real values where and . The different codesgenerated are

    , for [5.1.5]

    , for [5.1.6]

    , for [5.1.7]

    H1 0=

    H20 0

    0 1=

    H4

    0 0 0 0

    0 1 0 1

    0 0 1 1

    0 1 1 0

    =

    H2N

    HNHN

    HNHN

    =

    N HN HN

    Cch SF k, , k HSF0 +1 1 1

    Cch 1 0, , 1= SF 1=

    Cch 2 0, ,

    Cch 2 1, ,

    Cch 1 0, , Cch 1 0, ,

    Cch 1 0, , C ch 1 0, ,

    1 1

    1 1= = SF 2=

    Cch 2

    n 1+( )0, ,

    Cch 2

    n 1+( )1, ,

    Cch 2

    n 1+( )2, ,

    Cch 2

    n 1+( )3, ,

    C

    ch 2n 1+( )

    2n 1+( )

    2, ,

    Cch 2

    n 1+( )2

    n 1+( )1, ,

    Cch 2

    n0, ,

    Cch 2

    n0, ,

    Cch 2

    n0, ,

    Cch 2

    n0, ,

    Cch 2

    n1, ,

    Cch 2

    n1, ,

    Cch 2

    n1, ,

    Cch 2

    n1, ,

    C

    ch 2n

    2n

    1, ,C

    ch 2n

    2n

    1, ,

    Cch 2

    n2

    n1, ,

    Cch 2

    n2

    n1, ,

    = SF 2n 1+( )

    =

  • 8/6/2019 3GFDDLib Mathworks Manual

    31/267

    195 The 3GPP:fdd Library Blocks

    where . For a given SF, there are SF different orthogonal codes.The orthogonal channelisation codes can be easily generated using the tree structureshown in Figure 5.1.1.

    The spreading code period is the symbol period, hence, for a given chip rate, thespreading code period depends on the symbol rate.

    Parameter Dialog Box: Default parameters shown.

    References:

    3G TS 25.213: Spreading and Modulation (FDD)

    n 1 2 12, , ,=

    Cch 1 0, , 1( )=

    Cch 2 0, , 1 1,( )=

    Cch 2 1, , 1 1,( )=

    Cch 4 0, , 1 1 1 1, , ,( )=

    Cch 4 1, , 1 1 1 1, , ,( )=

    Cch 4 2, , 1 1 1 1, , ,( )=

    Cch 4 3, , 1 1 1 1, , ,( )=

    Cch 8 0, ,

    Cch 8 1, ,Cch 8 2, ,

    Cch 8 3, ,

    Cch 8 4, ,

    Cch 8 5, ,Cch 8 6, ,

    Cch 8 7, ,

    SF 1= SF 2= SF 4= SF 8=

    Figure 5.1.1: Orthogonal code generation structure

  • 8/6/2019 3GFDDLib Mathworks Manual

    32/267

    205 The 3GPP:fdd Library Blocks

    5.1.2 Uplink Short Scrambling Code Generator

    Block Name: UplinkSCGen

    Abbreviation: ULSCGen

    Synopsis: Uplink Short Scrambling Code Generator

    See Also: Uplink Long Scrambling Code Generator

    Block Inputs: Clock: Normally the chip-rate clock. The code advances on therising edge of the clock input.

    Block Outputs: Real: Real (I) code sequence updated on the rising edge of theinput clock signal.

    Imaginary: Imaginary (Q) code sequence updated on the risingedge of the input clock signal.

    Discussion: The uplink short scrambling code is a 256 chip length code generatedfrom two sequences and , which are obtained from aquaternary sequence . The th quaternary sequenceis calculated by adding three modulo 4 sequences, a quaternary sequence andtwo binary sequences and . The initial value of the sequences is

    Parameter RangeDefaultvalue

    Definition

    User Index 0x1, 0x2,0x3

    24 bit user index in hexadec-imal

    Input Threshold All 0 Input high/low threshold

    True Output All -1 True output voltage

    False Output All 1 False output voltage

    SSCC

    UL

    0 n 224 1

    cshort 1 n, , i( ) cshort 2 n, , i( )z i( ) n zn i( ) 0 n 16777215 ,

    a i( )b i( ) d i( )

  • 8/6/2019 3GFDDLib Mathworks Manual

    33/267

    215 The 3GPP:fdd Library Blocks

    determined from the code number (specified in the parameter dialog box as 24 bituser index n). If is the 24-bit binary representation of the codenumber , the initial values of the registers are loaded as specified below:

    [5.1.8]

    [5.1.9]

    [5.1.10]

    [5.1.11]

    The sequences , and are generated recursively according to thefollowing equations

    [5.1.12]

    [5.1.13]

    [5.1.14]

    is generated as

    [5.1.15]

    and is extended to length 256 chips by setting . is thenmapped into the real sequences and by using the tablebelow.

    0 +1 +1

    1 -1 +1

    2 -1 -1

    3 +1 -1

    nn23 n22 n0, , ,

    n

    a 0( ) 2n0 1 modulo 4+=

    a i( ) 2ni modulo 4 i, 1 2 7, , ,= =

    b i( ) n8 i+ modulo 2 i, 0 1 7, , ,= =

    d i( ) n16 i+ modulo 2 i, 0 1 7, , ,= =

    a i( ) b i( ) d i( )

    a i( ) a i 3( ) a i 5( ) 3a i 6( )+ +=

    2+ a i 7( ) 3a i 8( ) mod 4 i,+ 8 9 254, , ,=

    b i( ) b i 1( ) b i 3( )+=

    b+ i 7( ) b i 8( ) mod 2 i,+ 8 9 254, , ,=

    d i( ) d i 1( ) d i 3( )+=

    d+ i 4( ) d i 8( ) mod 2 i,+ 8 9 254, , ,=

    zn i( )

    zn i( ) a i( ) 2b i( ) 2d i( ) mod 4 i,+ + 0 1 254, , ,= =

    zn 255( ) zn 0( )= zn i( )cshort 1 n, , i( ) cshort 2 n, , i( )

    zn i( ) cshort 1 n, , i( ) cshort 1 n, , i( )

  • 8/6/2019 3GFDDLib Mathworks Manual

    34/267

    225 The 3GPP:fdd Library Blocks

    Finally the complex valued uplink short scrambling sequence is defined as

    [5.1.16]

    for , where denotes rounding to nearest lower integer.

    The system to generate the 255 chip sequence is shown in the block schematicsection, the generated sequence still needs to be extended by one chip to obtain therequired 256 chip sequence.

    Initial Values: The binary representation of the initial value is

    loaded in the shift registers as shown below

    Cshort n,

    Cshort n, i( ) cshort 1 n, , i mod 256( ) 1 j 1( )icshort 2 n, , 2 i mod 256( ) 2( )+

    =

    i 0 1 255, , ,=

    n23 n22 n0, , , n

    d 0( )

    mod 2mod 2 mod 2

    b 0( )

    mod 4 mod 4 mod 4 mod 4

    33 32

    a 0( )

    2n0 1+( )mod42n1mod4

    2n2mod4

    2n3mod4

    2n4mod4

    2n5mod4

    2n6mod4

    2n7mod4

    n8n9n10n11n12n13n14n15

    n16n17n18n19n20n21n22n23

    mod 2 mod 2 mod 2

    mod n addition

    multiplication

    delay

    Figure 5.1.2: The modulo-4 and two modulo-2 sequence generators.

  • 8/6/2019 3GFDDLib Mathworks Manual

    35/267

    235 The 3GPP:fdd Library Blocks

    Block Schematic:

    Parameter Dialog Box: Default parameters shown.

    References:

    3G TS 25.213: Spreading and Modulation (FDD)

    d i( )

    mod 2mod 2 mod 2

    b i( )

    mod 4 mod 4 mod 4 mod 4

    33 32

    a i( )

    mod 2 mod 2 mod 2

    2

    2

    mod 4

    zn i( )mapper

    cshort 1 n, , i( )

    cshort 2 n, , i( )

    mod n addition

    multiplication

    delay

    Figure 5.1.3: Uplink short scrambling code generator.

  • 8/6/2019 3GFDDLib Mathworks Manual

    36/267

    245 The 3GPP:fdd Library Blocks

    5.1.3 Uplink Long Scrambling Code Generator

    Block Name: UplinkLCGen

    Abbreviation: ULLCGen

    Synopsis: This block generates the uplink long scrambling code sequence.

    See Also: Uplink Short Scrambling Code Generator

    Block Inputs: Clock: Normally the chip-rate clock. The code advances on therising edge of the clock input.

    Block Outputs: Real: Real (I) phase of the code sequence, updated on the risingedges of the clock input.

    Imaginary: Imaginary (Q) phase of the code sequence, updatedon the rising edges of the clock input.

    Discussion: This block generates the long scrambling code used in the uplink. Allphysical channels can be scrambled by a long or a short scrambling code. There are224 long and 224 short scrambling codes.

    The long scrambling codes and are Gold sequences, which arethe result of adding modulo 2 two m-sequences, and generated from twogenerator polynomials of degree 25. is a 16777232 chip shifted version

    of the sequence .

    Parameter RangeDefaultvalue

    Definition

    Code Number 0 - (225-2) 10 Scrambling code number

    Code Period Positive 38400 Code repetition period

    Input Threshold All 0 Input high/low threshold

    True Output All -1 True output voltage

    False Output All 1 False output voltage

    LSCC

    UL

    clong 1 n, , clong 2 n, ,x y

    clong 2 n, ,

    clong 1 n, ,

  • 8/6/2019 3GFDDLib Mathworks Manual

    37/267

    255 The 3GPP:fdd Library Blocks

    Let be the binary representation of the code number provided bythe user in the parameter dialog box. This value is used as initial condition togenerate the sequence in a linear shift register. If is the th symbol of thesequence , then

    [5.1.17]

    The initial conditions for sequence are

    [5.1.18]

    Once the registers have been initialized, the following recursions are used

    [5.1.19]

    [5.1.20]

    By adding and modulo 2, a Gold sequence is obtained

    [5.1.21]

    takes he values . A real valued Gold sequence that takes values

    is defined

    [5.1.22]

    the sequences and can now be defined as

    [5.1.23]

    [5.1.24]

    The shift register structure used to generate and is shown in theblock schematic section. The uplink complex valued long scrambling sequence

    is finally generated as

    [5.1.25]

    for , and where denotes rounding to the nearest lowerinteger.

    n23 n22 n0, , , n

    xn xn i( ) ixn

    xn 0( ) n0 xn 1( ), n1 xn 23( ), , n23 xn 24( ), 1= = = =y

    y 0( ) y 1( ) y 23( ) y 24( ) 1= = = = =

    xn i 25+( ) xn i 3+( ) xn i( ) mod 2, i+ 0 225

    27, ,= =

    y i 25+( ) y i 3+( ) y i 2+( ) y i 1+( ) mod 2, i+ + 0 225

    27, ,= =

    xn i( ) y i( ) zn

    zn i( ) xn i( ) y i( ) modulo 2, i+ 0 1 225

    2, , ,= =

    zn 0 1,{ } Zn i( )

    1 1,{ }

    Zn i( )+1 ifzn i( ) 0=

    1 ifzn i( ) 1=for i

    0 1 225

    2, ,= =

    clong 1 n, , clong 2 n, ,

    clong 1 n, , Zn i( ) i, 0 1 225

    2, , ,= =

    clong 2 n, , Zn i 16777232+( ) modulo 225

    1( )( ) i, 0 1 225

    2, , ,= =

    clong 1 n, , clong 2 n, ,

    Clong n, i( )

    Clong n, i( ) clong 1 n, , i( ) 1 j 1( )i

    clong 2 n, , 2 i 2( )+( )=

    i 0 1 225

    2, , ,=

  • 8/6/2019 3GFDDLib Mathworks Manual

    38/267

  • 8/6/2019 3GFDDLib Mathworks Manual

    39/267

    275 The 3GPP:fdd Library Blocks

    3G TS 25.213: Spreading and Modulation (FDD)

  • 8/6/2019 3GFDDLib Mathworks Manual

    40/267

    285 The 3GPP:fdd Library Blocks

    5.1.4 Downlink Long Scrambling Code Generator

    Block Name: DownlinkLCGen

    Abbreviation: DLLCGen

    Synopsis: Generates the downlink complex scrambling sequence.

    Block Inputs: Clock: Normally the chip rate clock. The code advances on the

    rising edge of the clock input.

    Block Outputs: Real: Real (I) phase of the code sequence, updated on the risingedges of the clock input.

    Parameter RangeDefaultvalue

    Definition

    Scrambling Code Group 1 - 64 1

    Group of scrambling code,each consists of 8 primarycodes and 120 secondary

    codes

    Primary Code Cp0 - Cp7 Cp0 Primary code group

    Secondary Code Pri., Cs1 - Cs15 Pri. Secondary code group

    Code No. 0-218-1 0 No. of scrambling code

    Code Period Positive 38400 Scrambling code periodbefore repeating

    Compressed Mode Enable/Disable DisableEnables the use of the

    compressed mode

    Left Alt. Code Enable/Disable EnableThe left alternative code isused (only in compressed

    mode is enabled)

    Right Alt. Code Enable/Disable Disable

    The right alternative code is

    used (only in compressedmode is enabled)

    Input Threshold All 0 Input high/low threshold

    True Output All -1 True output voltage

    False Output All 1 False output voltage

    LSCC

    DL

  • 8/6/2019 3GFDDLib Mathworks Manual

    41/267

    295 The 3GPP:fdd Library Blocks

    Imaginary: Imaginary (Q) phase of the code sequence, updatedon the rising edges of the clock input.

    Discussion: The structure used to generate the downlink scrambling code is shownin the Block Schematic section. It can be seen that a total ofdifferent codes can be generated, but not all of them are used. Only 8192 are used,which are divided into 64 groups of 128 codes. Each group has 8 primary code and120 secondary codes. There is a one to one correspondence between each primarycode and 15 secondary codes, therefore there are secondary codes ineach code group. Table 5.1.1 shows the correspondence between the code numbergenerated and the code group, the primary and the secondary codes.

    It can be seen that the primary codes are codes number with

    . The secondary codes are codes number with, therefore only codes are used.

    In compressed mode each of the scrambling codes has two codes associateddepending on whether left or right alternative codes are used. This can be specifiedin the parameter dialog box when the compressed mode is selected. Thecorrespondence of compressed mode codes with the code group number, theprimary code, the secondary code and the code number are shown in Table 5.1.2.Alternative codes may be used for compressed frames.

    Left alternative codes corresponding to code are codes number , whileright alternative codes are codes number . If the channelisation code usedfor non-compressed frames is , left codes are used if and rightcodes if .

    The complex valued scrambling sequence is generated by combining two realvalued Gold sequences, which are constructed from two m-sequences generated bymeans of two generator polynomials of degree 18.

    Let the two m-sequences be and . These sequences are generated with thefollowing initial conditions

    [5.1.26]

    [5.1.27]

    The recursive expressions which determine the value of subsequent symbols are

    [5.1.28]

    [5.1.29]

    218 1 262143=

    15 8 120=

    n 16i=

    i 0 1 511, , ,= 16i k+k 1 15, ,= n 0 1 8191, , ,=

    n n 8192+n 16384+

    cch, SF m, m SF 2=0

    A numeric identifier for this

    transport channel.

    TTI {10,20,40,80}Specifies the Transmit TimeInterval (TTI) in milliseconds.

    CRC {0,8,12,16,24} Specifies the CRC length in bits.

    Coding {conv2,conv3,turbo}Specifies the type of channel

    coding: 1/2 rate convolutional, 1/3rate convolutional or turbo.

    RMAttribute 1...256

    Rate matching attribute, involvedin rate matching calculation anddetermines rate matcher output

    block sizes.

    SourceType, SourceValue See section on Source Configuration.

    DynamicPartList must occur onceDefines the aspects of the

    transport channel configurationwhich can change from TTI to TTI.

    Element: DynamicPartList

    Element Range Definition

    TBSmust occur at least

    once, may occur morethan once

    Specifies the configuration oftransport blocks for a TTI.

    Element: TBS

    Attribute Range Definition

    BlockSize 1...163840Size of an individual transport

    block at the input to the channelcoding.

    BlockSetSize1...163840 and aninteger multiple of

    BlockSize

    Total size of the set of transportblocks for channel coding.

  • 8/6/2019 3GFDDLib Mathworks Manual

    83/267

    715 The 3GPP:fdd Library Blocks

    Compressed Mode schedule XML Configuration File Format:

    Element: Patterns

    Element Range Definition

    Patternmust occur at leastonce, may occurmore than once

    Specifies the configuration of the acompressed mode pattern.

    Element: Pattern

    Attribute Range Definition

    Active {0,1}Specifies whether or not this

    pattern is active; if not it is ignored.

    TGCFN 0...255 Connection Frame Number.

    TGSN 0...14Starting Slot Number, the start of

    Gap 1.

    TGL1 0...14 Gap 1 Length.

    TGD integerGap Distance, the distance

    between the start of Gap 1 andGap 2.

    TGL2 0...14 Gap 2 Length.

    TGPL1 integer Period of Pattern 1.

    TGPL2 integer Period of Pattern 2.a

    a. TGPL1 and TGPL2 cannot both be zero.

    TGPRC integer Pattern Repetition Count.

    CompressionType {SFR,HLS,PUNC}

    Specifies the manner in whichCompression is achieved:

    Spreading Factor Reduction,Higher Layer Signalling or

    Puncturing.

    FrameType {A,B}

    Specifies the frame type A or B;results in a modified slot format.

    See the table of DPCH slot formatsbelow.

  • 8/6/2019 3GFDDLib Mathworks Manual

    84/267

    725 The 3GPP:fdd Library Blocks

    DPCH Slot Formats: This table shows the slot formats resulting from the choiceof SlotFormat attribute in the PhyCH XML configuration element and theFrameType attribute in the Compressed Mode Pattern XML configuration element:

  • 8/6/2019 3GFDDLib Mathworks Manual

    85/267

    735 The 3GPP:fdd Library Blocks

    Source Configuration:

    The table below shows the valid combinations of SourceType and SourceValueelements to generate source data. All sources produce a sequence of values 0 and 1i.e. representing bits. In the case of finite-length definition of sources such asbitfield and file, the bit sequence generated will repeat when more bits are requestedfrom this source than are defined by it.

    SourceTypea

    a. The strings describing SourceType are case-insensitive.

    SourceValueinterpretation

    SourceValueRange

    Definition

    pn9integer seed forPN initialisationb

    b. If a seed value of 0 is given for any of the PN sequence sources, a randomly chosen seed will be internally generated.

    0...511

    Generates the bit sequencefrom PN generator with

    polynomial with

    starting state given by

    SourceValue.

    pn15integer seed forPN initialisation

    0...32767

    Generates the bit sequencefrom PN generator with

    polynomial with

    starting state given bySourceValue.

    filestring specifying

    filename

    a valid filename specifying a file containingwhitespace separated characters 0 and 1

    representing bits.

    bitfieldstring specifying

    bitfieldSee Source Configuration Examples.

    zeros -- -- A source producing zeros.

    ones -- -- A source producing ones.

    pn9_itu integer seed forPN initialisation 0...511

    Generates the bit sequencefrom PN generator with

    polynomial with

    starting state given bySourceValue.

    pn23integer seed forPN initialisation

    0...8388607

    Generates the bit sequencefrom PN generator with

    polynomial

    with starting state given bySourceValue.

    x9 x4 1+ +

    x15 x 1+ +

    x9 x5 1+ +

    x23 x18 1+ +

  • 8/6/2019 3GFDDLib Mathworks Manual

    86/267

    745 The 3GPP:fdd Library Blocks

    Source Configuration Examples:

    Example CCTrCH / PhyCH XML configuration:

    SourceType SourceValueSource bit sequence

    generatedInterpretation

    bitfield 1001 1,0,0,1,1,0,0...

    SourceValue

    interpreted as a binaryvector of bits

    bitfield 0xA5 1,0,1,0,0,1,0,1,1,0,1...

    SourceValueinterpreted as a

    hexidecimal number,converted into a

    sequence of bits.a

    a. Bit sequence generated will always be a multiple of 4 bits in length i.e. leading zero bits of most significant nibble will be

    generated.

  • 8/6/2019 3GFDDLib Mathworks Manual

    87/267

    755 The 3GPP:fdd Library Blocks

    Example Compressed Mode schedule XML configuration:

    Block Inputs: None

    Block Outputs: PhyCH Chip Real: Real part of the chip output from the physi-cal DPCH channel.

    PhyCH Chip Imag: Imaginary part of the chip output from the

    physical DPCH channel. CCTrCH Frame: Current frame of data in the coded composite

    transport channel. DCH0 TBS: The transport block set bits input to the coding for

    the first transport channel in the coded composite. DCH1 TBS: The transport block set bits input to the coding for

    the second transport channel in the coded composite.

  • 8/6/2019 3GFDDLib Mathworks Manual

    88/267

    765 The 3GPP:fdd Library Blocks

    Parameter Dialog Box:

  • 8/6/2019 3GFDDLib Mathworks Manual

    89/267

    775 The 3GPP:fdd Library Blocks

    5.3 Channel Coding

    Prior to transmission information bits are coded to allow for error detection andcorrection at the receiver. The library provides a number of channel coding blockswhich can be configured with 3GPP standard values. Each coding mechanism (i.e.convolutional coding, turbo coding, CRC coding, interleaving etc.) is implemented

    by an individual block. Alternatively the Transport Channel Coder allows all of thetransport channel coding functions to be performed in one block. The followingchannel coding blocks are included in the library:

    Cyclic Redundancy Coding (CRC) - Encoder/Decoder (CRCGEN)

    Convolutional Encoder (ConvEnc)

    Convolutional Decoder (Viterbi Algorithm) (ConvDec)

    Turbo Encoder (TurboEnc)

    Turbo Decoder (TurboDec)

    Rate Matcher (RateMtch)

    Interleaver (IntLeave)

    De-Interleaver (DeIntLev)

    Transport Channel Coder (TrChCdr)

    Transport Channel Multiplexer (TrChMux)

    CRC

    RM

    CHCODEC

  • 8/6/2019 3GFDDLib Mathworks Manual

    90/267

    785 The 3GPP:fdd Library Blocks

    5.3.1 Cyclic Redundancy Coding (CRC) - Encoder/Decoder

    Block Name: CRCGen

    Abbreviation: CRCGen

    Synopsis: In encode mode this block reads in data bits segmenting them intotransport channel blocks. A CRC checksum is computed and appended to the block.In decode mode, the block removes the CRC and indicates if any errors occurred inthe block.

    Block Inputs: Data Input: The serial input data. The input sample rate mustbe equal to the bit rate.

    Block Outputs: Data Out: In encode mode this signal consists of input data(systematic) bits followed by CRC parity bits per block

    Parameter RangeDefaultvalue

    Definition

    Mode Encode/Decode DecodeSelects Encode or Decode

    mode

    Polynomial

    GRCR8,GCRC12,GCRC16,GCC24

    GCRC16Selects the polynomial to be

    used for CRC checksumcalculation

    Block Length (bits) 20

    Block length over which theCRC is computed. In this

    description the block lengthis denoted as

    Offset Delay 0Delay offset in bits or

    seconds

    Offset in Bits Enable/disable DisableIndicates that offset delay is

    specified in bits when

    checked.

    Input Threshold All 0 Input high/low threshold

    TRUE Output All 1 TRUE output voltage

    FALSE Output All -1 FALSE output voltage

    No leading output Enable/disable DisableSee section on leading

    output.

    CRC

    0>

    N

    0

    NM

  • 8/6/2019 3GFDDLib Mathworks Manual

    91/267

    795 The 3GPP:fdd Library Blocks

    period. In this mode the sampling rate (of the output) istimes the input sampling rate. In decode mode this

    signal consists of systematic bits which were read from theData Input signal per block period. No error correction is per-formed. The sampling rate is times the input sam-ple rate in decode mode.

    Error: This output signal is only required in decode mode (it isset to FALSE in encode mode), and is used to indicate that anerror has been detected (i.e. a discrepancy exists between thedata bits and the parity bits). This signal is TRUE when an errorhas been detected, and FALSE when no error has been detectedin the current data block. The sampling rate is the sample as thatof the Data Out signal.

    Discussion: The CRC block can operate in either Encode or Decode mode.

    In encode mode the block reads in bits at a time and generates parity bitswhich are appended to the original block to create an output block size ofbits. This is shown in Figure , where are the input data bits, and are thecalculated parity bits.

    To produce the parity bits the input bits are mapped to the coefficients of apolynomial where TRUE logic levels are represented by the value 1 and FALSElogic levels are represented by the value 0. The first bit is the coefficient of thehighest power term, the second bit the coefficient of the second highest power term,

    and so on as shown below.

    [5.3.1]

    N M+( ) NM

    N N M +( )

    N MM N+( )

    bi{ } Pj{ }

    b1 b2 bN pMpM 1 p1

    1 2 N 1+ N 2+ M N+block pos: N

    Figure 5.3.1: Output block structure of CRC encoder.

    M N

    I D( ) biDN i

    i 1=

    N

    b1DN 1

    b2DN 2

    bN 1 D bN+ + + += =

  • 8/6/2019 3GFDDLib Mathworks Manual

    92/267

    805 The 3GPP:fdd Library Blocks

    The resulting polynomial is then multiplied by and divided by thegenerator polynomial specified by the polynomial parameter, using modulo-2division. The parity bits are the coefficients of the remainder polynomial, .

    [5.3.2]

    The number of parity bits is determined by the label of the polynomial which isbeing used. For example if is used then there are 16 parity bits. Eq.5.3.3 describes the relationship between the input polynomial, the generatorpolynomial and the remainder polynomial where is the quotient of themodulo-2 division operation. The polynomial in Eq. 5.3.4 describes the output ofthe block in encode mode.

    [5.3.3]

    [5.3.4]

    The generator polynomials used in this block are specified in 3G TS 25.212, andare shown below.

    [5.3.5]

    [5.3.6]

    [5.3.7]

    [5.3.8]

    In decode mode, the CRC block receives input bits and creates the apolynomial in a similar manner to encode mode but with coefficients. Thispolynomial is then divided by the specified CRC polynomial usingmodulo-2 division. If the remainder is zero, no CRC errors have occurred. Theerroroutput reflects the state of the CRC check. The output stream consists of the

    systematic bits of the received block. Noerrorcorrection is performed by thisblock.

    The block period is defined as the time for a samples to be read at the inputin encode mode, or samples to be read at the input in decode mode. Thedelay between input and output is equal to the block period irrespective of whatmode the block is operating in.

    I D( ) DM

    R D( )

    R D( ) piDM i

    i 1=

    M

    p1DM 1

    p2D

    M 2

    pM 1 D pM+ + + += =

    GCRC16 D( )

    Q D( )

    DMI D( )GCRCMD( )---------------------------- Q D( ) R D( )

    GCRCMD( )----------------------------+=

    Y D( ) DMI D( ) R D( )+=

    GCRC24 D( ) D24 D23 D6 D5 D 1+ + + + +=

    GCRC16 D( ) D16 D12 D5 1+ + +=

    GCRC12 D( ) D12 D11 D3 D2 D 1+ + + + +=

    GCRC8 D( ) D8 D7 D4 D3 D 1+ + + + +=

    M N+( )M N+( )

    GCRCM

    N

    Tb NM N+( )

  • 8/6/2019 3GFDDLib Mathworks Manual

    93/267

    815 The 3GPP:fdd Library Blocks

    Equivalent circuits for encoding and decoding the data are shown below. In both ofthese the set of coefficients are derived from the CRC polynomials in Eq.5.3.5 to 5.3.8.

    In encode mode the bits are input to the encoder circuit with switch 1 in the closed.After all the bits are fed in switch 1 is open and the parity bits appear sequentiallyat the output of the circuit.

    Initial Values: The shift registers of both the encoder and decoder are initialised to

    all zeros.

    The implementation of the CRC encoder/decoder block can be represented by shiftregisters.

    In decode mode the received bit vector is fed into the error circuit with switch 1closed and switch 2 open. Once all bits are fed into the circuit switch 1 isopened and switch 2 closed. If a any TRUE values appear at the output of the circuitthen an error has occured.

    In encode mode N input bits are fed into the parity generator with the switch in theclosed position. After this the register contains the parity bits which can be shiftedout one at a time with the switch in the open position.

    gi{ }

    g1 g2 gL 1

    switch 1

    I D( ) Y D( )

    Figure 5.3.2: CRC parity generator.

    M N+( )

    switch 2

    g1 g2 gL 1

    switch 1

    CRC error checker

    Y D( ) error

    Figure 5.3.3: CRC syndrome generator.

  • 8/6/2019 3GFDDLib Mathworks Manual

    94/267

    825 The 3GPP:fdd Library Blocks

    Parameter Dialog Box: Default parameters shown.

    References:

    3G TS 25.212: Multiplexing and channel coding (FDD).

  • 8/6/2019 3GFDDLib Mathworks Manual

    95/267

    835 The 3GPP:fdd Library Blocks

    5.3.2 Convolutional Encoder

    Block Name: ConvEnc

    Abbreviation: ConvEnc

    Synopsis: The convolutional encoder block performs segmentation, tail bitinsertion and convolutional encoding at rate 1/2 or rate 1/3.

    Block Inputs: Data Input: Input stream ofsystematic data (data to be

    encoded). The sampling rate of the input is denoted as and isinterpreted as one sample per bit.

    Block Outputs: Data Output: Output stream of coded data. The sampling rateof the output is with one bit per sample.

    Parameter RangeDefaultvalue

    Definition

    Encoding Rate orDenoted . is the

    number of functiongenerators.

    Precoded Block Length (bits) 260Number of input bits grouped

    together for encoding.Denoted as

    Input Threshold All 0 Input high/low threshold

    True Output All 1 True output voltage

    False Output All -1 False output voltage

    Delay offset 0 See section on delay offset.

    Delay in Samples enable/disable disabledSets delay offset

    measurement units.

    No Leading Output enable/disable disabledSee section on no leading

    output

    Release Version{v3.0.0, v3.1.0,v3.2.0, v3.3.0,

    v3.4.0}v3.4.0

    Defines which version of the3GPP standard the

    convolutional encodershould comply with.

    1 2 1 3 1 31 R R

    1>Ms

    0

    s

    c

  • 8/6/2019 3GFDDLib Mathworks Manual

    96/267

    845 The 3GPP:fdd Library Blocks

    Discussion: This block implements a constraint length , rate( )or rate ( ) convolutional coder. Blocks of (systematic) bitsare received and processed to generate output bits where .

    The steps performed on each block are denoted in Figure 5.3.4:

    eight tail bits are appended to the block;

    the block is applied to one of the function generator circuits in Figure 5.3.5;

    the outputs of the function generators are multiplexed to form the output of

    the block.

    Each encoder produces functions of the incoming bits and multiplexes them at

    the output of the block. The following diagram shows the processing steps that ablock goes through for rate 1/2 coding, and how the encoded bits are positionedwithin the output block. is the output bit of the function generator.

    As can be seen the bits of the output block alternate between the output bits of thefunction generators, starting from the lowest index. This is also the case for the

    convolutional coder, where the output bits appear in the order. The input and output block sizes are therefore related

    by .

    Note that due to internal buffering the encoded data block will start to appear at theoutput of the coder input samples after the first bit of the input data is read.When one data block is being read in, the previous block is being coded andstreamed to the output.

    Initial Values: The shift registers of the convolutional encoders are initialised to

    all zeros.

    K 9= 1 2R 2= 1 3 R 3= Ms

    Mc Mc R Ms 8+( )=

    R

    R

    yir ith rth

    b1 b2 bMb3

    b1 b2 bMb3 0 0 0 00 00 0

    y10 y1

    1 y20 y2

    1 y30 y3

    1 yM K 1+0 yM K 1+

    1

    tail bit insertion

    convolutional encoding (1/2)

    first input bit

    first output bit

    Figure 5.3.4: The steps performed by the convolutional encoders block.

    1 3

    y10 y1

    1 y12 y2

    0 y21 y2

    2 , , , , , ,{ }Mc R Ms 8+( )=

    Ms

  • 8/6/2019 3GFDDLib Mathworks Manual

    97/267

    855 The 3GPP:fdd Library Blocks

    Block Schematic:

    Parameter Dialog Box: Default parameters shown.

    References:

    TS 25.212: Multiplexing and channel coding (FDD)

    1/2 convolutional coder

    1/3 convolutional coder

    0

    1

    2

    0

    1

    Figure 5.3.5: The structure of the convolutional coder function generators.

    : modulo-2 addition

    G0 = 561Oct

    G1 = 753Oct

    G0 = 557OctG1 = 663OctG2 = 711Oct

  • 8/6/2019 3GFDDLib Mathworks Manual

    98/267

    865 The 3GPP:fdd Library Blocks

    5.3.3 Convolutional Decoder (Viterbi Algorithm)

    Block Name: ConvDec

    Abbreviation: ConvDec

    Synopsis: This block implements a constraint length , rate ( ) orrate ( ) convolutional coder. Blocks of (systematic) bits are receivedand processed to generate output bits where .

    This block performs decoding of rate or rate , constraint lengthconvolutionally encoded data using the Viterbi Algorithm (VA). Both hard and soft

    decision modes are implemented. The block also removes the tail bitsinserted by the coder for correct trellis termination.

    .

    Parameter RangeDefaultvalue

    Definition

    Encoding Rate orDenoted as is the

    number of function

    generators in the encoder.

    Precoded Block Length (bits) 260Block length before coding

    (i.e. output block size ofdecoder). Denoted as .

    Decision Type. Hard/Soft HardDetermines whether the soft

    or hard decision Viterbialgorithm is used.

    Signalling Amplitude (v)

    (soft decision mode only) 1

    Magnitude of signalling

    levels.

    Quantisation Step (v)

    (soft decision mode only)0.2

    Voltage step betweenadjacent quantisation levels.

    Quantisation Bits

    (soft decision mode only)3

    Number of bits used torepresent the soft decisions.

    Denoted as

    Input Threshold All 0 Input high/low threshold.

    True Output All 1 True output voltage.

    False Output All -1 False output voltage.

    Delay Offset 0 See section on delay offset.

    K 9= 1 2 R 2=1 3 R 3= Ms

    Mc Mc R Ms K 1+( )=

    1 2 1 3 K 9=

    K 1

    1 2 1 3 1 31 R R

    0>Ms

    0>

    0>

    18n

    0

  • 8/6/2019 3GFDDLib Mathworks Manual

    99/267

    875 The 3GPP:fdd Library Blocks

    Block Inputs: Data Input: Input stream of coded data. The sampling rate ofthe input is with one sample per bit.

    Block Outputs: Data Output: Output stream of decoded data. The samplingrate of the output is with one sample for each bit.

    Discussion: This block implements a constraint length rate 1/3convolutional decoder using the standard Viterbi Algorithm (VA). The path depthis the same as the precoded block length, .

    The block reads in blocks of received samples, decodes them and then strips thetail bits. The output block size is given by .

    The Viterbi algorithm is a computationally efficient method of performing maximallikelihood decoding specifically for convolutional codes.

    The algorithm works by retracing the all possible sequences of states (paths) thatthe encoder could have progressed through when it generated the coded block. Ametric known as apath matrix is accumulated for each of these. When two pathsarrive at the same state then their path matrices are compared and one of them canbe disregarded. Once the paths have been traced through the whole block of data,the path matrices are compared and one path is selected is the most likely one whichactually occurred at the encoder.

    In order to generate a path matrix for a particular path, a metric is required toevaluate each branch of the path. The path matrix is defined as the sum of all of the

    branch metrics for that path. Decoding can be performed in either soft or harddecision mode.

    Delay in Samples enable/disable disabledSets delay offset

    measurement units.

    No Leading Output enable/disable disabledSee section on no leading

    output.

    Release Version{v3.0.0, v3.1.0,v3.2.0, v3.3.0,

    v3.4.0}v3.4.0

    Defines which version of the3GPP standard the

    convolutional decodershould comply with.

    Parameter RangeDefaultvalue

    Definition

    c

    s

    K 9=

    Ms

    McK 1 Ms Mc R( ) K 1+=

  • 8/6/2019 3GFDDLib Mathworks Manual

    100/267

    885 The 3GPP:fdd Library Blocks

    In hard decision mode the input to the block is a voltage, which is converted to a bitstream by applying a threshold. Let represent the bit of thesymbol (branch) of a possible path. Let similarly represent the inputbits to the viterbi decoder in hard decision mode, after thresholding. A metric forhow close is to is the hamming distance, defined as:

    [5.3.9]

    When this metric is used the path whose path matrix is smallest in value, is mostlikely to be the correct path.

    In soft decision mode the input to the viterbi decoder ( ) is quantised todifferent levels where and . The metric for a

    particular branch is defined as:

    [5.3.10]

    In soft decoding mode the path with the greatest value of path matrix is most likelyto be the correct path.

    Initial Values: The decoder is initialised to the zero state before decoding (all paths

    start from the zero state).

    cjr 0 1,{ } rt th

    jr 0 1,{ }

    cjr yjr

    j cjr yjrr

    =

    yjr LL 2

    n= yjr 0 1 2 L 1, , ,( )

    cjr

    j yjr 2cjr 1( )r

    =

  • 8/6/2019 3GFDDLib Mathworks Manual

    101/267

    895 The 3GPP:fdd Library Blocks

    Parameter Dialog Box: Default parameters shown.

    References:

    TS 25.212: Multiplexing and channel coding (FDD)

  • 8/6/2019 3GFDDLib Mathworks Manual

    102/267

    905 The 3GPP:fdd Library Blocks

    5.3.4 Turbo Encoder

    Block Name: TurboEnc

    Abbreviation: TurboEnc

    Synopsis: The turbo encoder block performs segmentation, tail bit insertion andrate convolutional encoding.

    Block Inputs: Data Input: Input stream of coded data. The sampling rate ofthe input is with one sample per bit.

    Block Outputs: Data Output: Output stream of coded data. The sampling rateof the output is with one sample per bit.

    Parameter RangeDefaultvalue

    Definition

    Encoding Rate

    Ratio of bits in / bits out forthe encoder.

    Denoted as

    Precoded Block Length (bits) 1296 Input block length

    Input Threshold All 0 Input high/low threshold

    True Output All 1 True output voltage

    False Output All -1 False output voltage

    Delay Offset 0 See section on delay offset.

    Delay in Samples enable/disable disabledSets delay offset

    measurement units.

    No Leading Output enable/disable disabledSee section on no leading

    output.

    Release Version

    {v3.0.0, v3.1.0,

    v3.2.0, v3.3.0,v3.4.0}

    v3.4.0

    Defines which version of the

    3GPP standard the turbocoder should comply with.

    R 3

    1 3 1 31 R

    0>

    0

    fs

    fc

  • 8/6/2019 3GFDDLib Mathworks Manual

    103/267

    915 The 3GPP:fdd Library Blocks

    Discussion: This block implements turbo coding using a Parallel ConcatenatedConvolutional Coding (PCCC) scheme. The block reads in blocks of bits, andproduces output blocks of coded bits.The input and output block sizes arerelated by since 12 tail bits are appended to the output of theencoder to terminate the decoder correctly.

    Since a block of bits is streamed to the output in the same time as bits areread at the input, the output sampling rate is .

    The encoded data block only begins to appear at the output after the last bit of thecorresponding input block has been read. Therefore there is a latency of inputbits between input and output.

    The encoding scheme consists of two recursive systematic convolutional encoders

    (RSC1 and RSC2) and an interleaver. RSC1 encodes the systematic data, and RSC2encodes an interleaved version of the systematic data. After a block of bits havebeen read into the coder, both the systematic and interleaved data streams begin tobe encoded. For every bit which enters the encoder, three bits are output. The outputsequence is etc.

    The interleaver generates a matrix whose size depends on the input block size .The input data block is read into the matrix row by row, and then both intra-row andinter-row permutation is performed. Intra-row permutation is performed on the

    row according to a number sequence where the bit in position of the rowis moved to position . Inter-row permutation is performed (after intra-rowpermutation) according to the sequence where row is moved to position. For a precise description of how the interleaver selects the matrix size, and the

    sequences and , refer to 3G TS 25.212.

    After permutation the matrix is read out column by column. The output of theinterleaver consists of bits, where the extra bits arise because the inputblock does not fit exactly into the matrix. The bits which did not exist in the

    original block are pruned bringing the number of bits back down to . Thecombined delay of the interleaving and the pruning operations is bits.

    Once an entire block has passed through the encoder trellis termination must beperformed: the two RSCs must be forced to the all 0 state. For both of the RSCsthis is done by applying the feedback from the shift register to the RSC input:putting the input switches in the lower position. The first three tail bits are used toterminate RSC1 (RSC1 input switch in lower position) while RSC2 is disabled. Thelast three tail bits are used to terminate RSC2 (RSC2 input switch in lower position)

    while RSC1 is disabled. For trellis termination the bits are then transmitted in thefollowing sequence:

    MsMc

    Mc RMs 12+=

    Mc Msc Mf Ms( ) fs=

    Ms

    Ms

    X 0( ) X 0( ) Y 0( ) X 1( ) X 1( ) Y 1( ), , , , ,

    Ms

    th

    cj i( ) cj i( )ij( ) p j( )

    cj i( ) j( )

    Ms l+ ll

    MsMs

    Y t( ) X t 1+( ) Y t 1+( ) X t 2+( ) Y t 2+( ) X t( ) Y t( ) X t 1+( ) Y t 1+( ) X t 2+( ) Y, , , , , , , , , ,

  • 8/6/2019 3GFDDLib Mathworks Manual

    104/267

  • 8/6/2019 3GFDDLib Mathworks Manual

    105/267

    935 The 3GPP:fdd Library Blocks

    5.3.5 Turbo Decoder

    Block Name: TurboDec

    Abbreviation: TurboDec

    Synopsis: The Turbo decoder block performs decoding of rate PCCC turbo-codes using the sub-log MAP (Maximum A Posterior) algorithm.

    Parameter RangeDefaultvalue

    Definition

    Encoding Rate Encoder rate

    Precoded Block Length 1296

    Size of block in bits beforeencoding was performed.

    Denoted .

    Input Threshold All 0 Input high/low threshold

    True Output All 1 True output voltage

    False Output All -1 False output voltage

    Signalling Amplitude (v) 1 Magnitude of signallinglevels.

    Noise Variance v2 0.001Estimate of the noise

    variance.

    Decoding Iterations 10Number of decodingiterations performed.

    Input Threshold All 0 Input high/low threshold.

    True Output All 1 True output voltage.

    False Output All -1 False output voltage.

    Delay Offset 0 See section on delay offset.

    Delay in Samples enable/disable disabledSets delay offset

    measurement units.

    No Leading Output enable/disable disabledSee section on no leading

    output.

    Release Version{v3.0.0, v3.1.0,v3.2.0, v3.3.0,

    v3.4.0}v3.4.0

    Defines which version of the3GPP standard the turbo

    decoder should comply with.

    1 3

    1 3 1 3

    0>Ms

    0>

    0>

    0>

    0

  • 8/6/2019 3GFDDLib Mathworks Manual

    106/267

    945 The 3GPP:fdd Library Blocks

    Block Inputs: Data Input: Input stream of data to be decoded at one sampleper bit. Sampling frequency is denoted

    Block Outputs: Data Output: Output stream of decoded data. Output samplingfrequency is denoted input sample rate /[R * ((M+8)/M)]where R is the rate parameter (2 or 3) and M is the input block

    size (excluding tail bits).

    Discussion: This block makes use of the sub-log MAP (Maximum A Posterior)algorithm to decode rate

    Block Schematic:

    Parameter Dialog Box: Default parameters shown.

    fc

    fs

    1 3

    MAPdecoder 1 MAP

    decoder 2

    interleaver

    de-interleaver

    interleaver

    Figure 5.3.7: Turbo Decoder.

  • 8/6/2019 3GFDDLib Mathworks Manual

    107/267

    955 The 3GPP:fdd Library Blocks

    References:

    3G TS 25.212: Multiplexing and channel coding (FDD).

  • 8/6/2019 3GFDDLib Mathworks Manual

    108/267

    965 The 3GPP:fdd Library Blocks

    5.3.6 Rate Matcher

    Block Name: RateMatch

    Abbreviation: RateMtch

    Synopsis: Implements a rate matching algorithm that punctures or repeats bits toprovide an output bit stream at a different rate to the input bit stream.

    Parameter RangeDefaultvalue

    Definition

    Tx/RxRate Matching/

    Rate Recovery

    RateMatching

    Selects whether the blockperforms rate matching (Tx)

    or rate recovery (Rx).

    Frame Before Matching (bits)

    (uplink mode)

    TTI Before Matching (bits)

    (downlink mode)

    402Number of bits in a frame/TTI

    before rate matching/afterrate recovery.

    Frame After Matching (bits)(uplink mode)

    TTI After Matching (bits)

    (downlink mode)

    490Number of bits in a frame/TTI

    after rate matching/beforerate recovery.

    Link Direction Uplink/Downlink UplinkDetermines whether uplinkor downlink transmission/

    reception is being performed.

    Span (ms)

    (Uplink mode only) 10,20,40,80 10

    Determines the frame length

    and therefore the number offrames per TTI.

    Data Coding Type Conv./Turbo Conv.

    Selects type of channelcoding or decoding which willbe or has been performed on

    the data.

    Information Type Hard/Soft HardSelects the type of datawhich is supplied by the

    demodulator.

    Input Threshold All 0 Input high/low threshold.

    True Output All 1 True output voltage.

    False Output All -1 False output voltage.

    RM

    0>

    0>

  • 8/6/2019 3GFDDLib Mathworks Manual

    109/267

    975 The 3GPP:fdd Library Blocks

    Block Inputs: Input Data: Input data stream at rate R1 bits/s with R1*Spanbits per Transmission Time Interval (TTI).

    Block Outputs: Output Data: Output data stream at a rate of R2 bits/s withR2*Span bits per Transmission Time Interval (TTI).

    Discussion: The rate matcher may be placed before the first stage of interleaving orafter it depending on whether the transmission is uplink or downlink. The linkparameter therefore selects which algorithm is to be used depending on the stage at

    which the rate matching is performed.

    The algorithm applies puncturing and repetition to the input bit stream on a block-by-block basis to match the number of input bits per block to the specified numberof output bits per block. This may be either a rate increase or a rate decrease.

    The rate matching is required because frequently the number of bits per TTI that areoutput from the channel coder/interleaver does not match that required to fill a radioframe. (The physical channel resource offers a fixed bit rate according to the

    channel rate onto which the transport channels are mapped.) Furthermore, severaltransport channels with differing Quality of Service (QoS) requirements may sharea physical channel in which case the number of bits allocated to each transportchannel in the physical channel mapping must be selected according to the QoSrequired.

    The algorithm used to perform rate matching is complex and depends on a numberof parameters. For example if turbo coding is performed then the rate matcher mustnot puncture systematic bits of data.

    Please refer to the FDD channel coding specification document 25.212 Section4.2.7 Rate Matching for details of the rate matching algorithm.

    Delay Offset 0 See section on delay offset.

    Delay in Samples enable/disable disabledSets delay offset

    measurement units.

    No Leading Output enable/disable disabledSee section on no leading

    output.

    Release Version{v3.0.0, v3.1.0,v3.2.0, v3.3.0,

    v3.4.0}v3.4.0

    Defines which version of the3GPP standard the rate

    matcher should comply with.

    Parameter RangeDefaultvalue

    Definition

    0

  • 8/6/2019 3GFDDLib Mathworks Manual

    110/267

    985 The 3GPP:fdd Library Blocks

    The Rate Matcher block has a latency of one TTI.

    Block Schematic:

    Parameter Dialog Box: Default parameters shown.

    References:

    3G TS 25.212: Multiplexing and channel coding (FDD).

  • 8/6/2019 3GFDDLib Mathworks Manual

    111/267

    995 The 3GPP:fdd Library Blocks

    5.3.7 Interleaver

    Block Name: IntLeave

    Abbreviation: IntLeave

    Synopsis: 1st stage or 2nd stage permuting interleaver.

    Parameter RangeDefaultvalue

    Definition

    Link Direction Uplink/Downlink UplinkDetermines whether uplinkor downlink transmission is

    being performed.

    Position First/Second First

    Indicates the position of theinterleaver in relation to the

    transport channelmultiplexer.

    Span (ms)

    (First position only)

    10, 20, 40, 80 20Determines the TTI andtherefore the number of

    frames per TTI.

    TTI Block Length (bits)

    (in Uplink this is before radioframe equalisation)

    804

    Number of bits per TTI. For1st Interleaver this is the

    number of bits per column.For second interleaver this is

    the entire block size to beinterleaved. Denoted .

    Information Type. Hard/Soft HardSelects the type of datawhich is supplied by the

    demodulator.

    Input Threshold All 0 Input high/low threshold.

    True Output All 1 True output voltage.

    False Output All -1 False output voltage.

    Delay Offset 0 See section on delay offset.

    Delay in Samples enable/disable disabled

    Sets delay offset

    measurement units.

    No Leading Output enable/disable disabledSee section on no leading

    output.

    0>

    M

    0

  • 8/6/2019 3GFDDLib Mathworks Manual

    112/267

    1005 The 3GPP:fdd Library Blocks

    Block Inputs: Data Input: Input data stream.

    Block Outputs: Data Output: Output (interleaved) data stream.

    Discussion: The interleaver block performs 1st and 2nd interleaving for both the

    uplink and the downlink. The operation of each is highlighted below.

    1st Interleaver

    The 1st Interleaver is a block interleaver with inter-column permutations. Data isread input data into a rectangular matrix row by row (see Eq. 5.3.11) The columnsof the matrix are then re-arranged depending on the number of frames per TTI andthen read out column by column.

    Each column represents one TTI worth of data. Therefore the number of columnsis set to the number of frames per TTI (1,2,4 or 8). The columns are re-arranged

    according to one of the permutation patterns shown in Table 5.3.1.is the original position of the th permuted column. Note that the entire block sizeof the 1st Interleaver is and not just .

    [5.3.11]

    2nd Interleaver

    The second interleaver operates on the output of the transport channel multiplexerand has a fixed span of 10 ms or 1 frame. The incoming data is read into a

    rectangular array as shown by Eq. 5.3.11 but with the number of columns fixedto 30. The number of rows is chosen as the minimum integer such that .Since the size of the input block is not necessarily a multiple of 30, the matrix maycontain a number of bits ( ) which were not in the original block. If is the blocksize then .

    TTI (ms)Numb