Stage algoritme QAM modem

Ik ben een studente informatica aan een hogeschool en ga beginnen aan mijn stage bij een bedrijf dat consultancy doet. Dit is een stage van vier maanden gedurende de zomer.

Het is de bedoeling dat ik eerst twee maanden ga werken aan een project voor een klant van het bedrijf. Ik ben vrijdag met die klant gaan praten om meer informatie te krijgen over wat de bedoeling is.

Ze hebben een communicatie subsysteem voor unmanned ground vehicles waar een feature ingebouwd moet worden. Dit platform is intern ontwikkeld. Ik heb een hele uitleg gekregen over de werking maar ik begreep er maar weinig van. Het systeem bestaat uit vier delen: 'QAM modem digital core', 'modem baseband interface', 'band specific upconverter with PA/LNA' en 'antenna with positioner and radome'.

Het feature dat ze willen bevindt zich in de software voor een Xilinx LX75 chip in de 'QAM modem digital core'. Deze chip zou de gegevens die uit de sensoren van het platform komen omzetten in een digitale datastroom die dan draadloos verzonden wordt naar een vliegtuig of drone tot op 40km afstand.

Concreet is het de bedoeling om een correctie algoritme toe te voegen in de ‘QAM modem digital core’ waardoor de te overbruggen afstand groter wordt met dezelfde zendsterkte. Dit zou het dan mogelijk moeten maken om een minder krachtige en dus moeilijker te detecteren zender te gebruiken. Hun voorkeur ging naar het Turbo Code+BCH algoritme, maar een andere methode die hun eisen haalt is ook goed. Ze hebben hier nog bijgezegd dat het Hamming algoritme dit niet kan.

Ik heb per mail een PDF gekregen met een tiental pagina’s berekeningen die zouden moeten uitleggen hoe goed het systeem moet zijn. Ik snap er niets van en weet niet hoe die te interpreteren. Er is nog een apart documentje bij waarin zo goed als alle tekst is zwart gemaakt behalve deze tabel:

Target end-user rates: 6mbps, 12mbps, 24mbps or 36mbps (for future expansion)
Minimum transport efficiency: > 1.95b per s Hz
Minimum C/N (Es) at receiver for QEF: < 8.5dB
Implementation loss of current modem chain: ~ 0.9dB
Latency: < 500ms is acceptable, < 100ms is perfect. Current modem chain uses 24ms.
Note: Invalid frames may not routinely be delivered to the end-user application, avoid the use of a FEC decoder that forces a correct codeword as postcondition.

Dit is een samenvatting van de resultaten van die berekeningen denk ik want de getallen komen terug.

Ik ben hier vrij hard van geschrokken. Ik denk dat ik dit project gewoon niet kan verwezenlijken en al zeker niet in twee maanden. Ik heb in het weekend zitten lezen over die algoritmen maar de wiskunde is te moeilijk. Ik betwijfel ook of ik veel hulp ga krijgen van het bedrijf want de persoon waar ik mee heb gesproken leek mij te zien als expert.

Ik heb twee vragen:
1. Is er enige mogelijkheid dat dit haalbaar is? Ik kan er voor twee maanden ongeveer dertig uur per week aan werken. Welke delen maken samen de gehele oplossing? Zelfs daar heb ik geen zicht op :(

Het leek heel belangrijk dat ze een werkend en goed getest systeem hebben over twee maanden gezien ze alles dan gaan overhandigen aan een systeem integrator. Het project heeft al enige vertraging opgelopen waardoor er geen overschot meer is. Ze zouden liefst zes weken ontwikkelen en testen in een simulator. Daarna zouden er nog twee weken zijn voor uitgebreide real-life end-to-end testen.

2. Dit project lijkt heel weinig aan te sluiten op mijn opleiding, ik heb voornamelijk geleerd om te werken met bestaande producten en hoe een netwerk op te zetten, denk aan: subnetten, Cisco, Powershell, remote desktop en routing. Is deze opleiding niet goed afgestemd op het bedrijfsleven of is dit bedrijf gewoon te geavanceerd? Mijn medestudenten hebben allemaal veel meer chill stages :(

Dit is niet reëel voor een student. Ik draai al jaren mee in diverse bedrijven waar dit soort dingen gemaakt worden.

Maar het kan zijn dat het meevalt. Vaak is het gewoon maar wat libraries aan elkaar plakken.

Belangrijk is duidelijk te maken dat je er nog niets van snapt en laat ze het maar uitleggen. Nu meteen dat duidelijk maken is beter dan later.

Verder bestaat het Hamming algoritme niet, ze bedoelen Hamming code. Dit is een code (binair getal) die een redelijke foutdetectie en correctie mogelijk maakt. En dat is wat ze nodig hebben: ze hebben een slechte verbinding en er moet een protocol draaien wat met veel communicatiefouten toch nog een redelijke hoeveelheid data overbrengt. Maar dan wat niveaus hoger dan de ondertussen oeroude Hamming code. Die heb ik zelfs nog geleerd gehad....

Ik ken de invulling van je informatica opleiding niet, maar niet neigt erg naar technische informatie gericht op embedded systemen.
Zoals Hoeben al zegt, wellicht valt het allemala wel mee, maar klinkt het allemaal erg complex.
Ik vind het wel frapant dat het bedrijf je als expert ziet als je daar voor ene stage opdracht komt, of is die klant zich daar niet echt van bewust?
Je doet namelijk je stage bij een consultancy bedrijf begrijp ik.
Het is belangrijk dat je een goede begeleider hebt die het eigenlijk zelf ook zou kunnen om het jou te leren.
Als ik het zo hoor vind ik het voor een 2 maanden durende stage wel wat complex.

Misschien een beetje opletten met de informatie die je zo naar buiten brengt. Dat zou nog wel eens gevoelig kunnen liggen.

Bekend gedrag van het consultancy bedrijf, een onervaren kracht tegen de volle mep als expert bij de klant weg zetten. Mijn advies bespreek dit met je stagebegeleider van zowel het consultancy bedrijf als je opleiding, geef duidelijk aan dat deze opdracht buiten je competenties ligt. Willen ze toch dat je het doet dan zal het consultancy bedrijf er een ervaren kracht naast moeten zetten als coach.

Zeker gezien de tijdslijnen van het project moet je voorkomen dat jij straks de "kop van jut" word.

[Bericht gewijzigd door Roland van Leusden op dinsdag 12 juni 2018 09:30:38 (11%)

It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.

Tip voor de praktijk: Als je toch hiermee aan de slag gaat, zorg voor goede documentatie. Rapporteer eerlijk.

Dus niet: Paula bean.

Verder: Als je op school sommetjes krijgt van R1 = 4 ohm, R2 = 6 Ohm, Ubron = 10V, bereken I. dan is niet de gedachte dat je ook dit soort sommetjes in het bedrijfsleven gaat oplossen. Je zult in de praktijk ook wat eigen vernuft moeten gaan ontwikkelen en dus effectief dingen gaan oplossen die "niet aansluiten bij de opleiding".

Dat neemt niet weg dat ook ik niet aan de indruk kan ontkomen dat eea gewoon te hoog gegrepen is.

Bij nader inzien weet ik wat BCH is en Hamming. Phew. :-)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Als ik het zo lees is de opdracht om een foutcorrectie algoritme toe te voegen dat een dusdanige aantal bits kan corrigeren dat men simpelweg met een slechtere verbinding kan werken.

Het klinkt een beetje alsof het voor een militaire toepassing is.

Dit soort foutcorrecties worden veelal ook toegepast in FLASH geheugen, wat je doet is naast de inhoudelijke data een hoeveelheid correctiedata meesturen. Je gaat feitelijk een stuk redundante data versturen voor de correctie van zowel de payload als correctie data.

Dit soort opdrachten vind ik wel binnen het kader van de informatica passen, ik neem aan dat ze niet verwachten dat jij een compleet nieuw algoritme gaat uitwerken maar een bestaande oplossing weet te selecteren en te implementeren. Dit wordt een klus waarbij jij je dus moet gaan verdiepen in het onderwerp van foutcorrectie. Ik zou de stagebegeleiding verzoeken je hierbij te helpen aangezien zij hier in ieder geval de nodige ideeën over zullen hebben.

Op 11 juni 2018 23:50:24 schreef Lieke:

2. Dit project lijkt heel weinig aan te sluiten op mijn opleiding, ik heb voornamelijk geleerd om te werken met bestaande producten en hoe een netwerk op te zetten, denk aan: subnetten, Cisco, Powershell, remote desktop en routing. Is deze opleiding niet goed afgestemd op het bedrijfsleven of is dit bedrijf gewoon te geavanceerd? Mijn medestudenten hebben allemaal veel meer chill stages :(

"Chill stages" WTF? Waarom zou je een nutteloze stage hebben waarbij je kan chillen? Je bent nu bijna klaar met je studie en dan is het voor de rest van je leven afgelopen met "chillen". Welkom in de grote mensen wereld. Als ik het zo lees doen ze waarschijnlijk leuke dingen bij het bedrijf waar je bent en zit je best op een bevoorrechte positie, maak er gebruik van. Vraag om hulp, probeer de stof te begrijpen en vraag om hulp waar je vastloopt. De boel verkloten kan altijd nog ;)

This is the world we know best, the world of madness

Op 11 juni 2018 23:50:24 schreef Lieke:
2. Dit project lijkt heel weinig aan te sluiten op mijn opleiding, ik heb voornamelijk geleerd om te werken met bestaande producten en hoe een netwerk op te zetten, denk aan: subnetten, Cisco, Powershell, remote desktop en routing. Is deze opleiding niet goed afgestemd op het bedrijfsleven of is dit bedrijf gewoon te geavanceerd? Mijn medestudenten hebben allemaal veel meer chill stages :(

ben het met Blackfin eens, dit is wel veel interessanter dan wat systeem beheerders dingetjes (gaaaaaaaap ;) )
maarja ieder zijn interesses natuurlijk. Een stage kan ook erg goed zijn om eens iets totaal anders te proeven. Als de conclusie uiteindelijk is dat je dat vooral niet wil is dat ook een positieve les van die stage.

Op 12 juni 2018 12:37:34 schreef Blackfin:

Dit soort opdrachten vind ik wel binnen het kader van de informatica passen, ik neem aan dat ze niet verwachten dat jij een compleet nieuw algoritme gaat uitwerken maar een bestaande oplossing weet te selecteren en te implementeren.

Nee, ze verwachten volgens mij van haar dat ze een bestaand algorithme "even" in die xilinx propt.

Als ik het mag inschatten: Enkele jaren ervaring met xilinx is dan wel erg handig.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Nee, ze verwachten volgens mij van haar dat ze een bestaand algorithme "even" in die xilinx propt

Dat is mijn gevoel ook.

It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.

Waarschijnlijk is er een software core geimplementeerd en moet daar extra code voor worden geschreven, dat is natuurlijk een heel stuk eenvoudiger dan zelf HDL code te moeten schrijven.

Kortom het is gewoon een onderzoeksopdracht/implementatie van bekende algoritme. Vraag eens wat de ontwikkeltools zijn en welke programmeertaal er wordt gebruikt.

This is the world we know best, the world of madness
joopv

Golden Member

De uitdaging is in weze simpel: inplementeer een codering die de bestaande verbinding betrouwbaarder maakt. Detecteer en corrigeer transmissiefouten.

Je krijgt natuurlijk niks voor niks: in dit geval is dat het verminderen van de kanaalcapactiteit (in bits/sec) en latency (in millisec.).

Je moet dus een encoder software module bouwen die een bestaande datastroom aanneemt en een gecodeerde datastroom aflevert. En een decoder, die het omgekeerde doet.
Er komen dus meer bits UIT zo'n encoder dan dat er in gaan. Dat is de prijs die je moet betalen voor je fout detectie cq je verbeterde betrouwbaarheid.

Er zijn tientallen systemen om dit te doen, allemaal met hun eigen gebruiksdoel. Op een audio cd wordt iets anders gebruikt dan in een harddisk, of op een radioverbinding, of op een adsl modem.

Het simpelste systeem is het toevoegen van een parity bit aan iedere 8 databits. En dan zijn er nog vele andere complexere systemen.

Op youtube zijn complete cursussen te vinden. Zoek daar eens op "information coding theory". Er zijn ook series PDF's te vinden van US universiteiten. Materiaal genoeg, maar getallentheorie / statistiek moet je wel een beetje liggen.

Zomaar iets implementeren zonder goed te begrijpen wat je aan het doen bent is een recept voor een ramp.

Kan je iets meer zeggen over de lengte van de boodschappen. Ik neem aan dat het geen continue datastroom is.
Mrt qam bedoel je qam4, qam16, qam64, ....?
Bij digitale radio (en tv) is het gebruikelijk de data via een convolutional encoder te versturen en da, afhankelijk van de (verwachte) conditities bits weg te laten.
Viterbi en- en decoding is een krachtig mechanisme voor fec achtige recovery.
Een ander probleem: als de data bestaat uit messages ipv een continue strrom, hoe detecteer je het begin (en de synchronizatie?).

Op 12 juni 2018 14:46:21 schreef Blackfin:
Waarschijnlijk is er een software core geimplementeerd en moet daar extra code voor worden geschreven, dat is natuurlijk een heel stuk eenvoudiger dan zelf HDL code te moeten schrijven.

Ik weet het niet of dat galois field berekeningen gedoe nu makkelijker in hardware of in software te doen is. Maar het blijft toch echt een 6-maanden klus voor iemand die reeds in de materie bekend is (eerder met de softcore gewerkt of eerder VHDL geschreven, bekend met de galois field princieps etc etc).

(Nu is het zo dat bij programmeurs er een enorm verschil is tussen de beste en de slechtste. Iets van: de slechtste is zo'n 5x langzamer dan het gemiddelde, de beste 10x beter. Dat is bij andere beroepen veel minder het geval. Veel minder spreiding tussen de beste en de slechtste. Dus als ik zeg 6 maanden voor een gemiddelde programmeur, dan zou het best kunnen dat er iemand (*) is die het in 1 maand lukt. Maar dat is dan een top-1-% figuur. )

(*) er stond eerst "te vinden is"... Maar dat is het dus. Die zijn niet te vinden. :-)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/