Snažím se implementovat FFT, abych pochopil, jak to funguje. Používám náhodný zvukový soubor (takže i „Nelze ovládat velikost signálu) se vzorkovací frekvencí 44,1 kHz. Tuto knihovnu používám

https://www.nayuki.io/res/free-small-fft-in-multiple-languages/Fft.java

Cílem je použít tento vzorec na získejte frekvenci: F = n * Fs / N

S n počet přihrádek. Fs vzorkovací frekvence a N velikost FFT

1) Fft má mít délku, většina z nich používá sílu 2 radixů. Jak ale mohu zjistit délku FFT, pokud ji použiji na celé pole dat? je to velikost toho pole?

2) Nerozumím košům, jak se zpracovávají? Vím, že FFT pracuje s kousky dat, ale pokud poskytnu celou řadu dat, jak jsou koše „vytvořeny“.

Komentáře

  • Na tyto otázky lze odpovědět jen trochou internetového vyhledávání a čtení. Také vám doporučuji začít s kódováním pomocí matematicky zkonstruovaných signály poměrně krátké doby a na tyto použijte svůj software FFT a prozkoumejte výsledky.
  • Ve skutečnosti jsem hodně hledal, ale nemohl jsem ' rozumět, ale možná i ' jsem příliš pomalý. děkuji za váš zájem.
  • Zkuste hledat " Diskrétní Fourierova transformace " nebo " jak funguje DFT " místo " jak funguje FFT ". Rychlá Fourierova transformace je výpočetní zkratka diskrétního Fourierova transu formulář. U druhého vyhledávání pravděpodobněji najdete informace o výpočetní efektivnosti než o základním procesu. Nechápu ', jak můžete očekávat, že někdo v rychlé odpovědi na fóru vysvětlí základy lépe než spousta webových stránek věnovaných právě tomu. První čtyři články v mém blogu by měly být užitečné i pro vás. Začněte dsprelated.com/showarticle/754.php .

Odpovědět

Otázka 1

Pokud ji použijete na celou délku pole, bude délka FFT představovat délku pole. FFT je ale efektivnější, pokud je délka mocninou dvou, takže je běžné vložit 0 na konec signálu, dokud jeho délka není mocnina 2.

Příliš jednoduchý příklad …

x = [3.4, 2.56, 1.3]

x má délku 3, další moc ze 2 po 3 je 4, takže změníme x na

x = [3.4, 2.56, 1.3, 0]

a použijte FFT o délce 4.

Další velký ALE! Pokud je váš signál dlouhý, je stane se extrémně neefektivní udělat celou věc najednou. Nechtěli byste se pokusit udělat FFT na zvukovém souboru o délce i krátké skladby. V takovém případě rozdělíme signál na kousky přiměřené velikosti, provedeme FFT u každého a průměr výsledků.

Kurzy jsou dobré, že to, co vlastně chcete s vašimi daty dělat, není jen standardní FFT, ale spíše průměrovací proces, který jsem popsal výše. Google Bartlett a Welch metody pro více d etails.

Otázka 2

Nejsem si 100% jistý, na co se zde ptáte. Budu to interpretovat tak, jak chcete, abyste věděli, jak se určuje šířka kmitočtových přihrádek a jak s tím bude běžet.

Šířka každé frekvenční přihrádky je určena pouze rychlostí, při které byl signál vzorkován délka FFT. Šířka každého koše je vzorkovací frekvence děleno počtem vzorků ve vašem FFT.

df = fs / N

Frekvenční přihrádky začínají od -fs/2 a přecházejí do fs/2. To znamená, že pokud budou vzorky vzorkovány při 100 Hz pro 100 vzorků, budou vaše frekvenční přihrádky šířky 1 Hz. Pokud odeberete 200 vzorků, budete mít nyní dvakrát tolik frekvenčních košů a jejich šířka bude každá 1/2 Hz.

Komentáře

  • Moc děkuji, bylo to všechno, čemu jsem ' nerozuměl.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *