Utvikling av DSP-systemer

Av Espen Flo Eriksen

Stadig flere signalbehandlings-funksjoner implementeres i det digitale domenet (Digital Signal Processing – DSP). Dette kan være systemer innen for eksempel kommunikasjon, sensorer eller kontrollsystemer. I DSP-systemer håndteres mange ulike effekter, og her skal vi vurdere noen av disse. Kvantisering er ofte den første faktoren man tenker på, men det er flere effekter som spiller inn.
Da blir det spesielt viktig å ha en klar strategi og metodikk for hvordan disse effektene skal håndteres. På den måten kan vi utvikle et ferdig system med den ytelsen som kreves, uten at kompleksiteten har blitt for høy.

Metodikk

En god metodikk for å håndtere de ulike effektene som oppstår i et DSP-system er å starte med en modell av systemet som utfører kjernefunksjonene som behøves, på en mest mulig ideell måte. Dette kan gjøres blant annet ved å benytte flyttalls tallformater for å minimere kvantiseringseffekter og å benytte en relativt høy samplingsrate. I enkelte tilfeller kan vi benytte dette helt frem til ferdig implementasjon, men i de fleste tilfeller gir det en for kompleks implementasjon, som blant annet trekker for mye effekt. Da må systemet optimaliseres, og de videre konsekvensene av det håndteres.

For å kunne gjøre en god avveining er forståelse for de implementasjonsspesifikke fenomenene som opptrer en nøkkel. Denne forståelsen kommer både gjennom teoretisk analyse og simuleringer av systemet. Punktene under viser noen typiske effekter man må ta hensyn til i et DSP-system:

  • Kvantisering av signalet i flere trinn. I de fleste tilfeller kan dette modelleres som additiv hvit støy
  • Metning av signalet der tallformatet vårt ikke kan representere en høyere verdi
  • Filtre med en lang impulsrespons kan måtte forkortes
  • Kvantisering av parametere og koeffisienter
  • Foldingsprosesser ved reduksjon i samplingsrate
  • Begrenset eller ikke-ideell tids-oppløsning av signalet


Trinn for trinn

Først må vi ha en teoretisk forståelse av disse effektene og vurdere hvordan de påvirker det aktuelle designet. I simuleringer av systemet innføres deretter punktene over trinnvis, så langt det lar seg gjøre. Da kommer det frem hvordan hver av dem påvirker ytelsen. Målet vårt er å forstå hvordan og hvor mye hver effekt bidrar, for derved å balansere dette i det endelige designet.

I noen tilfeller finnes det en teoretisk beste ytelse som implementasjonen vår kan måles mot. Men det er ikke alltid tilfelle. Når en optimal løsning ikke er kjent, blir det enda viktigere å kunne skille mellom de fundamentale begrensningene som ligger i algoritmen vi har valgt, og de ulike effektene som følger av implementasjons-valgene våre.

Oppsummering

Med en gjennomtenkt metodikk for utvikling av DSP-funksjoner kan vi håndtere de ulike effektene som vil oppstå i et slikt system. Ved å ha kontroll på både fundamentale begrensninger i algoritmene våre og effektene av implementasjonsvalgene som er tatt underveis, kan vi demonstrere at slutt-resultatet har den ytelsen som kreves samtidig som det er optimalisert med hensyn på kompleksitet og effektforbruk.

Author