Yksinkertaista taajuusanalyysia, Tiralabra II/2020.
Projektin ytimessä on ymmärtää paremmin signaaliprosessointia Fourier-muunnosten avulla, toteuttaen samalla yleisesti käytetty radix-2 DIT versio Cooley-Tukey FFT-algoritmista. Se on käyttöömme riittävän nopea, yleisesti tunnettu ja sen pseudokoodi sekä optimointi-ideoita on helposti saatavilla.
Sovellus analysoi lyhyitä äänitallenteita ja palauttaa signaalin perustaajuuden, eli dominantin aallonpituuden hertseinä. Tallenteen tulee olla 16bit mono WAV-tiedosto näytteenottotaajuudella 44100 Hz.
Ohjelman JAR-tiedosto löytyy ./gradlew build
komennon suorittamisen jälkeen polusta app/build/libs
, tai voit ladata sen Githubista kuten tämän dokumentin "Artefaktit Githubissa" -osiossa neuvotaan.
Ohjelma lukee annetun Wav(RIFF)-muotoisen, yksikanavaisen signed 16bit PCM-muotoisen tallenteen. Toteutusta ei ole suunniteltu yli 5 sekunnin mittaisille tallenteille, eikä analyysi välttämättä ota huomioon koko tallennetta. Ohjelma ilmoittaa mahdollisesti sivuutettujen näytteiden määrän suorituksen yhteydessä.
Esimerkiksi seuraavan komennon pitäisi antaa perustaajuudeksi 440 Hz:
java -jar app/build/libs/app.jar app/src/test/resources/440hz.wav
Lisää äänitiedostoja voi generoida ottamalla mallia esimerkiksi tästä python skriptistä tai käyttämällä saatavilla olevia äänen muokkamiseen soveltuvia ohjelmia.
- Viikkoraportti 1
- Viikkoraportti 2
- Viikkoraportti 3
- Viikkoraportti 4
- Viikkoraportti 5
- Viikkoraportti 6
Versionhallinnan main
-haarasta tehdään automaattisesti ajo, jossa:
- käännetään projekti ja tallennetaan JAR-paketti artefaktia
Package
, - ajetaan checkstyle ja tallennetaan raportti osaksi
Reports
artefaktia, - ajetaan testit ja tallennetaan raportti osaksi
Reports
artefaktia, - ajetaan jacoco testikattavuustyökalu ja tallennetaan raportti osaksi
Reports
artefaktia, - ajetaan Javadoc ja tallennetaan se
Javadoc
artefaktiksi.
Kaikki artefaktit (Artifacts) saa ladattua projektin Actions-välilehden alta, valitsemalla ensin jokin esitetyistä tuloksista (eli ajoista).
- 3Blue1Brown: But what is the Fourier Transform? A visual introduction, 2018, englanniksi
- Wikipedia: Cooley–Tukey_FFT_algorithm, englanniksi
- James W. Cooley ja John W. Tukey: An algorithm for the machine calculation of complex Fourier series, 1965, englanniksi
- Alijah Ahmed: FFT Calculator, 2013, englanniksi