A - F

Algoritme


Het is de procedure die beschrijft hoe een probleem moet worden opgelost. Bij het programmeren is het belangrijk om het probleem te ontrafelen om vervolgens de flowchart op te schrijven van logische/wiskundige stappen en van beslissingen om een probleem op te lossen. Je zou dit kunnen beschouwen als het algoritme of de te volgen procedure.

Daarna zet de programmeur elk flowchart-blok om in overeenkomstige programmeercode. De volgorde van alle instructies in het programma wordt ook wel het algoritme genoemd.

Audioomzetting en -codering


Efficiënt transport van audio is mogelijk geworden dankzij digitalisering (die begon in de jaren tachtig van de vorige eeuw) en de beschikbaarheid van TCP/IP-netwerken.

Maar wat is digitale audio?


We moeten onderscheid maken tussen geconverteerde digitale audio en gecodeerde digitale audio.



Geconverteerde digitale audio


Dit is de eerste stap in het digitaliseren van audio. De regels waren om geen audio-informatie te verliezen (vergeleken met de originele analoge audio). De hoge standaard conversie van analoge naar digitale audio gebruikt veel bits per audiosample (16-bit/sample, 20-bit/sample, 24-bit/sample en zelfs 32-bit/sample per kanaal). Dit is nodig bij live-opnamen en studiobewerking.


De Nyquist- en Quantisation-regels waren fundamenteel voor het bereiken van deze kwaliteit.


Nyquist vertelt ons dat je moet samplen op een frequentie hoger dan de hoogste audiofrequentie die je wilt kwantificeren. Studio's werken voor audio van 0 tot 20kHz (de hoogste frequentie die een mens kan horen). De professionele audiosector besloot dat 48kHz de standaard zou worden. Dit betekent dat audio van hoge kwaliteit 48 000 samples per seconde nodig heeft.


Aan de andere kant vertelt de kwantiseringsregel ons dat het aantal bits per sample de amplitudefout van de bemonsterde audio bepaalt. Deze kwantisatiefouten resulteren in ruis (kwantiseringsruis).


We gebruiken een samplefrequentie van 48 kHz met samples van minimaal 16 bits per kanaal. Voor de digitale CD gebruiken we 44,1 kHz en 16 bits per kanaal, maar dit is niet de uitzendstandaard!


Eén seconde audio van hoge kwaliteit met een samplefrequentie van 48 kHz en een resolutie van 16 bits per sample genereert 48000 samples * 16 bits, gelijk aan een bitstream van 768 kbps. Dat is veel te hoog voor draadloze transmissie. Er moest een oplossing komen om het aantal bits te verminderen terwijl de kwaliteit hoog bleef. Zonder een oplossing zou digitale radio nooit mogelijk zijn geweest.


De omzetting in digitale tijdmonsters (samples per tijdseenheid) met behulp van meerdere bits per monster wordt PCM genoemd. PCM is de afkorting van Pulse Code Modulation. PCM is het digitale conversiesignaal dat de volledige audio-informatie bevat. De samples kunnen worden beschouwd als pulsen en de code verwijst naar de digitale waarde die de tijdswaarde van de audioamplitude codeert.



Audio codering


Dit is een extra laag na audioconversie. Om het aantal bits te verminderen, wordt de hoeveelheid audio-informatie gereduceerd met minimaal kwaliteitsverlies. Deze extra laag komt altijd na de essentiële analoge/digitale conversie van hoge kwaliteit. Je kunt analoge audio nooit rechtstreeks coderen. De analoge/digitale conversie zal altijd de eerste stap zijn.


Hiermee bedoelen we dat de ingang naar de Audio Coder altijd PCM-gecodeerde audio zal zijn. Als er een analoge ingang bestaat, kun je er zeker van zijn dat er een PCM-encoder (Analog Digital Converter) bestaat in de Audio Coder.


De bitreductie (ten onrechte aangeduid als audio "compressie") heeft als doel het aantal bits te reduceren zodat een opname minder geheugen in beslag neemt of minder bandbreedte nodig heeft voor uitzending. Deze reductie van bits is een van de basisprincipes van DAB.


Een van de methoden is Huffman codering. Vergelijk het met het zippen van een bestand. Je krijgt minder bits, maar je behoudt de integriteit van de audiobits. De vermindering van bits blijft echter erg laag. Hiermee bedoelen we niet dat Huffman codering niet voorkomt in DAB. Krachtige bitreductie-algoritmen (MP2 (DAB), MP3 en HE-AAC (DAB+)) bevatten ook Huffman codering.


Zodra je het aantal bits wilt verminderen, kun je de integriteit niet behouden en moet je wat audio-informatie weglaten. In eerste instantie kijken we naar het menselijk oor en vragen we welke informatie niet wordt opgemerkt door het menselijk oor. We noemen dit perceptuele codering.


Als je dieper nadenkt, kun je veel mogelijkheden vinden om de audio-informatie te reduceren.


  • Waarom zou je de band van 0 tot 30 Hz samplen? Het menselijk oor hoort het niet dus je kunt het weglaten
  • Waarom zou je 48000 samples per seconde gebruiken voor de band van 30 tot 1kHz als een samplefrequentie van 2,5kHz   voldoende is?
  • Waarom zou je linker en rechter stereokanalen apart versturen als beide veel van hetzelfde geluid bevatten?
  • Waarom zou je zelfs frequenties boven de 10 kHz versturen als je de hoge frequenties kunt repliceren met de informatie in de lage frequentieband (zie HE-AAC SBR)?
  • Enz


Er is veel ruimte om overbodige audio informatie uit het digitale PCM gemoduleerde signaal te halen. Je moet echter de audiosamples in het tijdsdomein omzetten naar een gelijk aantal samples in het frequentiedomein. Daarna kun je eenvoudig perceptuele algoritmes toepassen op de frequentiesamples. Frequentiesamples kunnen efficiënter gehercodeerd worden dan tijdsamples. Uiteindelijk zal de bit-gereduceerde audio bitstream niet langer de tijdsamples bevatten, maar de efficiënt gecodeerde en behandelde frequentiesamples, waarbij het perceptuele algoritme veel niet-perceptuele gegevens heeft verwijderd.

Common Interleaved Frame


Het CIF is een onderverdeling van het MSC-frame in 4 gelijke delen. Inzicht in het transmissieframe en het MSC-deel daarvan is de sleutel tot inzicht in het CIF-frame. Het transmissieframe geeft aan hoe de antenne bits verzendt.


Het MSC, onderdeel van het transmissieframe, bestaat uit 72 keer een modulatiecyclus van (D)QPSK-modulatie. Vergeet niet dat een modulatiecyclus gelijktijdig plaatsvindt op de 1536 dragers en dat de (D)QPSK-modulatie symbolen van 2 bits gebruikt.

We herhalen dus dat één modulatiecyclus 1536 dragers x 2 bits = 3072 bits de aether in stuurt.


(Aether is een fysiek niet-bestaand materiaal, een woord dat gebruikt werd toen men niet kon begrijpen welk medium licht vervoerde. Het werd in de middeleeuwen beschouwd als het 5e element, "kwintessens", een materiaal dat het hele universum vult)


De MSC bestaat uit 72 opeenvolgende modulatiecycli met audiobits.

Delen van de MSC door 4 levert CIF's op van 72/4 = 18 modulatiecycli.


Figure – division of the MSC into 4 CIF frames.

Hoeveel bits kan een CIF de lucht in sturen?

Achttien modulatiecycli vermenigvuldigt met 3072 bits per modulatiecyclus resulteren in een totaal van 55269 bits per CIF.

Nu hebben we de CIF gekwantificeerd als een eenheid van 55269 bits.


Laten we eens kijken naar de CIF timing.

Een transmissieframe wordt elke 96 ms herhaald, dus elk deel van het transmissieframe wordt elke 96 ms herhaald. Dit geldt ook voor de MSC. Het mag duidelijk zijn dat het verdelen van de MSC in 4 CIF's slechts kan resulteren in CIF's van 24 ms duur.


Vergeet niet dat 24 ms een zeer belangrijke tijdsronde is in DAB(+) audio. Het is de duur van een DAB audio frame en 1/5 van het DAB+ superframe, dat een periode heeft van 120ms.

Het verhaal over de CIF gaat verder met de CU (Capacity Unit), een verdere onderverdeling van de CIF (zie glossarium).

Compiler


Wat is een COMPILER en wat is "een programma compileren"?


Een compiler is een computerprogramma. Het vertaalt een programmeertaal op hoog niveau (C, C++, enz.) in binaire code voor een bepaalde CPU (Central Processing Unit).

CPU's voeren hun programma uit door instructies in binaire code (vaak hexadecimale woorden) uit het geheugen te lezen. Deze codes verschillen per type CPU.


Een belangrijk voordeel van high-level talen en het compileren ervan is de overdraagbaarheid van programma's op verschillende CPU-platforms. "Overdraagbaarheid van programma's" betekent het compileren van broncode met verschillende compilers voor verschillende CPU-platforms.


De compiler zet de high-level programmeertaal om in codes die overeenkomen met verschillende CPU-instructiesets. Een bronprogramma gecompileerd door een Apple C++ compiler zal ook draaien op Windows wanneer het wordt gecompileerd met een Windows C++ compiler.


In de begindagen van computers schreef men programma's ("objectcode") rechtstreeks in binaire code die door de CPU kon worden begrepen. Het aantal instructies dat nodig was om een programma te schrijven was enorm, moeilijk en omslachtig. Tegenwoordig programmeren we computers in high-level talen met instructies geschreven als leesbare tekst (vaak vergelijkbaar met het Engels). Nadat we het programma in broncode hebben geschreven, moeten we de broncode compileren tot code die door de CPU kan worden uitgevoerd.


De broncode, geschreven in C++ van de ODR-mmbTools, is te vinden op GitHub. Eenmaal gedownload, moet je het compileren naar uitvoerbare objectcode voor de CPU op je PC. Het Linux-besturingssysteem gebruikt de ISO C++ GCC (GNU Compiler Collection).

Crest Factor & PAPPR


De "Crest Factor" is een meting van de piekwaarden van een golfvorm vergeleken met de effectieve waarde. Deze wordt vaak gebruikt om de extremen van pieken in een golfvorm te bepalen. Een golfvorm met een crest factor van 1 geeft aan dat er geen pieken zijn, zoals een blokgolf of gelijkstroom. Aan de andere kant hebben geluidsgolven vaak een hoge crest factor en dat geldt ook voor DAB+ gemoduleerde signalen. De crest factor wordt berekend door de piekamplitude van een golfvorm te delen door de RMS-waarde. DAB-zendersignalen hebben een hoge crest factor.


De PAPR (Peak-to-Average Power Ratio) is een andere meting die het kwadraat is van de crest factor. Deze wordt berekend door de piekamplitude te kwadrateren en te delen door de gekwadrateerde RMS-waarde. Uitgedrukt in decibel zijn crest factor en PAPR equivalent (niet gelijk!) vanwege de manier waarop decibels worden berekend voor vermogensverhoudingen versus amplitudeverhoudingen. Beide metingen zijn dimensieloze grootheden, waarbij de crest factor wordt gedefinieerd als een positief reëel getal en gewoonlijk wordt weergegeven als de verhouding van twee gehele getallen (bijv. 2:1).


PAPR wordt uitgedrukt in decibel omdat het een vermogensverhouding is. De crest factor is een belangrijke factor bij het testen van luidsprekers en wordt meestal uitgedrukt in decibel. De minimaal mogelijke crest factor is 1, wat gelijk staat aan 1:1 of 0 dB.


Een PAPR van 13 dB betekent bijvoorbeeld een verschil in piekvermogen van 20:1

CU's

(Noodzakelijke voorkennis: Transmissieframe, MSC en CIF)


Wat zijn Capacity Units ?


Capacity Units geven de capaciteit aan die een radiostation gebruikt op de DAB(+) MUX.


Laten we beginnen met het CIF-frame met 55296 bits per 24 ms.

De CU komt overeen met een hoeveelheid van 64 bits.


Het is dan gemakkelijk om het aantal CU's in één CIF frame te berekenen:

55296 (bits in één CIF) / 64 (bits in één CU) = 864 CU's (in één CIF van 24 ms)


Dus 864 CU's worden elke 24 ms herhaald. Hiervan worden er 4 per 96 ms (transmissieframe) verzonden.


Opeenvolgende CU's bevatten de audiobits en de foutcorrectie van één radiostation.


De foutcode is een convolutie-code die audiobits en foutbits met elkaar verbindt. Het uiteindelijke aantal bits is de audiobitsnelheid gedeeld door de foutcorrectiefactor.


Op basis van de audiobitsnelheid en de foutcode kan gemakkelijk het aantal CU's voor een audiosubkanaal in de MUX berekend worden.

Voorbeeld:

  • Neem de bitsnelheid van het audiosignaal en deel die door de foutcorrectiefactor. Neem de bitsnelheid van het station op 96 kbps en EEP-3A (factor ½), dan geeft dat 96 kbps gedeeld door ½ of 192 kbps totale bits in het audio(sub)kanaal


  • Wij rekenen deze bitrate om van 1 seconde naar 0,024s (24ms)

    192 kbps x 0,024 = 4608 kbit / 24 ms


  • We delen het verkregen aantal kbits per 24ms door 0,064 kb (64-bit) om het aantal CU's te krijgen:

    4608 kbit / 24ms gedeeld door 0,064 kb (64 bit) geeft 72 CU's voor een 96kbps AAC audio bitrate en foutcorrectie EEP-3A


Het is dus belangrijk te onthouden dat één CU 64 bits groot is en berekend wordt per 24 ms.


Hieronder vinden jullie conversietabel voor CU's. Vergeet niet dat het maximum aantal CU's in een CIF 864 is (dit komt ook overeen met de totale MUX-capaciteit). Vergeet ook niet dat het zendgebied iets afneemt van EEP-1A naar EEP-4A, terwijl het aantal stations dat in de MUX past, toeneemt.   

Voor "Equal Error Protection (EEP)" (fout correctie) zijn twee opties, A en B, beschikbaar. Elke optie bestaat uit 4 verschillende beschermingsniveaus van 1 tot 4.


Optie A gaat uit van een verdeling van de audiosubkanalen in veelvouden van 8kbps. Deze indeling geeft de maximale flexibiliteit voor de door DAB(+) providers gebruikte audiokanaalindeling.


Optie B gaat uit van een verdeling van de subkanalen in veelvouden van 32 kbps en is minder flexibel voor audiodiensten. Deze optie is te gebruiken bij DMB-videodiensten.


Een audiokanaal van 80kbps is bijvoorbeeld onmogelijk met optie B omdat 80 geen veelvoud van 32 is!

Dus optie B staat alleen 32kbps, 64kbps en 96kbps toe als audio bit rates!


Neem aan dat optie B niet bruikbaar is voor DAB+ en dat het mengen van opties A en B in dezelfde MUX geen optie is bij het uitrollen van DAB+.

Continue & discrete data


Wat is het verschil?


Omdat we het KISS-principe (Keep It Simple & Stupid) omarmen, hadden we ook "Analoog en Digitaal" kunnen gebruiken.

  • met Continue bedoelen we Analoog
  • met Discreet bedoelen we Digitaal


Hoewel beide gegevens zijn, willen we voor een beter begrip een onderscheid maken tussen hun aard.


Gewoonlijk is data een tijdreeks (het gebeurt terwijl de tijd verder loopt).

De signaaltheorie moet echter rekening houden met tijdreeksen en frequentiereeksen.


Deze begrippenlijst legt meer uit over het tijdsdomein en het frequentiedomein. Omdat het principe hetzelfde is, zullen we voor de eenvoud op dit moment alleen gegevens als tijdreeks beschouwen.



Continue signaal/data


De gemeten gegevenswaarden zijn oneindig wanneer een signaal continu met een recorder zoals een plotter gemeten wordt. In theorie kunt u de tijd opdelen in het oneindige (omdat tijd ook continue gegevens zijn).


Twee metingen op het tijdstip van 1 seconde en het tijdstip van 2 seconden zullen een waarde van 0,5 seconde ertussen hebben.

Tussen 1 seconde en 0,5 seconde heb je een waarde van 0,25 seconde.

We kunnen doorgaan tot oneindig 0,125 - 0,0625 - 0,3125 ... -> oneindig.


Voorbeelden van continue gegevens zijn temperatuur, gewicht, lengte, snelheid, enz.

Alles wat je met een meetinstrument kunt meten zijn continue gegevens. Zie de tabel hieronder.



Discreet signaal/data


We hebben gezien dat tijd in het oneindige kan worden verdeeld omdat het ook continue gegevens of signalen zijn. Sommige gegevens zijn echter niet in het oneindige te verdelen. Deze gegevens noemen we discrete gegevens.


De voorbeelden zijn eenvoudig:

  • Het aantal kinderen dat je telt in een klaslokaal
  • Het aantal bomen dat je telt in een park
  • Het aantal auto's dat je telt in een parkeergarage


We hebben geen meetinstrumenten om dit soort gegevens te meten. Discrete gegevens moeten we tellen (of het meetinstrument zou altijd een teller zijn). Het resultaat is altijd een eindige waarde. Je kunt geen half kind, halve boom of halve auto hebben. Er is niets tussen de discrete waarden.



DAB(+)


Aangezien DAB(+) een digitaal systeem is, zullen we vaak discrete gegevens of signalen tegenkomen. Bovenstaande kennis kan ons helpen om de DAB(+) principes die we uitleggen op op lokaaldigitaal.vlaanderen en localdab.org beter te begrijpen.

Energie verspreiding


Wat is het probleem dat energie verspreiding moet oplossen?


Informatie (data, audio of video) in digitale vorm is altijd een verzameling bits die we zullen moeten moduleren op een draaggolf als we ze willen verzenden. Bitreeksen gemoduleerd op een drager voor draadloze transmissie beïnvloeden het RF-spectrum, goedschiks of kwaadschiks.


Het goede is dat uitgezonden willekeurige (random) bitreeksen zich goed zullen gedragen. Ze zullen ideale en continue frequentiespectra produceren.


Het slechte is dat uitgezonden niet-willekeurige bitreeksen ernstige pieken in de energie van het frequentiespectrum (niet-verspreide energie) vertonen. Dit kan interferentie veroorzaken met aangrenzende kanalen.



Wat kunnen we doen om dit probleem op te lossen?


We zullen de energie moeten verspreiden door een willekeurige bitreeks te maken. De bitreeks bevat echter onze (audio)informatie. Als we de bitreeks willekeurig maken, gaat de informatie verloren. Welk willekeurig algoritme we ook gebruiken, de ontvanger moet weten hoe hij de willekeurige bitreeks kan omzetten in de oorspronkelijke bitreeks.


Om dit probleem op te lossen, moeten we een (al dan niet willekeurige) bitreeks omzetten in een willekeurige bitreeks. We moeten echter de randomisatie (willekeurig verdelen) kennen om de gecodeerde sequentie in de digitale ontvanger te herstellen.



Wat is de uiteindelijke oplossing?


De oplossing is de bitstream om te zetten in een pseudo-willekeurige bitstream.

DAB zal een modulo 2-optelling (XOR-functie) uitvoeren met de output van een pseudo-willekeurige generator.


Een pseudo-willekeurige bitreeks is een bitreeks die statistisch willekeurig lijkt, maar gebaseerd is op een bekend algoritme (de sleutel).


Het algoritme berust op een voorspelbaar, deterministisch (geen willekeur) algoritme. Het lijkt dus statistisch willekeurig, maar is niet echt willekeurig. We noemen het pseudo-willekeurig.


De bit-gecomprimeerde audioframes (eindige aantallen bits) ondergaan een randomisatieproces aan de zenderzijde. Maar de ontvanger kan de willekeur weer omzetten in de juiste reeks omdat hij in de ontvanger met dezelfde sleutel dezelfde deterministische pseudo-willekeurige bitreeks kan genereren.


Twee deterministische systemen, één in de zender en één in de ontvanger, zullen altijd dezelfde pseudowillekeurige bitreeks genereren als hun startvoorwaarde hetzelfde is.

FDK-AAC


Wat is Fraunhofer?


Het is een Duitse onderzoeksorganisatie die zich richt op toegepaste wetenschap op verschillende gebieden. Zij hebben een belangrijke rol gespeeld bij de ontwikkeling van Digital Audio Broadcasting (DAB).



Wat is FDK-AAC?


Het is een open-source library (open-bron bibliotheek) die gebruikt wordt om software AAC encoders en decoders te maken.

ODR-mmbTools gebruikt deze bibliotheek voor de AAC-encoder (ODR-AudioEnc).


Zorg ervoor dat deze in het geheugen wordt geladen bij het compileren van de ODR-mmbTools AudioEnc.


De bibliotheek bevindt zich op GitHub onder de naam "fdk-aac" maar wordt sowieso geïnstalleerd bij het installeren van de "ODR-AudioEnc" module. FDK-AAC accepteert PCM en WAV audio input streams en codeert ze in AAC LC (standaard), HE-AAC v1 (SBR), HE-AAC v2 (SBR+PS), AAC-LD, en AAC ELD.


Voor het realiseren van een DAB+ radiozender met ODR-mmbTools AudioEnc, zullen de volgende AAC types belangrijk zijn.

  • AAC LC (voor hoge bitrates)
  • HE-AAC v1 (+SBR voor standaard bitrates)
  • HE-AAC v2 (+SBR +PS voor lage bitrates)

FIC-data (Fast Channel Information)


Via dit data-kanaal zendt de DAB+ zender twee types informatie door:

- SI-data (Service Information)

- MCI-data (MUX Configuratie Information)

 

SI-data kan vergeleken worden met de FM-RDS informatie, met uitzondering van "Titel" en "Artist" info die in de HE-AAC audio gecodeerd wordt en dus niet in de uitgezonden FIC-data.

 

MCI-data kennen we niet bij FM-RDS. Omdat DAB(+) op een flexibele wijze (verschillende bitrates, verschillende foutcorrecties, verschillende AAC types) moet de radio-ontvanger ook geïnformeerd worden over de configuratie van de uitgezonden MUX.


Het woordje "fast" of snel wordt gebruikt omdat de data niet verdeeld wordt over verschillende uitzendframes (zoals het MSC). Samen met de foutcorrectie maakt de spreiding van de informatie in de tijd het signaal beter voor het herstellen van fouten. Maar… het spreiden in de tijd zorgt er ook voor dat het langer duurt voor alle info ontvangen wordt.
Voor het FIC-kanaal zou dit nadelig zijn omdat het kanaal de MCI-data bevat om de MUX te decoderen (waar zit de audiodata van ieder station?). Het zou dus veel langer duren eer er muziek uit de DAB+ radio komt. Vandaar de naam "fast(snel)" informatiekanaal.


Beide SI- en MCI-data worden ingedeeld in groepen (FIG of Fast Information Groups).

G - L

Het magische getal 2048


De hele timing van het DAB-systeem is gebaseerd op dit getal.


Het staat voor de klokfrequentie van 2048 kHz, waarvan alle andere timing is afgeleid.


Het hart van DAB, de COFDM modulatie, is gebaseerd op 2048 samples @ een sample rate van 2048 kHz, wat resulteert in een symboollengte van 1 ms.


1 ms is gerelateerd aan de afstand van 1 kHz van alle draaggolven. Dit is de voorwaarde om orthogonale draaggolven te verkrijgen die onderling geen draaggolfinterferentie hebben.


Het symbool van 1 ms komt overeen met 2048 maal de klokperiode van 2048 kHz.


1/2048 kHz * 2048 = 1 ms


Het getal 2048 is het getal waarop DAB is gebouwd en zal in veel technische artikelen over DAB opduiken.


De klokperiode, aangegeven met de letter T, is gelijk aan 1/2048 kHz of 0,48828125 µs.


Het is essentieel om het bovenstaande te begrijpen om de werkingsprincipes van DAB te begrijpen.

Libraries


Software libraries zijn computerprogramma's die samen een geheel vormen, gemaakt voor specifieke onderwerpen (communicatie, codering, interfacing, berekeningen, enz.)


Het is een door de programmeur geschreven subroutine (subprogramma in het programma) om repeterende en complexe delen van de code af te handelen. Het gebruik van libraries breidt de mogelijkheden van de vroegere subroutines uit. Een grote gemeenschap van programmeurs heeft toegang tot de libraries, gratis of tegen betaling.

De libraries voor ODR-mmbTools zijn gratis.


Door de invoering van nieuwe high-level instructies voor specifieke doeleinden wordt de library uitgebreid tot de gebruikte programmeertaal .


In plaats van de specifieke code te schrijven, kan de programmeur gebruik maken van bestaande bibliotheken (van andere programmeurs) over het onderwerp. Dat bespaart hem/haar veel werk en versnelt de ontwikkeling van software. De programmeurs kunnen immers het werk van andere programmeurs hergebruiken. De programmeur kan zich dan concentreren op de kern van zijn broncode in plaats van veel tijd te steken in standaardcode, bijvoorbeeld voor interfacing en communicatie via seriële interfaces, USB, TCP/IP, enz.


De broncode van ODR-mmbTools bevat verschillende instructies en aanroepen naar bibliotheken over specifieke onderwerpen. De belangrijkste zijn:

  • FDK AAC-library (AAC-library van Fraunhofer, inclusief programma's voor AAC-codering)
  • ZeroMQ library bevat de programmacode voor de ZeroMQ sockets.
  • libVLC (plugins) (motor en interface voor het multimedia framework van VLC)




Wanneer de compiler de broncode met instructies op hoog niveau vertaalt, kan de broncode verwijzen naar bibliotheken om de compiler te voorzien van de informatie die nodig is voor deze "standaard" instructies op hoog niveau.


Het compileren van broncode die high-level instructies bevat met betrekking tot een bibliotheek kan niet worden gecompileerd zonder dat de bibliotheek in het geheugen is geladen!


Bibliotheken zijn een verzameling voorgeprogrammeerde instructies en gegevens die de programmeertaal uitbreiden voor specifieke onderwerpen.


Ze zijn een fantastisch hulpmiddel om het programmeren te vergemakkelijken.

M - R

MDTC


Het betekent "Modified Discrete Cosine Transform" (Gewijzigde Discrete Cosinus Transformatie) en doet hetzelfde als de "Discrete Fourier Transformatie" (DFT).

Het is een nieuwer wiskundig algoritme voor lossy audio bit-reductie in de meeste audio bit-reducties.


De basis van compressie van audiogegevens of het verminderen van het aantal bits in de audiostream is het omzetten van de discrete audio "tijdmonsters" naar "discrete frequentiemonsters", deze zorgvuldig coderen en vervolgens opslaan of verzenden als bijvoorbeeld MP3- en AAC-bestanden of -streams.


We konden ook de Discrete Fourier Transformatie (DFT) gebruiken. De FFT was echter een beetje een show-stopper. Om audio artefacten te minimaliseren was windowing en 50/50 overlapping van het sample window nodig. De 50/50 overlapping van de samples betekende echter dat de DFT twee keer moest worden uitgevoerd op dezelfde samples met een dubbele uitvoer van frequentiesamples.


Als we onder de motorkap van de Discrete Fourier Transformatie (DFT) kijken, zien we dat deze een "Discrete Cosinus Transformatie" (reëel deel) of DCT uitvoert, maar daarnaast ook een "Discrete Sinus Transformatie" (DST). Beide samen produceren dan een complex resultaat met de cosinus als reëel deel en de sinus als imaginair deel. Door de gelapte bemonstering resulteert de Discrete Fourier Transformatie (DFT) dus in dubbel rekenwerk met dubbel zoveel bits als uitvoer. Dat is niet precies wat we zoeken als we het aantal audiobits willen verminderen.


In het kort kunnen we zeggen dat de DFT twee transformaties uitvoert en dat de audioconversie een dubbel gelapte bemonstering nodig heeft. Er zijn te veel bits en te veel berekeningen.


Waarom ongeveer twee keer hetzelfde doen, wat resulteert in een dubbel aantal bits? Het was waarschijnlijk de vraag die sommige wiskundigen zich stelden. In de jaren zeventig kwamen ze met een oplossing genaamd MDCT.


Wat als je in plaats van de Fouriertransformatie alleen het reële deel transformeert (de Discrete Cosinus Transformatie)? Je probeert de ontbrekende informatie terug te halen via de overlap zonder de Discrete Sinus Transformatie te doen in de Fouriertransformatie.


Ze kwamen met alleen de "Discrete Cosinus Transformatie" gecombineerd met specifieke overlapping, wat resulteerde in de helft van de bits. Ze noemden het de "Modified Discrete Cosine Transform" (MDCT).


Het was een kans om een aanzienlijke bitreductie te bereiken in digitale audio codering toen plotseling de dubbele bemonstering het voordeel had dat het voldoende was om de DFT te reduceren tot een eenvoudiger "Discrete Cosine Transform" (DCT).


Het voordeel van de noodzakelijke overlap kan er echter voor zorgen dat alleen de "Discrete Cosine Transformatie" voldoende is en dat de overlap die resulteert in een dubbele conversie nog steeds de fase tussen de frequenties kan behouden. Wanneer je MDCT tegenkomt in DAB literatuur, kun je ervan uitgaan dat dit een verbeterde DFT versie is die geschikt is voor audio datacompressie of bitreductie.

MP3 (2 stappen FFT + MDCT), AAC (alleen MDCT), Ogg Vorbis, LDAC, Dolby AC-4 en Windows Media Audio gebruiken MDCT.

MPLS


MPLS is een acroniem voor "Multi-Protocol Label Switching". Cisco kwam op het idee in de jaren '90 en ze gaven het toen de naam "Tag switching". Bij de erkenning als internationale standaard veranderde de naam “Tag” in “Label” en voegde men “multiprotocol” er aan toe. MPLS was geboren.


Cisco wou namelijk in de backbone van één en hetzelfde netwerk routing en switching gaan verenigen zodat het beste van beiden technieken flexibiliteit en snelheid verenigd werd.

 

Eenvoudig uitgelegd is MPLS niets anders dan een moderne telecommunicatiedienst die aangeboden wordt door telecom providers en die vele voordelen heeft t.o.v. het Internet. Verschillende providers in Vlaanderen kunnen deze dienst leveren, o.a  Proximus en Orange.

 

Voor alle duidelijkheid, het is een IP-netwerk maar NIET zoals het Publiek Internet (heeft namelijk niet aleen routing maar ook snelle switching in de backbone).

Vanuit het standpunt van de gebruiker moet men het zien als een eigen privaat Internet waar je niet kan communiceren met iedereen maar enkel met je eigen sites (studio’s, MUX en zendersites).

 
Het netwerk biedt voor een equivalente of kleine meerprijs dan het "Publiek Internet" enkele enorme voordelen zoals:


  1. Je kan zgn. “Service Level Agreements (SLA’s)” afsluiten waarbij bepaalde parameters verzekerd zijn, bijvoorbeeld een gegarandeerde doorstroom snelheid (heel belangrijk voor DAB!).

  2. Het is een privaat netwerk waar niemand toegang toe heeft of kan krijgen. Het hacken van dergelijk netwerk is onbestaande. Dit is trouwens een garantie van de provider.

  3. Vooral voor synchronisatie van FM en DAB SFN-netwerken heeft het het voordeel dat de vertragingen klein zijn en weinig varieren. Het synchroniseren van audio voor verschillende FM-zenders gaat quasi automatisch zonder enige tussenkomst. Bovendien levert dit IP-netwerk heel stabiele vertragingen wat vooral gunstig is als men DAB SFN-zenders synchroon wil laten lopen zonder problemen.

  4. Bij defecten (in tegenstelling tot het publieke Internet) is het netwerk binnen de 24 uur gegarandeerd hersteld (zelfs sneller bij betere SLA tegen meerbetaling).  


Het geeft de broadcaster dus ruime voordelen om de continuiteit van het radio maken te verzekeren. Meestal zijn deze zaken enkele Euro’s duurder maar het weegt niet op tegen de voordelen van dergelijk netwerk. Een niet stabiele uitzending is niet echt ideaal om de adverteerders te binden aan je radiostation.


Het moet duidelijk zijn dat het "Publieke Internet" GEEN MPLS netwerk is. Het Publieke Internet is een “best effort” netwerk en zonder enige garantie. Het gebruik ervan is op eigen risico en dus niet echt geschikt om professioneel radio te maken.



Wat is dan het verschil met het Publieke Internet?


Een IP MPLS netwerk (een netwerk dat speciale protocols gebruikt om the switchen op basis van labels i.p.v. te routeren gebaseerd op lange routing lists combineert beide technieken in één netwerk.

Routers leren routes door met elkaar te communiceren, maar kennen een extra label toe aan de pakketten gebaseerd op de routeringsinformatie die ze in hun geheugen hebben. In de backbone van het netwerk zullen Label Switched Routers (LSR of P-routers (Provider Routers)) de pakketten niet routeren maar schakelen op basis van hun label (of tag).

 

Net zoals routers routes van hun naburige routers leren via een routedistributieprotocol (RDP), leren routers nu ook labels van elkaar via het Label Distribution Protocol (LDP).

 

De labels worden aan de rand van het netwerk ingevoegd door de provider edge routers (PE). Ze vinden hun plaats tussen de routeringslaag (3) en de verbindingslaag (2). Daarom noemen sommigen MPLS laag 2.5 (geen deel van het ISO lagenmodel)!

 

In MPLS heeft elke CE router virtuele routers voor elke klant die verbonden is via zijn toegangslijn. Veel klanten maken verbinding met dezelfde PE router (op de POP). Binnen deze router maken ze echter verbinding met hun eigen virtuele router met zijn eigen virtuele routeringstabellen. Dit betekent ook dat elke klant zijn eigen IP-bereiken kan gebruiken. Twee verschillende klanten kunnen zonder probleem hetzelfde Ipv4 adresbereik gebruiken zonder dat conflicten optreden.


Orthogonaal


Wat betekent het?

Het staat voor de O in de DAB-modulatie COFDM.

Twee dingen zijn "orthogonaal" als ze elkaar niet beïnvloeden.


Van de X-as en de Y-as in een cartesisch vlak wordt gezegd dat ze orthogonaal zijn, wat betekent dat beide een hoek van 90° ten opzichte van elkaar hebben. Dit betekent dat wanneer je horizontaal evenwijdig aan de X-as beweegt, de Y-waarde niet beïnvloed wordt. Als je verticaal parallel met de Y-as beweegt, wordt de X-waarde niet beïnvloed. Orthogonale assen betekenen dat de X- en Y-as elkaar niet beïnvloeden.


In de DAB-context betekent orthogonaal dat het aantal onafhankelijke draaggolven (1,536 voor Mode I) zo in het spectrum zijn geplaatst dat ze elkaar niet beïnvloeden.


De regel is dat nabijgelegen draaggolven elkaar niet beïnvloeden als de modulatiefrequentie gelijk is aan de frequentieafstand tussen de draaggolven.


De DAB-symbolen gemoduleerd op de vele draaggolven worden gedurende 1 ms gemoduleerd (deze duur is voldoende om fasevervorming te voorkomen). Een tijdsverloop van 1 ms is gerelateerd aan een frequentie van 1 kHz. Door de draaggolven te moduleren met een symboolduur van 1 ms en een draaggolfafstand van 1 kHz worden orthogonale draaggolven gerealiseerd.


In DAB-modus I hebben de 1,536 draaggolven een afstand van 1 kHz, wat een spectrum van 1,536 MHz oplevert en ons op het bereik van een DAB-kanaal brengt.

POP


Categorie: Telecom aanbieder
Gerelateerd aan DAB: STL (Studio Link)
Acronime: Point-Of-Presence


Als je Telecomoperators gebruikt om de link tussen het radiostation en de MUX en verder de ETI-link tussen de MUX en de zenders te verzorgen, kun je verbinding maken met een POP van een Telecomprovider.


De POP is de plaats waar je privé punt-tot-punt verbinding (zie verderop "toegangslijn" of "last mile") het terrein van de provider bereikt.


Gewoonlijk zal een relatief uitgestrekt gebied slechts één POP hebben. De POP van de telecomprovider is waar de verbinding met het netwerk plaatsvindt.


Meestal geeft de telecomprovider geen informatie vrij over zijn POP. Meestal is het niet van groot belang voor de klant. We leggen het hier uit omdat POP in andere artikelen wordt gebruikt om netwerkarchitecturen uit te leggen, wat nuttig kan zijn bij het uitrollen van DAB.


Het is essentieel om te begrijpen dat vanuit je radiostudio een verbinding alleen voor jou is bestemd om je radiostation met het netwerk te verbinden.

De telecomoperator zal hiernaar verwijzen als "The Last Mile" of "Access Line".


Je moet begrijpen dat deze verbinding andere kenmerken heeft dan het netwerk waarmee je uiteindelijk verbinding maakt. Begrijpen wat een "toegangslijn" is, is essentieel om de end-to-end eigenschappen van een netwerkverbinding van een telecomprovider te begrijpen.



















                                      Figuur - een netwerkverbinding heeft een netwerk en twee toegangslijnen



In dit artikel heb je het volgende geleerd:


- De verbinding tussen twee punten van de klant via een netwerk heeft twee toegangslijnen tussen het terrein van de klant en de POP van de provider (op het terrein van de Telecom Provider).

- Het netwerk bevindt zich tussen de POP's van de provider.

Routers

 

Routing is een laag 3 netwerkprotocol met end-to-end werking. Dit betekent dat de netwerkknooppunten (routers) moeten weten hoe ze alle netwerk-eindpunten (de bestemmingen) kunnen bereiken.

Het leren van alle mogelijke routes in een IP-netwerk (bv. Internet) gebeurt automatisch door de routers zelf. Elke router zal zijn naburige routers (dit zijn de andere routers waarmee de router verbonden is) vragen welke IP-routes ze zien en zal deze routes uitwisselen. Dit gebeurt met speciale Internet-protocollen (er zijn er meerdere zoals RIP, OSPF, ISIS, BGP, enz).


Als gebruiker merk je natuurlijk niet wat er achter de schermen gebeurt, daarom proberen we het zo simpel mogelijk uit te leggen.

 

Vanaf het moment dat je een nieuwe router aansluit op het netwerk (nieuwe klant), zullen alle routers leren hoe ze deze nieuwe klant kunnen bereiken door de nieuwe route (het IP adres) van router naar router over het hele netwerk te verspreiden. Iedere router in het netwerk zal deze route leren (IP adres + mask), overal in de wereld.

 

Natuurlijk zullen al deze routes een immense massa aan gegevens creëren. Het opslaan van al deze routes in het geheugen van de router, vergt veel geheugen. De router zal het bestemmings IP adres van een ontvangen pakket moeten lezen en de volgende hop moeten opzoeken in zijn tabel. In feite heeft hij geleerd welke van zijn interfaces een router ziet die dit IP adres kent en kan verder sturen.


De router moet nu in zijn geheugen gaan zoeken naar welke volgende router die dit IP adres ook kent en moet doorsturen. De routers die met elkaar communiceren houden ook bij hoeveel hops er moeten gemaakt worden om het adres te bereiken. Men noemt dit de “metric”. De router zal uiteraard meerdere routers zien die de route kennen.

 

Als de router bijvoorbeeld verbonden is aan 8 routers, dan is het waarschijnlijk dat die router het te bereiken IP adres ziet op 5 van deze routers. Op basic van de metric gaat hij de kortse route kiezen. Of als een route aangeduidt staat als niet beschikbaar, zal hij een andere route met het minste hops kiezen. M.a.w. de router moet wat software afhaspelen eer hij het pakket kan doorsturen.  

 

Hoe langer de lijst met beschikbare routes wordt in zijn geheugen, hoe langer de software moet zoeken om de volgende hop te vinden.

S - Z

STL


Studio Transmitter Link (Studio-zender-verbinding)


Wanneer de uitzendstudio en de zender zich op verschillende locaties bevinden, is er een "Studio Transmitter Link" of STL nodig. Deze is nodig om radio-inhoud van de uitzendstudio naar de zender te sturen.

De STL kan draadloos zijn (terrestrisch of satelliet), een digitale punt-naar-punt verbinding, of een VPN-netwerk. Tegenwoordig wordt zelfs het openbare internet door veel exploitanten als STL gebruikt .


In het eerste voorbeeld gebruiken we de STL om de uitzendstudio te verbinden met de multiplex (MUX) provider door een tussenliggende standaard audio-encoder zoals we die gebruiken voor het streamen van internetradio:





Indien de DAB+ audio encoder zich in de omroepstudio bevindt, wordt een STL voor de verbinding tussen de DAB+ audio encoder en de multiplexer (MUX) (zonder tussenliggende encoder/decoder) gebruikt.




Het eerste voorbeeld is low-budget en minder professioneel. Meestal is dit de oorzaak van minder goede kwaliteit van de audio. De tweede digitale conversie (kan zowel audioformaat als sample rate conversie zijn) speelt een belangrijke rol in de audiokwaliteit. In België gebruiken bijna alle kleinschalige DAB+ radio's deze manier, hoewel velen ook klagen over slechte audiokwaliteit op DAB+.


Voor een optimale audiokwaliteit zullen radio-omroepen de DAB+ audio encoder in de studio plaatsen, die ook het toevoegen van vaak veranderende extra informatie uit de playout software gemakkelijker maakt.

Switches

 

Switches zijn minder ingewikkeld dan routers: ze wisselen het linkadres.

(met link wordt de next hop met de volgende switch bedoeld)

 

Netwerkbeheersystemen moeten echter de end-to-end link berekenen om schakelaars in grote netwerken te configureren welk label voor een bepaalde route moet worden gewijzigd. De configuratie van elke netwerkswitch wordt berekend door een netwerkbeheer systeem. Eens dit gebeurd is, heeft de switch enkel een tabel met linken naar zijn buren (een kleine tabel met slechts enkele entries per interface).

 

Cisco wilde de voordelen van routing (laag 3 end-to-end op een lange lijst IP-adressen) combineren met de voordelen van switching (linklaag 2 gebaseerd op korte schakeltabellen). Routers kennen de routes via de routing protocols en kunnen dus de labels zelf in het netwerk programmeren. De routing protols zorgen voor het leren van routes en daarvan leidt men af welke labels er voor welke routes gebruikt kunnen worden. Nieuwe protocols zorgen voor het verspreiden van de labels tussen de routers (Label distribution Protocol - LDP).

 

Schakelen heeft het voordeel van snelle pakketoverdrachten dankzij korte switchingtabellen en het swappen van labels voor de next hop. De korte schakeltijd zorgt ook voor een snellere weg door het netwerk.

Symbolen


Wat zijn symbolen in digitale communicatie?


We willen de lezer niet in verwarring brengen, maar laten we beginnen met te definiëren dat een digitaal signaal niets anders is dan een speciaal analoog signaal. Een "signaal" is immers een elektrisch signaal, of het nu analoog of digitaal is. De fysica van beide signalen is hetzelfde.



Vergelijking


  • De amplitude van het analoge signaal kan oneindig veel momentane waarden aannemen tussen het minimum (negatieve amplitude) en het maximum (positieve amplitude)
  • Het digitale signaal is een analoog signaal met slechts 2 momentane waarden


Wanneer een analoog signaal slechts twee momentane waarden kan hebben, zoals de amplitude, noemen we het een digitaal signaal.



Modulatie


Modulatietechnieken maken hier gebruik van, bij zenden worden altijd analoge signalen gebruikt. De (digitale) modulatie op de drager gebeurt door te schakelen (keying) tussen twee amplitudes, frequenties of fasen.


Er is echter een oplossing om de bitrate in digitale transmissies te verhogen door meer dan 2 momentane waarden van een signaal te kiezen:

  • Bij gebruik van 4 momentele waarden zouden we 2 bits tegelijk kunnen verzenden
  • Bij gebruik van 8 momentele waarden zouden we 3 bits tegelijk kunnen verzenden
  • Bij gebruik van 16 momentele waarden zouden we 4 bits tegelijk kunnen verzenden
  • Enz...


We noemen symbolen (vergelijkbaar met de eenheid Bauds) het aantal bits dat we tegelijk kunnen verzenden. Het bovenstaande voorbeeld toont symbolen van 2, 3 en 4 bits.


De technieken om meerdere bits in één signaal te verzenden worden bij alle manieren van "digitale modulatie" gebruikt.


Het nadeel van het verhogen van het aantal bits per symbool is dat het aantal waarden toeneemt. De discrete amplitudewaarden zullen dichter bij elkaar liggen en moeilijker correct te detecteren zijn. Hun detectietolerantie wordt kleiner.


Vergeet niet dat door de aan een signaal toegevoegde ruis, de parameters in hun tolerantiegebied gaan wiebelen.


De regel om de waarden nauwkeurig te detecteren is dat hoe meer bits een symbool bevat, hoe hoger de signaal-ruisverhouding (Signal to Noise Ratio - SNR) moet zijn. Er zal een SNR-drempel zijn om een signaal op basis van symbolen correct te kunnen detecteren.

De parameters van het elektrische signaal kunnen amplitude, frequentie en fase zijn.



DAB/DAB+


In DAB(+) bevatten de symbolen 2 bits. De 1536 draaggolven in DAB Mode-I kunnen 3072 bits in één modulatiecyclus dragen.


De gebruikte modulatie is DPQSK. De parameter van de draaggolf die verandert is de fase (Phase).


De Q betekent kwadratuur of 4 fasen en. De 4 waarden geven aan dat het symbool 2 bits bevat. "SK" betekent Shift Keying tussen de 4 waarden.

Transmission Frame


Hoe stuur je bits de lucht in (de DAB/DAB+ zendinterface)?


Voordat een voorwerp van punt A naar B wordt verzonden, wordt het eerst in een doos of envelop verpakt. Bij digitale draadloze communicatie zal dat niet anders zijn.


Bij het verzenden van digitale gegevens kun je de bits het beste in de juiste volgorde in een doosje verpakken. Deze doos wordt in de telecommunicatie een "Frame" genoemd.


Deze pagina beschrijft de organisatie van het frame voor DAB/DAB+ transmissie.



Het DAB/DAB+ transmissieframe


De DAB/DAB+ zender heeft een continue draadloze zendsnelheid van 2400 kilobits per seconde (2,4 Mbit/s). Deze snelheid bestaat uit opeenvolgende (de een na de ander zonder onderbreking) zendkaders die om de 96ms worden verzonden.

Zie figuur:


Fig. 1 – DAB Mode-I Transmission


Het verband tussen de cijfers is eenvoudig, 230400 bits/s gedeeld door 0,096 (96 ms) seconden, wat resulteert in 2400 kbits/s.


Door het frame te verdelen in 77 (0-76) onderverdelingen (tijdframes) en ze een naam te geven volgens de functie die ze vervullen, maakt het nog duidelijker:


  • We noemen het NULL-symbool de eerste subdivisie, iets langer dan alle volgende symbolen van hetzelfde tijdsbestek
  • Het Synchronisatiekanaal noemen we de tweede subdivisie
  • We noemen het Snelle Informatie Kanaal (FIC) de volgende 3 subdivisies
  • En we noemen het Main Service Channel (MSC) de laatste 72 subdivisies



Het NULL-symbool


Dit is de eerste onderverdeling van het frame dat wordt uitgezonden. In de realiteit zal er niets uitgezonden worden (stilte). De korte stilte van de zender zal fungeren als scheiding van de opeenvolgende frames. De ontvanger zal dit gebruiken als het frame-synchronisatiesignaal van 96ms. Op dit type framesynchronisatie wordt later nader ingegaan.


Elk frame begint met stilte (geen transmissie). Tijdens het NULL-symbool wordt er geen DAB/DAB+ informatie uitgezonden.
Het NULL-symbool dient uitsluitend om de DAB/DAB+-ontvanger een kans te geven het begin van elk frame te detecteren en de 96ms synchronisatie voor het zendframe op de ontvangerlocatie in stand te houden.


Fig. 2 – DAB Mode I Transmission with NULL symbols
Introducing a small pause between the frames (white space)



Het synchronisatiekanaal


De volgende subdivisie van het frame bevat een synchronisatiesequentie om de QPSK-demodulatoren te synchroniseren, die de volgende 75 onderverdelingen met DAB/DAB+ informatie zullen detecteren.


Tijdens het synchronisatiesymbool wordt geen DAB(+)-informatie of audiobits uitgezonden.



Het Fast Information Channel (FIC)


De volgende 3 subdivisies vormen het FIC-kanaal. Het FIC-kanaal bevat bits met details over de EMUX. De bitrate van een subkanaal, de naam van het subkanaal, de ID van het subkanaal, de naam van de EMUX, enz.

Er is geen audio in dit kanaal, en de 3 onderverdelingen die het FIC-kanaal vormen hebben een bitrate van 96 kb/s.


The 230400 bits per frame spread over the remaining 75 subdivisions results in 230400/75 equals 3072 bits per subdivision.

The FIC channel uses 3 subdivisions or 9216 bits per 96 ms.
Calculating this for 1-second results in an FIC channel capacity of 9216/0,096 = 96 kb/s


Het Main Service Channel (MSC)


De volgende 72 onderverdelingen vormen het MSC-kanaal.


Hier wordt de audio uitgezonden die de luidspreker van de radio-ontvanger zal weergeven. Vergeet niet dat de audio convolutiegecodeerd is voor foutcorrectie.

De 72 onderverdelingen bevatten 221184 bits per 96 ms of een snelheid van 2304 kb/s.



Het volledige DAB/DAB+ transmission frame


Het DAB/DAB+ transmissieframe wordt in de literatuur vaak weergegeven als een eendimensionale frame-presentatie in de tijd.

Een-dimensionale tijdweergave van het transmissieframe


Hoewel het frame in de frequentieruimte verdeeld is over de 1536 draaggolven, is het niet eenvoudig om deze twee dimensies weer te geven. We hebben het echter geprobeerd in het volgende diagram.


dimensietabel van het transmissieframe



Waar komen de "77 (0-76) subdivisies" vandaan?


We weten dat een DAB/DAB+ zender niet één, maar 1536 draaggolven gebruikt. Elk van onze onderverdelingen bestaat op 1536 draaggolven. We zeggen niet dat we 1536 transmissieframes hebben, maar we beschouwen slechts één transmissieframe. Elke 77 (0-76) frameverdelingen zenden een symbool van 2 bits uit over elk van de 1536 draaggolven.


Het resultaat is 3072 bits per divisie in het transmissieframe. Met de 3 divisies voor de FIC en de 73 divisies voor de MSC in totaal 75 divisies, concluderen we dat we 75 divisies hebben van 3072 bits of 230400 bits per 96ms.



De berekeningen


Alleen de kanalen FIC en MSC zenden DAB/DAB+ gerelateerde bits uit.


Inderdaad 96 kb/s voor het FIC-kanaal en 2304 kb/s voor het MSC-kanaal resulteert in een totale DAB/DAB+ zendcapaciteit van 2400 kb/s.


Ook de verdeling in 96 ms is correct:

  • FIC bevat 9216 bits per 96 ms
  • MSC heeft 221184 bits per 96ms
  • 9216 + 221184 is gelijk aan 230400 bits per 96 ms zendframe
  • 230400 / 0,096 is gelijk aan een transmissiesnelheid van 2400 kb/s


Om de capaciteit van een transmissieframe beter te begrijpen, stellen wij voor de berekening bottom-up en bottom-down opnieuw uit te voeren. En de resultaten te verifiëren.

24 ms Timing


Voorkennis:

Om de 24 ms timing te begrijpen, moet je de DAB-klok van 2048 kHz begrijpen. In de volgende tekst wordt veel verwezen naar T (de periode van de klok 0,48828125 µs). Zie "Het magische getal 2048".



Hoe passen verschillende soorten audiocompressie in hetzelfde 24 ms frame?


Om DAB/DAB+ audiotransport te begrijpen, moet je weten dat audiostreams bestaan uit een continue opeenvolging van zogenaamde audioframes. De audioframes volgen elkaar op om de continuïteit van de getransporteerde audio te garanderen. Elk frame transporteert een brok audio van een specifieke duur. Voor het transportmechanisme in DAB/DAB+ is de duur van een audioframe 24ms. Bijgevolg moeten deze audioframes (met de audiobits) om de 24 ms getransporteerd worden.



Hoe past 24 ms in de DAB-timing?


24 ms is vier keer 96 ms (de lengte van het DAB-transmissieframe.
Of 196608 T (klokperioden).


1 CIF is 196608 / 4 = 49152 T of 49152 T/2048 kHz = 24 ms


  • Audioframes worden elke 24 ms verzonden door de multiplexer en komen aan op de ingang van de zender als ETI(LI)-frames
  • Common Interleave Frames (CIF's) worden elke 24 ms verzonden
  • Het DAB/DAB+ zendframe is altijd een veelvoud van 24 ms!
  • DAB Mode I 96 ms (zenden van 4 CIF's per zendframe)
  • DAB Mode II 24 ms (zenden van 1 CIF per zendframe)
    DAB Mode III 24 ms (1 CIF per frame uitzenden)
  • DAB Mode IV 48 ms (2 CIF's per frame uitzenden)


Een DAB Mode I-zender moet vier ETI-frames van 24 ms ontvangen om één zendframe van 96 ms uit te zenden.

Hieruit blijkt al hoe belangrijk de 24 ms timing in de DAB-apparatuur is.



Wat is de oorsprong van de 24 ms timing?


Deze tijdsperiode komt voort uit de audio-encodering die gebaseerd is op een conversie van tijddomein naar frequentiedomein. Het omzetten van tijddomein naar frequentiedomein kan niet per sample worden gedaan. Om de conversie uit te voeren moet een groot aantal samples (een venster genoemd) in één keer verwerkt worden. Het aantal samples en hun bemonsteringsfrequentie bepalen de timing van het venster.


Het originele DAB gebruikt de MPEG 1/2-laag II audiocodec, die 1152 inputsamples per frame (PCM) omzet van tijd naar frequentiedomein. Layer II gebruikt altijd 1152 samples per frame om de conversie van tijd naar frequentiedomein te maken.


Destijds waren er twee sample rates beschikbaar in DAB 48 kHz en 24 kHz.

Bij een samplefrequentie van 48 kHz geeft dit een frameduur van 24 ms.


1152 samples / 48kHz = 24 ms


Hier vinden we de oorsprong van de 24 ms.


Bij een samplefrequentie van 24 kHz geeft dit een frameduur van 48 ms.


1152 samples / 24kHz = 48 ms


We zetten dus één 24 kHz bemonsterd frame in twee opeenvolgende DAB-frames van 24 ms.



Hoe zit het met het transporteren van MPEG 2 Layer III (MP3) via DAB?


MPEG 2 laag 3 is een speciaal geval met 576 samples per frame. Bij een bemonsteringsfrequentie van 48 kHz komen we uit op frames met een duur van 12 ms.


Berekening: 576 samples / 48kHz = 12 ms


Dit betekent dat je MP3 frames kunt transporteren met het DAB-systeem. Je hebt alleen twee opeenvolgende MP3 frames nodig om het DAB frame van 24 ms te vullen.
Het is echter onwaarschijnlijk dat DAB(+)-ontvangers de audio kunnen reproduceren, aangezien dit niet wordt ondersteund in de DAB(+)-specificaties.



Hoe zit het met het transporteren van HE-AAC over DAB?


Om DAB klaar te maken voor DAB+ (met HE-AAC) werd het iets ingewikkelder. Afhankelijk van de sample rate hebben HE-AAC frames een verschillend aantal samples om te converteren naar het frequentiedomein.


In AAC decodeert elk blok naar 1024 tijddomeinsamples. 1024 samples bij een bemonsteringsfrequentie van 48 kHz resulteren in een tijdsverloop van 1024/48 = 21,3333... ms. Houston we hebben een probleem!


De AAC-frameduur van 21.3333... past niet in de DAB-frameduur van 24 ms.



Het frameduurprobleem voor DAB+ oplossen


Eerst wordt het aantal samples/frame voor 48 kHz sample rate teruggebracht van 1024 samples naar 960 samples.


  • Standaard AAC gebruikt 1024 samples per frame
  • DAB+ gebruikt slechts 960 samples per frame!
  • De HE-AAC-codering die we kennen is niet de HE-AAC-codering die wordt gebruikt voor DAB+!


Het aantal samples per frame voor 48 kHz resulteert in een frameduur van precies 20 ms.


960 samples / 48 kHz = 20 ms


Het aantal samples /frame voor 32 kHz sample rate wordt ook gereduceerd tot 960 samples. Dit resulteert in een frameduur van precies 30 ms.


960 samples / 32 kHz = 30 ms


De HE-AAC optie SBR deelt de bemonsteringsfrequentie door 2. Dit betekent dat 48 kHz met SBR de basis bemonsteringsfrequentie 24 kHz wordt.


960 monsters / 24 kHz = 40 ms


Ook de bemonsteringsfrequentie van 32 kHz resulteert in een basissamplefrequentie van 16 kHz. Of een frameduur van 60 ms.


960 samples / 16 kHz = 60 ms


Blijkbaar heeft de reductie van het AAC-frame van 1024 samples naar 960 niet het probleem opgelost van de frames van 24 ms die in DAB worden gebruikt!
120 ms is echter een veelvoud van 24 ms en alle AAC-frameduur 20, 30, 40 en 60 ms. Dit is de sleutel om het probleem op te lossen.


DAB+ werkt met superframes bestaande uit 5 opeenvolgende frames van 24 ms of superframes van 120 ms. Alle AAC frameduur past in het superframe.

  • 960 samples bij 48 kHz plaatsen 6 DAB-frames in één DAB-superframe voor DAB+
  • 960 samples bij 32 kHz zorgen voor 4 DAB-frames in één DAB-superframe voor DAB+
  • 960 samples bij 24 kHz (48 kHz + SBR) brengen 3 DAB-frames in één DAB superframe voor DAB+
  • 960 samples bij 16 kHz (32 kHz + SBR) zorgen voor 2 DAB-frames in één DAB-superframe voor DAB+


Desondanks blijft 24 ms een belangrijke sleutel om de DAB frame puzzel compleet te maken


De 24 ms is ook gerelateerd aan de klokperiode van DAB (2048 kHz), namelijk
24 ms = 49 152 * T (met 1 ms = 2048 T)

ZeroMQ


Zero Message Queue


Het is een "message broker (communicatie makelaar)" software bibliotheek ontwikkeld om de communicatie tussen gedistribueerde applicaties gemakkelijker te programmeren. We hebben al gezegd dat ODR-mmbTools bestaat uit afzonderlijke softwaremodules op dezelfde of verschillende computers. Deze modules hebben een manier nodig om met elkaar te communiceren en gegevens uit te wisselen.


ZeroMQ is de communicatie bibliotheek die inter-applicatie communicatie makkelijker te programmeren maakt. De bibliotheek bevat sockets en is beschikbaar voor verschillende programmeertalen.


De bibliotheek maakt een abstractie van de onderliggende complexiteit van communicatieprotocollen. De Ø of nul staat voor "no broker". Er is namelijk geen message broker (software van derden) zichtbaar voor de programmeur omdat hij alleen de aangeboden ZeroMQ sockets gebruikt.


"Message Queue" staat voor het in een wachtrij plaatsen van berichten. De client kan bijvoorbeeld beginnen met het versturen van berichten, zelfs als de ontvangende server niet draait. Zodra de server online komt, begint de berichtenoverdracht in de wachtrij. De programmeur heeft geen last van extra queue software omdat ZeroMQ dit afhandelt.


Zonder ZeroMQ en de meegeleverde queues, zou het programma een foutmelding geven als de server niet draait. ZeroMQ zal ook sommige processen automatisch herstarten. ZeroMQ neemt veel lasten weg bij het programmeren van inter-applicatie communicatie software.


De complexiteit verdwijnt voor de programmeur door het gebruik van de ZeroMQ library.


Om te garanderen dat de communicatie van de ODR-mmbTools modules werkt, is installatie van de ZeroMQ library op de DAB headend computer vereist.

Wie zijn wij?
We zijn een groep techneuten die decennia lang het technisch reilen en zeilen bij verschillende lokale radio's vrijwillig op zich hebben genomen. Aan onze denktank zijn geen commerciële doeleinden verbonden. We doen dit vrijwillig omdat wij zoals jullie echte lokale-radio-pioniers waren en nog steeds zijn, mensen met een hart voor lokale radio. "Lokaal Digitaal" is een non-profit organisatie die de omschakeling van FM naar DAB+ voor lokale radio's in Vlaanderen wil faciliteren. Wij hopen hierbij een steentje bij te dragen aan technische kennis omtrent DAB+ waarmee de meeste lokale radio's te kampen hebben.

Waarom deze website?
Het is onze intentie lokale radio's via deze website zoveel mogelijk te informeren over het technische aspect van DAB+, geschreven in verstaanbare mensentaal. Content van deze website mag gebruikt worden voor onderwijsdoeleinden mits vermelding van de url van deze website.


Onze Missie:
Wij willen samen denken over de toekomst van lokale radio's in Vlaanderen, met name de toekomstige "FM-switch off" en de nieuwe "DAB+ standaard" voor lokale radio. Omdat we weten dat lokale radio's houden van hun zelfstandigheid, denken wij na over scenario's waarbij lokale radio's zoveel mogelijk hun onafhankelijk behouden en kosten in eigen beheer kunnen houden.

Contacteer ons

via mail

via facebook

Lokaal Digitaal als vereniging, noch de medewerkers ervan als individu, kunnen verantwoordelijk gesteld worden voor eventuele fouten en de mogelijke gevolgen ervan, die zouden kunnen voorkomen in de technische artikelen op de website of in andere publicaties van Lokaal Digitaal.

Pas als je kennis deelt, krijg je wetenschap!


Lokaal Digitaal

Copyright © 2021-2023 Alle rechten voorbehouden