--- permalink: /artikel/3/index.html ---
Under kursen TNG015 Signaler och system h�r p� Link�pings tekniska h�gskola genomf�rde jag ett mindre projekt som gick ut p� att testa ett teoretiskt resonemangs praktiska funktionalitet.
Det hela handlade om komprimering av digitalt ljud och baserades p� en filtreringsprocess. Jag t�nkte skriva litet kort om resonemanget och jag l�gger dessutom ut k�llkoden till programmet jag skrev under projektets g�ng.
Kompression av digital data baseras p� att det ibland uppst�r upprepningar och m�nster i datan som rent intuitivt tar upp on�digt mycket plats. Som ett exempel kan man t�nka sig att textstr�ngen "aaaaabbbbbccccc" skulle kunna lagras p� ett smart s�tt som tar mindre utrymme om man utnyttjade det faktum att den egentligen best�r av tre tecken med ett visst antal upprepningar f�r varje.
Samma princip g�ller f�rst�s f�r ljud - om man kan hitta upprepningar och m�nster kan man ocks� lagra ljudsignalen p� ett intelligent s�tt. Ljudet representeras digitalt som ett �ndligt antal sampelv�rden, d�r varje v�rde motsvarar en amplitud. Det �r �ven s� att ljudet best�r av en kombination av olika frekvenskomponenter, d�r h�ga frekvenser bidrar till den stora detaljrikedomen (snabba variationer till exempel) som signalen kan inneh�lla.
Mitt resonemang gick ut p� att om jag kan filtrera bort (eliminera) de h�ga frekvenserna s� minskar detaljrikedomen i ljudet och chansen att upprepningar och m�nster uppst�r �kar. Efter detta skulle jag kunna anv�nda n�gon k�nd kompressionsmetod f�r att g�ra filstorleken mindre. Intuitivt k�nns det som att ju fler frekvenser jag filtrerar bort, desto h�gre blir kompressionsgraden och desto mindre blir (naturligvis) filen.
F�r att testa mitt resonemang skrev jag ett Java-program som l�ser in en Wave-fil, filtrerar bort frekvenser h�gre �n en viss brytfrekvens (l�gpassfiltrering), komprimerar datan med GZIP-kompressionen och sparar resultatet som en ny fil.
Det visade sig att mitt resonemang i huvudsak st�mde, �ven om det blev uppenbart att m�nga fler faktorer spelade in i den resulterande filstorleken. P� det stora hela var projektet lyckat, och jag �r glad och stolt att kunna presentera det h�r.
Till h�ger har jag bifogat en RAR-fil med k�llkod, programfiler och dokumentation, tillsammans med ett PDF-dokument inneh�llande den rapport jag skrev efter projektets slut. Jag rekommenderar den intresserade att l�sa rapporten - jag har f�rs�kt skriva den p� ett l�ttf�rst�eligt s�tt och h�lla nere sidantalet s� att den ska vara l�tt och rolig att l�sa.
Anders Fjeldstad
Publicerad 21 mars 2004, uppdaterad 22 maj 2007
Copyright © 2005 Anders Fjeldstad et al.