Yritän toteuttaa FFT: n ymmärtääksesi sen toiminnan. I ”m käyttäen satunnaista äänitiedostoa (joten i ei voi säätää signaalin kokoa), näytteenottotaajuudella 44,1 Khz. I ”m tätä kirjastoa käyttämällä

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

Tavoitteena on soveltaa tätä kaavaa hae taajuus: F = n * Fs / N

Kanssa n roskakorien määrä. Fs näytteenottotaajuus ja N FFT: n koko

1) Fft: n oletetaan olevan pituus, useimmat niistä käyttävät 2 radiksin tehoa. Mutta mistä tiedän FFT: n pituuden, jos käytän sitä koko dataryhmään? onko se kyseisen taulukon koko?

2) En ymmärrä roskakoria, miten se käsitellään? Tiedän, että FFT toimii tietojupien kanssa, mutta jos annan täyden joukon tietoja, miten roskakorit ”luodaan”.

Kommentit

  • Näihin kysymyksiin voidaan vastata vain pienellä Internet-haulla ja lukemisella. Suosittelen myös, että aloitat koodauksen matemaattisesti rakenteilla signaalit, joiden kesto on melko lyhyt, ja käytä FFT-ohjelmistojasi niihin ja tutki tuloksia.
  • En oikeastaan etsin paljon, mutta en voinut ' ymmärtää, mutta ehkä i ' m aivan liian hitaasti. Kiitos huolestasi.
  • Yritä etsiä " Diskreetti Fourier-muunnos " tai " miten DFT toimii " miten FFT toimii ". Nopea Fourier-muunnos on diskreetin Fourier-muunnoksen laskennallinen pikakuvake muodossa. Jälkimmäisen haun avulla löydät todennäköisemmin tietoja laskennan tehokkuudesta kuin taustalla olevasta prosessista. En ' näe, kuinka voit odottaa jonkun selittävän perusteet paremmin nopeassa foorumin vastauksessa kuin joukko verkkosivustoja, jotka ovat omistautuneet juuri siihen. Blogini neljän ensimmäisen artikkelin pitäisi olla hyödyllinen myös sinulle. Aloita sanalla dsprelated.com/showarticle/754.php .

Vastaa

Kysymys 1

Jos käytät sitä koko matriisin pituudella, FFT: n pituus olisi matriisin pituus. Mutta FFT on tehokkaampi, jos pituus on kahden teho, joten on yleistä, että 0 ”: n sävyt lisätään signaalin päähän, kunnes sen pituus on 2.

Liian yksinkertainen esimerkki …

x = [3.4, 2.56, 1.3]

x pituus on 3, seuraava voima 2: sta 3: n jälkeen on 4, joten muutamme x -arvoksi

x = [3.4, 2.56, 1.3, 0]

ja käytä FFT: tä, jonka pituus on 4.

Toinen iso MUTTA! Jos signaali on pitkä, se tulee erittäin tehottomaksi tehdä koko asia kerralla. Et halua yrittää tehdä FFT-tiedostoa edes lyhyen kappaleen pituiselle äänitiedostolle. Tällöin hajotamme signaalin kohtuullisen kokoisiksi paloiksi, suoritamme FFT kullakin ja keskiarvo tulokset.

Kertoimet ovat hyvät siitä, että mitä todella haluat tehdä tietojesi kanssa, ei ole vain tavallinen FFT, vaan pikemminkin edellä kuvailemani keskiarvoprosessi. Google Bartlett ja Welch menetelmiä lisää d etails.

Kysymys 2

En ole 100% varma siitä, mistä kysyt täällä. Tulkitsen sen haluamallasi tavalla, kuinka taajuussäiliöiden leveys määritetään ja suoritetaan sen mukana.

Kunkin taajuusalueen leveys määräytyy yksinomaan signaalin näytteenottotaajuuden perusteella ja FFT: n pituus. Kunkin lokeron leveys on näytteenottotaajuus jaettuna FFT: n näytteiden määrällä.

df = fs / N

Taajuusalustat alkavat -fs/2 ja nousevat kohtaan fs/2. Tämä tarkoittaa, että jos näytteet otetaan 100 Hz: llä 100 näytteelle, taajuusalustat ovat leveitä 1 Hz. Jos otat 200 näytettä, sinulla on nyt 2x niin monta taajuusalustaa ja niiden leveys on 1 / 2Hz kukin.

Kommentit

  • Paljon kiitoksia, se oli kaikki mitä en ymmärtänyt ' en ymmärtänyt.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *