Ik studeer inmiddels elektrotechniek aan de TU Delft. Daar hebben we het afgelopen half jaar ook niet stil gezeten. In groepjes hebben we daar voor ons eerstejaars project een audiosysteem gebouwd. Hierbij zat ik met mede Co-er The Engineer in een groepje. Het doel was een zo vlak mogelijk audiosysteem te bouwen. Dat wil zeggen, een audiosysteem wat geluid van alle frequenties tussen 20Hz en 20KHz even hard weergeeft.
Uiteraard was het bouwen van een versterker met bijbehorende voeding en filters geen echte uitdaging. Zeker gezien het feit dat alle schema's al gegeven waren en slechts componentwaarden berekend hoefden te worden.
Op één onderdeel werden we echter wel vrijgelaten. Omdat het geluid van de woofer bij lage frequenties te snel afvalt was het de opdracht hier iets aan te doen. De meeste groepjes pakten dit aan met een simpel eerste of tweede orde hoogdoorlaatfilter. Anderen met dingen als shelving filters.
Ik heb dit echter wat rigoreuzer aangepakt en wilde een onderdeel bouwen wat alle oneffenheden in de akoestische overdracht vlak kon krijgen. Daarom heb ik er voor gekozen een digitaal filter implementeren.
Dit filter heb ik ontworpen op basis van een LPCxpresso 1769. Om met audio te kunnen werken heb ik hiervoor een interface printje ontworpen met een voeding, DAC en ADC er op. Daarna heb ik samen met iemand andes hier software geschreven wat de samples inleest, er een FIR filter overheen haalt, en het vervolgens weer uitstuurt.
Helaas schoot de LPC1769 qua CPU en RAM nog wat te kort. Ik had van tevoren niet verwacht dat ik zoveel polen in mijn filter nodig had. Want mijn code was al aardig efficiënt, maar verder dan 128 polen kwam ik niet. Dit zorgde er voor dat de nauwkeurigheid voor lage frequenties niet meer zo best was.
Foto's
Dit is een foto van de complete opstelling:

Digitale filter:

Bovenkant converterprintje:

Ja, er zat een klein ontwerpfoutje in. Op het laatste moment had ik de footprint van C13 aangepast, maar hierdoor kwam hij over een baantje heen. Ik heb dit niet meer gezien, en ook geen DRC meer gedraaid. Stom!
Onderkant converterprintje:

Voor alle informatie zie ons verslag. De code staat op github