Digitale signaalprocessor

chip die doorlopende signalen verwerkt zoals geluid of bewegend beeld

Een digitale signaalprocessor (DSP) is een microprocessor die speciaal ontworpen is voor het bewerken van (continue) digitale signalen. Voordat een analoog signaal bewerkt kan worden, zal het signaal eerst door een analoog-digitaalomzetter omgezet moeten worden in een digitaal signaal. Dit binaire signaal wordt bewerkt door een ingebakken programma. Voordat het beluisterd kan worden, moet het signaal weer analoog gemaakt worden door een digitaal-analoogomzetter.

Digitale signaalprocessor-chip van Nintendo

In principe worden in een normale computerprocessor ook digitale getallen bewerkt. Het kenmerkende van een DSP is dat deze processor geoptimaliseerd is voor het bewerken van grote (continue) gegevensstromen zoals audio of video.

Als het analoge signaal bijvoorbeeld een audiosignaal is, kunnen de volgende eigenschappen van het audiosignaal worden bewerkt:

Andere toepassingen zijn audio(de)compressie, video(de)compressie, beeldverwerking en beeldherkenning (bv ANPR-camera), sonar en radar, spraakherkenning, medische beeldvorming, communicatiesystemen.

DSP's worden ook gebruikt in AV-receivers voor klankmodellering en weergave van surroundgeluid of nabootsing van ruimtelijke weergave in een jazzclub, hal of kathedraal, en in synthesizers voor de weergave van effecten.

Met moderne computers is het ook mogelijk om digitale signaalverwerking door software te laten uitvoeren. Een nadeel hiervan is dat er vaak vertraging optreedt.

Technische achtergrond bewerken

Veelvoorkomende bewerkingen in de signaalbewerking zijn FIR en IIR-filters, alsook FFT-berekeningen. Deze kunnen door deze processor zeer snel uitgevoerd worden dankzij een MAC-unit (multiply accumulate). Deze maakt het mogelijk om een vermenigvuldiging en optelling in 1 klokcyclus uit te voeren.

Waar gewone processors met de Von Neumann-architectuur het programma en data in hetzelfde geheugen opslaan, gebruikt de DSP de Harvard-architectuur. Dit wil zeggen dat het geheugen opgesplitst wordt naargelang de functie van de gegevens. Dit is zeer belangrijk bij het verwerken van een continue signaalstroom, omdat de gegevens in verschillende cache-geheugens van de processor kunnen worden opgeslagen. Een programmasprong zal dus niet de volledige cache leegmaken. Bij een traditionele processor moeten hierdoor de data steeds terug in het cache geladen worden.