Ik probeer een programma te maken dat een opgenomen geluidsgolf weergeeft op het scherm, zowel als golf en als fft (Fast Fourier Transform).
Een fft laat per frequentie de intensiteit van een signaal zien.
Nu ben ik al zover dat ik een geluid kan opnemen en weergeven als golf, maar nu moet ik een fft maken.
Via google heb ik een hele goede site gevonden:
http://www.relisoft.com/Science/Physics/fft.html
Maar hierbij zit zo veel wiskunde dat ik het bos niet meer door de bomen kan zien.
Zo staat erbij bij de c++ code nergens waar ik het invoersignaal moet meegeven / specificeren.
Ook heb ik al veel uur verkloot aan de fft source-code die je kan downloaden, want dit lukt gewoon niet zoals ik het wil.
Het enige wat ik moet hebben is een soort van functie waarbij ik een array mee geef met samples, (en een evt. lengte van die sample-array), zodat de functie een fft-array kan produceren.
Dus zo'n soort header zou die functie kunnen hebben:
void fftTransform(short *input, int n_samples, short *output);
waarbij input mijn sample-array is (dus van ongeveer -32260 tot 32260: dus 16-bits unsigned), n_samples is het aantal samples (bij fft moet het een macht van 2 zijn dacht ik), en output gaat de fft-waarden bevatten.
Begrijpt iemand fft dusdanig zodat diegene mij kan helpen.
Een fft laat per frequentie de intensiteit van een signaal zien.
Nu ben ik al zover dat ik een geluid kan opnemen en weergeven als golf, maar nu moet ik een fft maken.
Via google heb ik een hele goede site gevonden:
http://www.relisoft.com/Science/Physics/fft.html
Maar hierbij zit zo veel wiskunde dat ik het bos niet meer door de bomen kan zien.
Zo staat erbij bij de c++ code nergens waar ik het invoersignaal moet meegeven / specificeren.
Ook heb ik al veel uur verkloot aan de fft source-code die je kan downloaden, want dit lukt gewoon niet zoals ik het wil.
Het enige wat ik moet hebben is een soort van functie waarbij ik een array mee geef met samples, (en een evt. lengte van die sample-array), zodat de functie een fft-array kan produceren.
Dus zo'n soort header zou die functie kunnen hebben:
void fftTransform(short *input, int n_samples, short *output);
waarbij input mijn sample-array is (dus van ongeveer -32260 tot 32260: dus 16-bits unsigned), n_samples is het aantal samples (bij fft moet het een macht van 2 zijn dacht ik), en output gaat de fft-waarden bevatten.
Begrijpt iemand fft dusdanig zodat diegene mij kan helpen.


