Megpróbálok egy FFT-t megvalósítani, hogy megértsem a működését. Véletlenszerű hangfájl segítségével (tehát i “nem szabályozható a jel mérete), 44,1Khz mintavételezési frekvenciával. I” m ezt a könyvtárat használom
https://www.nayuki.io/res/free-small-fft-in-multiple-languages/Fft.java
Ennek a képletnek a célja az, hogy megkapja a frekvenciát: F = n * Fs / N
n kukák száma. Fs mintavételi frekvencia és N az FFT mérete
1) Állítólag egy Fft hosszúságú, legtöbbjük 2 radix teljesítményt használ. De honnan tudhatom az FFT hosszát, ha egy teljes adattömbre alkalmazom? akkora a tömb?
2) Nem értem a kukákat, hogyan dolgozzák fel? Tudom, hogy az FFT sok darab adattal működik, de ha teljes adattömböt adok meg, akkor hogyan jönnek létre a tárolók.
Megjegyzések
- Ezekre a kérdésekre csak egy kis internetes kereséssel és olvasással lehet választ adni. Azt is javasoljuk, hogy a kódolást matematikailag felépített módon kezdje meg meglehetősen rövid időtartamú jeleket, és alkalmazza az FFT szoftverét ezekre, és megvizsgálja az eredményeket.
- Valójában sokat keresgéltem, de nem tudtam ' megérteni, de talán i ' m túl lassú. Köszönöm az aggodalmat.
- Próbálja meg a " Diszkrét Fourier-transzformációt " vagy " hogyan működik egy DFT " a hogyan működik az FFT ". A gyors Fourier-transzformáció egy diszkrét Fourier-transzformáció számítási parancsikonja forma. Ez utóbbi kereséssel nagyobb valószínűséggel talál információt a számítási hatékonyságról, mint az alapul szolgáló folyamatról. Nem ' nem látom, hogyan várhatnánk el, hogy valaki jobban megmagyarázza az alapokat egy gyors fórumválaszban, mint egy csomó weboldal, amely erre hivatott. A blogom első négy cikke neked is hasznos lehet. Kezdje a következővel: dsprelated.com/showarticle/754.php .
Válasz
1. kérdés
Ha a tömb teljes hosszában alkalmazza, akkor az FFT hossza a tömb hossza lesz. De, az FFT hatékonyabb, ha a hossz kettő hatványa, ezért általában 0 “-okat töltünk a jel végére, amíg a hossza 2-es hatvány.
Túl egyszerű példa …
x = [3.4, 2.56, 1.3]
x
hossza 3, a következő hatvány a 2-ből a 3 után a 4, ezért a x
értéket
x = [3.4, 2.56, 1.3, 0]
és alkalmazzon egy 4-es hosszúságú FFT-t.
Egy másik nagy DE! Ha a jel hosszú, akkor rendkívül hatékonnyá válik az egész egyszerre történő elvégzéséhez. Nem akarna megpróbálni FFT-t csinálni egy rövid fájl hosszú audio fájlján is. Ebben az esetben a jelet ésszerű méretű darabokra bontjuk, Mindegyik FFT, és átlagolja az eredményeket.
Az esély jó, hogy az, amit valójában az adataival akarsz csinálni, nem csak egy szokásos FFT, hanem az általam fentebb leírt átlagolási folyamat. Google Bartlett és Welch módszerek további d etails.
2. kérdés
Nem vagyok 100% -ig biztos abban, hogy mit kérdezel itt. Úgy fogom értelmezni, hogy szeretné tudni, hogyan határozzák meg és hogyan futtatják a frekvenciatartályok szélességét.
Az egyes frekvenciatartályok szélességét kizárólag a jel mintavételi sebessége határozza meg, és az FFT hossza. Az egyes tartályok szélessége a mintavételi frekvencia elosztva az FFT-ben lévő minták számával.
df = fs / N
A frekvenciatartályok a -fs/2
ponttól indulnak, és felfelé haladnak az fs/2
értékre. Ez azt jelenti, hogy ha 100 mintán 100 mintán veszünk mintát, akkor a frekvenciatartályok szélesek 1Hz. Ha 200 mintát vesz, akkor most kétszer annyi frekvencia tárolóval rendelkezik, szélességük pedig egyenként 2 / 2Hz.
Megjegyzések
- Nagyon köszönöm, ez minden, amit nem értettem ' nem értettem.