Sammendrag
Denne oppgaven presenterer en rask måte å invertere komplekse matriser
i en FPGA (Field Programmable Gate Array). Motivasjonen for oppgaver
har vært behov for rask matriseinvertering i forbindelse med kanalutjevning
i Kongsberg Defence Communication (KDC) nye generasjon av taktiske
radiolinje, RL532A. Denne skal benytte seg av frekvenshopp for å beskytte
seg mot støy og jamming.
Den nye radiolinjen til KDC skal brukes i kupert terreng. Her vil det oppstå
refleksjoner som fører til multipath-forsinkelser i det mottatte signalet.
Mottakeren vil oppleve dette som støy eller Inter Symbol Interferens (ISI).
For å fjerne ISI, benytter radiolinjen seg av en LMS-utjevner (Least-Mean
Square). LMS’en finner det inverse kanalfilteret på bakgrunn av data den
mottar over tid, men dette blir for tregt når frekvenshopping skal benyttes.
LMS’en finner det inverse kanalfilteret mye rasker hvis den får en startverdi.
Denne startverdien er det mulig å finne ved hjelp av matriseinvertering.
Radiolinjen har derfor bruk for en rask måte å invertere matriser på.
Fixed point QR-dekomponering og tilbakesubstitusjon blir brukt i matriseinverteringen,
som er dokumentert å gi numerisk stabile løsninger. Tre
forskjellige metoder for å utføre QR-dekomponeringen blir sammenlignet
og Givens rotasjon blir valgt som metode. Givens rotasjon blir optimalisert
ved bruk av en spesialtilpasset kvadratrot enhet og blir implementert
i VHDL med en 11 stegs pipeline. Oppgaven viser også hvordan resten
av systemet kan pipelines. Et estimat viser at det er mulig å invertere en
25x25 matrise på under 100µs med denne implementeringen. Til slutt blir
implementeringen sammenlignet mot en annen, som viser at min implementering
er 3 ganger raskere.