Domanda

Sono un principiante con i concetti FFT e quindi quello che capisco è che se inserisco 1024 segnali, otterrò 513 bin che vanno da 0 Hz a 22050 Hz (nel caso di una frequenza di campionamento di 44100 Hz). Utilizzando KISS FFT in Cinder, la funzione getBinSize restituisce i 513 valori previsti per un ingresso di 1024 segnali. Quello che non capisco è perché compaiono picchi duplicati. Eseguendo un campione audio di prova che passa attraverso frequenze (in ordine) da 20Hz a 22000Hz, vedo due picchi per tutto il tempo. Ha un aspetto simile a:

<< strong> __ _ __ _ __ | __ _ __

Durante la riproduzione dell'audio, i picchi sembrano spostarsi l'uno verso l'altro, quindi il secondo picco sembra davvero essere un duplicato speculare del primo. Ogni esempio che ho passato sembra andare avanti e tracciare tutti i valori 513 e non sembrano avere questo problema di mirroring. Non sono sicuro di cosa mi manchi.

È stato utile?

Soluzione

Ok, dopo aver letto su questo ho trovato la soluzione.Il motivo del mirroring è perché utilizzo una FFT sui numeri reali (FFT reale).La normale FFT come tutti sanno funziona su numeri complessi.Quindi la parte immaginaria è "impostata" a 0 nella FFT reale, risultando in un mirroring intorno al centro (o tecnicamente parlando il mirroring è intorno a 0 e N / 2).

Ecco una discussione dettagliata: http://www.edaboard.com/thread144315.html

E leggi le pagine 238 - 242 di questo libro.È fantastico, quindi compralo.Penso che ci sia una versione pdf gratuita sul sito web dell'autore: http://www.dspguide.com/

Altri suggerimenti

Probabilmente stai tracciando la grandezza di tutti i 1024 contenitori di risultati FFT di una lunghezza di 1024 FFT, ma la metà superiore è solo un'immagine speculare della metà inferiore (poiché l'input solo reale a una fft complessa non fornisce abbastanza gradidi libertà per rendere unica la metà superiore).

I picchi si sposteranno l'uno verso l'altro quando si specchiano l'uno con l'altro al centro.

Un'altra possibilità è che la tua FFT fosse in qualche modo solo di lunghezza 512.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top