37
PROGRAMMING A DAB RECEIVER IN MATLAB A Project By Anwar Maresh Qahtan Saeed Submitted to Communications Laboratory Faculty of Electrical Engineering and Computer Science at the University of Kassel March 2009 Supervisor: Dipl.-Ing. Thomas Edlich

PROGRAMMING A DAB RECEIVER IN MATLAB · PROGRAMMING A DAB RECEIVER IN MATLAB ... 1.3 Radio Frequencies ... we need a bandwidth 6 times greater to send them by using FM [3]

Embed Size (px)

Citation preview

PROGRAMMING A DAB RECEIVER INMATLAB

A ProjectBy

Anwar Maresh Qahtan SaeedSubmitted to

Communications LaboratoryFaculty of Electrical Engineering and Computer Science

at the University of Kassel

March 2009

Supervisor: Dipl.-Ing. Thomas Edlich

Declaration

I hereby declare that this project is my own work. Information derived from thepublished or unpublished work of others has been acknowledged in the text and alist of references is given.

Kassel,9th March 2009

Anwar Maresh Qahtan Saeed

i

Contents

Declaration i

List of Figures iv

List of Tables v

Abstract vi

1 Introduction 11.1 History of DAB . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Advantages of DAB . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Radio Frequencies . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 How DAB Works 42.1 Ensemble Structure . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 Service Organization . . . . . . . . . . . . . . . . . . . . . . . . 52.3 Sub-Channel Organization . . . . . . . . . . . . . . . . . . . . . 72.4 Transport Mechanisms . . . . . . . . . . . . . . . . . . . . . . . 8

3 Receiver Implementation in Matlab 133.1 OFDM Guard Interval Remover . . . . . . . . . . . . . . . . . . 133.2 Differential Demodulator . . . . . . . . . . . . . . . . . . . . . . 143.3 Frequency Deinterleaver . . . . . . . . . . . . . . . . . . . . . . 153.4 QPSK Demapping . . . . . . . . . . . . . . . . . . . . . . . . . 153.5 Block Partitioner . . . . . . . . . . . . . . . . . . . . . . . . . . 163.6 FIC Convolution Decoder . . . . . . . . . . . . . . . . . . . . . . 163.7 Energy Dispersal . . . . . . . . . . . . . . . . . . . . . . . . . . 183.8 Time Deinterleaver . . . . . . . . . . . . . . . . . . . . . . . . . 193.9 Convolution Decoder . . . . . . . . . . . . . . . . . . . . . . . . 203.10 List of Other Functions . . . . . . . . . . . . . . . . . . . . . . . 24

3.10.1 ”fib dec” Function . . . . . . . . . . . . . . . . . . . . . 24

ii

3.10.2 ”chooseservice” Function . . . . . . . . . . . . . . . . . 243.10.3 ”fib check” Function . . . . . . . . . . . . . . . . . . . . 25

4 Test 264.1 Test with MATLAB Generated DAB Signals[4] . . . . . . . . . . 26

4.1.1 Transmitter . . . . . . . . . . . . . . . . . . . . . . . . . 264.1.2 Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.2 Test with a Local Transmitter . . . . . . . . . . . . . . . . . . . . 284.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Bibliography 30

iii

List of Figures

1.1 DAB signal spectrum for transmission mode I . . . . . . . . . . .2

2.1 An example of the DAB service structure . . . . . . . . . . . . . 52.2 Structure of the service organization field . . . . . . . . . . .. . 62.3 Structure of the sub-channel organization field . . . . . . .. . . . 72.4 Transmission mode independent description of the FIC and MSC . 102.5 Structure of the FIB . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.1 Implemented Part from the DAB Receiver . . . . . . . . . . . . . 133.2 Transmitted OFDM symbol . . . . . . . . . . . . . . . . . . . . . 143.3 Block of ”frameto com” function . . . . . . . . . . . . . . . . . 143.4 Convolution encoder . . . . . . . . . . . . . . . . . . . . . . . . 163.5 Block of ”getfic” function . . . . . . . . . . . . . . . . . . . . . 173.6 PRBS generator . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.7 Block of ”energydis” function . . . . . . . . . . . . . . . . . . . 193.8 Block of ”time dinter 1” function . . . . . . . . . . . . . . . . . 193.9 Illustration of time interleaving for 256 bits input . . .. . . . . . 213.10 Block of ”UEPde” function . . . . . . . . . . . . . . . . . . . . 22

4.1 The position of the transmitted data inside CIF . . . . . . . . .. 264.2 DAB 14 transmitter function performance . . . . . . . . . . . . . 274.3 The positions of the services inside each CIF . . . . . . . . . . .284.4 The receiver operation for service 1 using MATLAB . . . . . .. 28

iv

List of Tables

2.1 Sub-channel size for short-form application . . . . . . . . .. . . 92.2 Actual values for Ensemble ”Bayern” . . . . . . . . . . . . . . . 102.3 General transport characteristics of the transmissionframe . . . . 102.4 List of FIG types . . . . . . . . . . . . . . . . . . . . . . . . . . 112.5 DAB system parameters . . . . . . . . . . . . . . . . . . . . . . 12

3.1 Puncturing vectors . . . . . . . . . . . . . . . . . . . . . . . . . 183.2 Correspondence between the audio bit rates and the parameters I

and L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.3 Audio service component protection profiles . . . . . . . . . .. 233.4 The ”uerprofile.mat” table . . . . . . . . . . . . . . . . . . . . . 24

v

Abstract

European research program Eureka 147 developed Digital Audio Broad-casting (DAB) between 1981 and 1995. It was standardized by theEuropean Telecommunications Standards Institute (ETSI) [1]. DABis more robust against multi path environments because it uses CodedOrthogonal Frequency Division Multiplex (COFDM).

DAB receiver in MATLAB is implemented by this project. The pro-gram is specified for transmission mode I. The implemented DAB re-ceiver includes the demodulation of the COFDM signal, the decodingof the Multiplex Configuration Information (MCI) and the decodingof the services. It is assumed that the input baseband DAB signalis synchronized. The decoding of MCI works on the assumption thateach service contains only one primary component. The audioservicedecoding is limited to the services that are Unequal Error Protection(UEP) encoded.

vi

Chapter 1

Introduction

1.1 History of DAB

The Institut fur Rundfunktechnik in Germany (IRT) and the Centre CommundEtudes de Telediffusion et Telecommunications in France (CCETT) started theresearch of Eureka 147 project in 1981. In 1986 the British Broadcasting Cor-poration (BBC) joined this project because they saw it offeringthe future of theradio broadcasting in the world. IRT and CCETT pioneered the research in audiobit rate and Coded Orthogonal Frequency Division Multiplex (COFDM) respec-tively. And the BBC developed the flexible multiplex of the channels.

One of the important parameters, the bandwidth of the RF signal, had been changedfrom 7 MHz to 3.5 MHz before it was fixed to 1.537 MHz [2].

The first DAB standard was achieved in 1993 for audio coding and the Euro-pean Telecommunications Standards Institute (ETSI) issued the DAB standardETS 300 401.

1.2 Advantages of DAB

• It provides a good audio quality similar to the quality of thecompact disc.

• It provides a high spectral efficiency.We could transmit 6 high-quality audio programs in one ensemble whichtakes 1.537 MHz (no guard period between the programs required) whilewe need a bandwidth 6 times greater to send them by using FM [3].

• It is more robust against the multi path propagation which was a problemfor FM reception in vehicles.

1

• It supports a wide range of value-added services like [2]

– Typical audio broadcasting (main service) (audio).

– Programme-associated data (PAD) (Text which could be displayed bythe receivers).

– Information services (weather information or even the latest stock prices).

– Still or moving pictures (pictures could be displayed by thereceivers).

• Flexibility of multiplex configuration.The services bit rate and arrangement in the DAB frame could be flexiblychanged.

1.3 Radio Frequencies

There are 4 different transmission modes.

• Transmission mode Iis used for terrestrial Single Frequency Networks (SFN) Bands I, II and III.

Figure 1.1:Theoretical DAB transmission signal spectrum for transmission modeI [1].

• Transmission modes II and IVare used for terrestrial local broadcasting in Bands I, II, III, IV, V and in the1 452 - 1 492 MHz frequency band (i.e. L-Band).

2

• Transmission mode IIIis used for terrestrial, satellite and hybrid satellite-terrestrial broadcastingbelow 3 000 MHz.

3

Chapter 2

How DAB Works

2.1 Ensemble Structure

Each ensemble occupies 1.537 MHz and consists of many services. The serviceshere mean radio stations in case they carry audio components. Each service con-tains one or more service components. Usually, the primary service componentcarries audio service, but it can carry data also. The list ofall services and theircomponents is signaled by Multiplex Configuration Information (MCI).

Figure 2.1 shows the ensemble structure. This ensemble contains three servicesthat are called ALPHA 1 RADIO, BETA RADIO and ALPHA 2 RADIO.

ALPHA 1 RADIO has three service components: a primary serviceaudio com-ponent, a secondary service component is used for a Traffic Message Channel(ALPHA-TMC) and a secondary service component is used for Service Informa-tion (ALPHA-SI). The audio and SI components are signaled indifferent sub-channels in the Main Service Channel (MSC), while the TMC is signaled in theFast Information Data Channel (FIDC).

BETA RADIO has two audio service components and they are signaled in dif-ferent Sub-Channels in the MSC.

ALPHA 2 RADIO shares its components with ALPHA 1 RADIO as it is shown.

The list of all services, their components and the arrangement of the sub-channelsare signaled by MCI.

4

Figure 2.1:An example of the DAB service structure [1].

2.2 Service Organization

A full description of the services is transmitted in the MCI Extensions 2, 3, 4 and7 of Fast Information Group (FIG) type 0. The basic service organization and itscomponents are carried in Extension 2 as shown in figure 2.2.

Each service is identified by Service Identifier (SId) who is unique. The num-ber of service components that are contained in the service is signaled by 4 bits.Each service component could be carried in MSC with a separate sub-channelidentifier (SubChId) or in FIDC with a separate Fast Information Data ChannelIdentifier (FIDCId).

In this project, I assume that there are many services with single primary audiocomponent. And by decoding the MCI Extension 2 I create a list of the servicesand their SubChId. The next step is to know the positions of these sub-channelsin the MSC, their lengths and their error protection levels.

5

Figure 2.2:Structure of the service organization field[1].

SId Service IdentifierECC Extended Country CodeCAId Conditional Access IdentifierTMId Transport Mechanism IdentifierASCTy Audio Service Component TypeSubChId Sub-channel IdentifierP/S Primary/SecondaryDSCTy Data Service Component TypeFIDCId Fast Information Data Channel IdentifierSCId Service Component Identifier

For example, the data for this extension, which is used in thetest [4], comprises:SID = 0000000000001010

6

Localflag = 0lCAId = 0000Numberofservicecomponents = 0001TMId = 00ASCTy = 000000SubChId = 000001P/S = 1CAflag = 0This data indicates that there is one service with only one primary service compo-nent. This service is carried in sub-channel 1. MSC - Stream mode - audio is thetransport mechanism that is used. Access control is not used.

2.3 Sub-Channel Organization

The sub-channel position, size and error protection level are signaled in the MCIFIG type 0 Extension 1. A Common Interleaved Frame (CIF) contains 55296 bits.It is divided into Capacity Unite (CU), with 64 bits each. Each sub-channel couldallocate one or more CU.

Figure 2.3:Structure of the sub-channel organization field[1].

Start Address An unsigned binary number (in the range 0 to 863)Table index An unsigned binary number (in the range 0 to 63)

7

There are two types of signaling: A long form where the sub-channel size and theprotection level are signaled and a short form where the sub-channel size and theprotection level should be extracted from the table that is shown in table 2.1. Thestart address points to the first CU of the sub-channel.

In this project, the audio component is unequally protected. So we use the shortform signaling. By decoding the MCI Extension 1 I create a list of SubChIds, theirstart addresses and their corresponding protection levels. By using the service listand the SubChIds list we will be able to extract the service from the CIF.

For example, the data for this extension, which is used in thetest, comprises:SubChId = 000001StartAddress = 0000000000Short/Longform = 0Tableswitch = 0Tableindex = 0Table index 0 means the service bit rate is 32 kbps with protection level 5 andits length is 16 CU. Table switch 0 means we use table 2.1. Shortform signalingmeans that we use the UEP encoding. Start address indicates the position of thetransmitted data inside the CIF.

This project is limited that it decodes only MCI FIG 0 Extension 1 and 2 fromFIC. The audio service decoding is limited to the services that are UEP encoded.An actual ensemble description, used to be broadcast in Germany, is shown intable 2.2.

2.4 Transport Mechanisms

The DAB transmission frame comprises three channels:

1. Main Service Channel (MSC)It carries audio and data service components. It consists ofone or moreCIFs. Each common interleave frame comprises a number of sub-channels.

2. Fast Information Channel (FIC)It is used to signal the MCI, optionally service information and data ser-vices. It is a non-time-interleaved data channel with fixed equal error pro-tection.

8

3. Synchronization ChannelIt is used for frame synchronization.

Table 2.1: Sub-channel size for audio service components as a functionof theaudio bit rate and the protection level (short-form application)[1].

9

Table 2.2:Actual values for Ensemble ”Bayern”[2].

Figure 2.4 shows the general description of the transmission frame. Table 2.3 shows

Figure 2.4:Transmission mode independent description of the FIC and MSC.

the duration and the number of CIFs and Fast Information Blocks(FIBs) of atransmission frame for the different modes. In transmission mode I, the Main

Table 2.3:General transport characteristics of the transmission frame[1].

Service Channel comprises four CIFs. Three FIBs are assigned toeach CIF. The

10

Figure 2.5:Structure of the FIB[1].

structure of the FIB is shown in figure 2.5. Each FIB includes one or more FastInformation Groups (FIGs). The FIG types are shown in the table 2.4. Cyclic

Table 2.4:List of FIG types[1].

Redundancy Check (CRC) is 16 bits word. It is calculated on the FIB data fieldbased on the polynomialG(x) = x16 + x12 + x5 + 1. The initial state of all shiftregisters is one. We take the 1’s complement of the CRC word before the trans-mission.

The DAB system parameters are shown in table 2.5.

11

Table 2.5:DAB system parameters[2].

12

Chapter 3

Receiver Implementation in Matlab

Figure 3.1 shows the implemented part from the DAB receiver.

Figure 3.1:Implemented Part from the DAB Receiver

3.1 OFDM Guard Interval Remover

The guard interval is used to combat the Inter Symbol Interference (ISI) that hap-pened due to delay spread. The OFDM symbol duration is”2048 ∗ T”, which isequal to 1 ms. Time guard interval, equal to”504 ∗ T”, is added to the OFDMsymbol as it is shown in figure 3.2. The whole length of the transmitted OFDMsymbol will be”2552 ∗ T”. These values are shown in table 2.5.

The OFDM guard remover is a part of ”frameto com” function, which is shownin figure 3.3. The input frame consists of 4 CIFs, 4 FICs and phasereferencesymbol with length”193952 ∗ T”. The input is arranged to 76 columns and 2552rows. Each column corresponds to one OFDM symbol. Then, the first ”504 ∗ T”

13

symbols are eliminated from each column. An ”fft ()” function is applied to theoutput of OFDM guard interval remover. Then, by using ”fftshift ()” the receiveddata is arranged in the frequency domain.

Figure 3.2:Transmitted OFDM symbol.

Figure 3.3:Block of ”frame to com” function.

Each OFDM symbol consists of 2048 subcarriers that are 1 kHz apart. The usefuldata is carried by 1536 subcarriers, all other subcarriers are only used as frequencyguard. The useful data is arranged around a zero carrier frequency as shown infigure 1.1. Estimation of the null center carrier frequency and extraction of theuseful data are done in the ”frameto com” function.

3.2 Differential Demodulator

The DAB system uses Differential Quadrature Phase Shift Keying (D-QPSK).It applies the differential modulation to Quadrature PhaseShift Keying (QPSK)

14

symbols. The differential modulation is defined by:

zl,k = zl−1,k.yl,k

for l = 2, 3, 4, ..., L

andK

2≤ k ≤

K

2

L is the number of OFDM symbols per transmission frame.K is the number of transmitted carriers.zl,k is the complex D-QPSK symbol associated to carrierk of OFDM symboll.z1,k is for the phase reference symbol.yl,k is the complex QPSK symbol associated to carrierk of OFDM symboll.Differential Demodulator is a part of ”frameto com” function. The input to thispart is a 1536*76 matrix. The differential demodulation is defined by:

yl,k =zl,k

zl−1,k

for l = 2, 3, 4, ..., L

andK

2≤ k ≤

K

2

Finally, the phase reference symbol is eliminated.

3.3 Frequency Deinterleaver

In the Frequency interleaver, the successive QPSK symbols are reorganized toovercome the frequency selective fading problems.

The Frequency deinterleaver is a part of ”frameto com” function. The ”inter-leaver vector organize.m” function generates two vectors,one for transmitter andthe second for the receiver. These two vectors are saved as ”interleavertx”, ”inter-leaverrx” respectively. The ”interleaverrx” is loaded and used for deinterleaving.The deinterleaver processes all columns of the 1536*75 matrix input at the sametime.

3.4 QPSK Demapping

Each QPSK symbol consists of two bits that satisfy the rule:

ql,n =1√

2[(1 − 2pl,n) + j (1 − 2pl,n+k)]

for n = 1, 2, 3, 4, ..., K − 1

15

Wherep, 2K-bit vector, is input to QPSK modulator.q is the output.

The QPSK demapping is a part of ”frameto com” function. The input is a1536*75 matrix. It uses the MATLAB function ”demodulate (modem.pskdemod())”. Finally, the bits are rearranged in each column to produce an output of3072*75 bits.

3.5 Block Partitioner

The input is transformed into a column vector of 230400 bits.These bits aredivided into FIC1, FIC2, FIC3, FIC4, CIF1, CIF2, CIF3 and CIF4 respectively.Each FIC contains 2304 bits while the CIF contains 55296 bits.The FICs areprocessed by convolution decoder and energy dispersal assembler before we getthem at the output of ”frameto com” function. The CIFs are available as outputsof ”frame to com” function.

3.6 FIC Convolution Decoder

Figure 3.4:Convolution encoder[1].

Each logical frame should be processed by convolution encoder that is shown infigure 3.4.

ai is the input bit wherei = 0, 1, ..I − 1 for the input vector. And the vector(aI , aI+1, aI+2, aI+3, aI+4, aI+5) corresponds to the all-zero final state of the shiftregister. The constrain length of the convolution encoder is 7. The octal forms ofthe generator polynomials are 133, 171, 145 and 133 respectively. The length of

16

the output vector is4I +24. A puncturing procedure shall be applied to the outputof the convolution encoder.

In FIC case, the input vector to the encoder is 768 bits. The4I output bits aredivided into 24 consecutive blocks of 128 bits. Each block isdivided to four con-secutive sub-blocks of 32 bits. Each sub-block should be punctured by the samepuncturing index. The first 21 blocks are punctured according to the puncturingindexPI = 16. The remaining 3 blocks are punctured according to the punctur-ing indexPI = 15. Finally, the last 24 bits are punctured using the puncturingvector given by:VT = (110011001100110011001100). No padding bits shall beadded. The puncturing vectors are shown in table 3.1. This table is stored in thememory as ”puncturingpattern”.

The ”getfic.m” function is used to decode the FIC. The input is 2304 bitsvectorand the output is 768 bits vector. In this function the outputof the convolutiondecoder is processed by the energy dispersion scrambler. Figure 3.5 shows theblocks of the ”getfic” function.

The ”puncturingpattern” table is loaded and used to rebuild the ”4 ∗ 768 + 24”vector. ”0.5” is put instead of the punctured bits. Then, thevector is processedby Viterbi decoder with soft decision option. Finally, the ”energydis” function isapplied to the first 768 bits to produce the output.

Figure 3.5:Block of ”get fic” function.

17

Table 3.1:Puncturing vectors[1].

3.7 Energy Dispersal

The data should be scrambled by a modulo-2 addition with a pseudo-randombinary sequence (PRBS), prior to convolution encoding to insure proper energyspread. Figure 3.6 shows PRBS generator.

The three FIBs, which correspond to one CIF, should be scrambled together. Inthe MSC, each logical frame is scrambled exclusively.

18

Figure 3.6:PRBS generator[1].

The ”energydis” function is used to do the energy dispersal. The input and outputvectors have the same length. Figure 3.7 shows the block of ”energydis” function.

Figure 3.7:Block of ”energydis” function.

3.8 Time Deinterleaver

Time interleaving is applied to the output of each convolution encoder for allsub-channels of the MSC. The input logical frame is distributed among 16 outputlogical frames. The time interleaver causes 360 ms delay. The ”time dinter 1”

Figure 3.8:Block of ”time dinter 1” function.

function is used for the time deinterleaving. It is assumed that the length of theinput vector is fixed (the bit rate of the service not change).This function needs amemory of (length of the input*16) bits. This memory is loaded when running the

19

function and stored after the output is generated. The (16*1) ”time interleaver”vector, which contains the time interleaving index, is loaded inside the function.Figure 3.8 shows the block of ”Timedeinterleaver” function.

Figure 3.9 shows the time interleaving of a data service component with 256 bitslength. The vector that enters the time interleaver at time ”r” is distributed among16 transmitted frames. The last part is transmitted at time ”r+15”. In the timedeinterleaver, the vector sent at ”r” will be rebuilt after the next 15 transmittedframes were received.

3.9 Convolution Decoder

There are two encoding schemes. They differ in the puncturing procedure, namelyUnequal Error Protection (UEP) coding and Equal Error Protection (EEP) coding.In this project, the UEP decoder is implemented.

In the UEP encoder, the vector length after the convolution encoder is4I + 24as it was declared in FIC decoder section. These4I bits are divided intoL blocksof 128 bits. The value ofL for each possible audio bit rate is shown in table 3.2.

Table 3.2:Correspondence between the audio bit rates and the parameters I andL[1].

20

Figure 3.9:Illustration of time interleaving for 256 bits input[1].

21

ThisL blocks are divided intoL1, L2, L3 andL4 blocks.The firstL1 blocks are punctured according to the puncturing indexPI1.The nextL2 blocks are punctured according to the puncturing indexPI2.The nextL3 blocks are punctured according to the puncturing indexPI3.The lastingL4 blocks are punctured according to the puncturing indexPI4.Finally, the last 24 bits are punctured using the puncturingvector given by:VT =(110011001100110011001100). ”zero value” padding bits are added at the end ofthe punctured codeword for certain protection profiles. Thevalues ofL1, L2, L3andL4 and its correspondingPI1, P I2, P I3 andPI4 are shown in table 3.3.

When the transmitter sends the audio service that are UEP encoded, it sends inthe MCI only a table index that ranges from 0 to 63. The table index and its cor-responding data are shown in table 2.1.

In this project, the ”UEPde” function is used to do the UEP decoding. Thisfunction has two inputs: the first input is the encoded data. The second input isthe table index. Figure 3.10 shows the block of ”UEPde” function.

Figure 3.10:Block of ”UEP de” function.

A full description of each table index is saved as ”uerprofile”. The ”uerprofile”is a 12*64 matrix which is called ”uer”. Each column belongs to one table index.Column ”1” belongs to table index ”0” and so forth. This table is loaded by the”UEP de” function and used in the decoding process. Table 3.4 shows the first10 table indexes and there corresponding information. The ”puncturingpattern”table is loaded and used to rebuild the ”4I +24” vector. ”0.5” is put instead of thepunctured bits. Then, the vector is processed by Viterbi decoder with soft decisionoption.

22

Table 3.3:Audio service component protection profiles[1].

23

Table 3.4:The ”uerprofile.mat” table.

3.10 List of Other Functions

3.10.1 ”fib dec” Function

In this project, it is assumed that each transmitted servicecontains only one pri-mary audio service component. Service organization is signaled by MCI FIG 0Extension 2. Sub-channel organization is signaled in shortform by MCI FIG 0Extension 1. ”fibdec” function produces two outputs: the first output is a ma-trix that contains the service list. The first row contains the service Ids and thesecond row contains their corresponding sub-channel Ids. The second output is amatrix that contains the sub-channel organization. The first row contains the sub-channel Ids. The second contains their start addresses. Thethird contains theirtable indexes.

3.10.2 ”chooseservice” Function

The inputs to this function are the service list and channel Ids list that are producedby ”fib dec” Function. It allows the user to choose one of the available services todecode it. The output is a column vector that contains the selected service Id, itssub-channel Id, the sub-channel’s start address and the table index.

24

3.10.3 ”fib check” Function

This function is used to check the CRC of the FIB. The input is a column vectorof 256 bits. The output will be1 in case of correct CRC otherwise it will be0. Ituses the function ”ficcrc” to generate the CRC.

25

Chapter 4

Test

4.1 Test with MATLAB Generated DAB Signals[4]

In this Test, we send 32 logical frames of length 768 bits corresponding to audiobit rate equal 32 Kbps. Then, we decode the receiving data by using this projectand compare it with the original data.

4.1.1 Transmitter

A 768*32 matrix was randomly generated. This matrix is equivalent to 32 log-ical frames of audio service component with bit rate equal to32 Kbps. Energydispersal shall be applied to the data. After applying to theconvolution encoder,the output vector’s length will be ”4*768+24” bits. This vector will be puncturedusing UEP scheme with a protection level P=5. The length of the output of theconvolution encoder is 16 CU which equal 1024 bits. This data should be posi-tioned in a specific sub-channel inside the CIF. Sub-channel Id 1 is reserved forthis data. This sub-channel occupies the first 16 CU. So the start address of thissub-channel is ”0”. Figure 4.1 shows the position of the datainside each CIF. The

Figure 4.1:The position of the transmitted data inside CIF.

transmitter builds a frame to be processed by the COFDM. For transmission modeI this frame comprises four FICs and four CIFs.

The transmitter generates 8 frames to transmit the 768*32 data. The receiver

26

should extract this 768*32 data from the transmitted 8 frame. Figure 4.2 showsthe operation at the transmitter. ”a” is a random input of length 768*32 , ”fic1”is the FIC sequence having data values explained above, and ”P” is the protectionlevel.

Figure 4.2:DAB 14 transmitter function performance[4].

4.1.2 Receiver

The ”receiver.m” function is used to extract the data from the transmitted frames.The components of each frame are extracted by the ”frameto com”. The FIB isdecoded by ”fibdec” function to generate a service list and sub-channel list. The”chooseser” function displays the available services to the user toselect one ofthem to decode.

According to the selection of the user; the ”chooseser” function provides theservice size, its position inside the CIF and its puncturing procedure. A memoryfor time interleaving was created and its size is equal to thelength of the selectedservice∗16 bits. Finally, the data will be extracted from its position inside the CIFand processed by ”timedinter 1”, ”UEP de” and ”energydis” functions respec-tively. The output is a 768*32 matrix.We will receive the first transmitted frame at16th frame of the ”rsig” because thetime interleaver causes a delay of 15 logical frames.

27

Finally, we compare the first 17(17 ∗ 768 = 13056) frames of the input data ofthe transmitter ”a” with the last 17 frame of ”rsig”. The result error is zero. Thetransmitter and the receiver were independently implemented using MATLAB andthey are well-matched.

4.2 Test with a Local Transmitter

In this test, we send 32 logical frames from three different services. This firstservice is 32 Kbps with protection level 2. The second service is 80 kbps withprotection level 4. The third service is 256 kbps with protection level 5. Theservices’ sizes are 29, 52 and 128 CU respectively. The data are positioned in theCIF with start addresses 1, 33 and 100 respectively. Figure 4.3 shows the positionsof the data inside each CIF. The transmitter encodes the sub-channel organization

Figure 4.3:The positions of the services inside each CIF.

in FIG type ”0” Extension ”2” and the sub-channel organization in FIG type ”0”Extension ”1”.”ser 1”,”ser 2” and ”ser3” represent the three services respectively. ”trfram” isthe 8 transmitted frames.Figure 4.4 shows a capture for the operation of the receiver with selected service1.

Figure 4.4:The receiver operation for service 1 using MATLAB.

The result error of each received service is zero. So the receiver has the ability todecode different services which are contained in the same transmitted frames.

28

4.3 Conclusion

This project presents a DAB receiver using MATLAB. It is compatible with ETSI[1]. This project is flexible to be extended. The output of this project shall be pro-cessed by many blocks before we can hear the audio service. The implementationof these blocks is one of future work to build a full DAB receiver.

This project runs under certain limitations, like assumingthe input baseband DABsignal is synchronized and each service contains only one main component. Thisproject could also be extended so it decodes unsynchronizeddata and deals withservices that have more than one components.

29

Bibliography

[1] ETSI EN 300 401 V1.3.3 (2001-05) Radio Broadcasting Systems; DigitalAudio Broadcasting (DAB) to mobile, portable and fixed receivers.

[2] Lauterbach, T., Hoeg, W.. Digital Audio Broadcasting; Principles and Appli-cations of Digital Radio. 2nd ed. Wiley, 2003.

[3] C. Gandy. DAB; An Introduction to the Eureka DAB System and aGuide toHow It Works, June 2003.

[4] Mohammad Alawieh. Generation of DAB Signals using MATLAB, StudentProject, March 2009.

30