Per prima cosa chiariamo cos'è la trasformazione veloce di Fourier e perché vuoi usarla. La matematica riguarda le frequenze. La trasformata di Fourier è un metodo per individuare onde più piccole in un'onda complessa. Che sembrava complesso; Quando ascolti la musica ascolti molte note diverse dal cantante, strumenti e così via. Come umani possiamo spesso sentire la chitarra da sola, ma proviamo a individuarla con la tecnologia in una registrazione e ti imbatti nei guai. La tecnologia moderna può farlo, grazie alle diverse incarnazioni delle equazioni di base di Fourier che sono state sviluppate nel corso degli anni. Gli usi moderni delle serie di Fourier sono le scansioni di compressione per immagini e video, GPS e MRI. Tutto ciò fa un'approssimazione della fonte e utilizza la serie Fourier per salvare la memoria e ottenere risultati più veloci.
Il matematico Jean-Baptiste Joseph Fourier stava effettivamente cercando di risolvere l'equazione del calore, per consentire di calcolare il modo in cui il calore si propaga in materia solida. Quello che gli è venuto in mente è stato molto più utile di quello, anche se i suoi metodi sono stati successivamente migliorati a una versione più formale. Le equazioni sono ora utilizzate in una vasta gamma di campi.
Per individuare una frequenza specifica in un segnale complesso è possibile utilizzare alcuni calcoli, le trasformazioni di Fourier veloci. La base matematica per questo richiede un po 'di pratica. Khan Academy è un bel posto per imparare la matematica.
Quando è necessario analizzare eventuali onde, è possibile utilizzare le funzioni sinusoidali per approssimare l'onda totale e ottenere tutti i segnali separati dall'onda mista. O viceversa, puoi fare un'onda complessa da diverse onde sinusoidali. Questa è l'idea di base dietro la matematica.
Per capire meglio le tue trasformazioni di Fourier, una buona pratica è scriverle da solo. In Scilab hai un semplice linguaggio di programmazione progettato con enfasi sulla matematica.
Le diverse attività di cui avrai bisogno di trasformazioni di Fourier iniziano con la ricerca dei coefficienti di una trasformazione. Il motivo è che questo è ciò che viene usato per la compressione delle immagini e molti altri processi.
Quando impari le basi della serie, la prima cosa che usa sono i coefficienti. Le equazioni sono così:
Il codice per risolverli è abbastanza semplice, inizia con una funzione. Questa funzione implementa la trasformata di Fourier in piccoli pezzi.
Per definire una funzione si utilizza l'ovvia costrutto "funzione". Di seguito è riportata una serie di Fourier per un'onda quadra:
Per rendere l'onda ancora più quadrata, dopo tutto è un'approssimazione, è necessario continuare ad aumentare il numero di termini. Quando stai cercando di ricreare uno schema, dì un cartone animato, usi la trasformazione di Fourier in un modo molto simile. Devi solo considerare il periodo come infinito.
Semplice diritto? Bene, non senza la conoscenza matematica di base. Prova alcuni esempi da soli, usando Scilab.
Questo esempio mostra la combinazione di segnale più semplice possibile; Due segnali di frequenza diversa.
// Scegli una dimensione del campioneUsa l'esempio sopra per praticare come funziona la trasformazione. Assicurati di cambiarlo per filtrare in modi diversi.
Un consiglio è di utilizzare la console Scilab per vedere cosa contengono le variabili in ogni fase del programma, in questo modo puoi anche vedere che "f" ha un contenuto immaginario. Prova a cambiare äfä in un altro modo per ottenere un risultato più corretto.
Nell'industria, l'uso più comune delle trasformazioni di Fourier è per l'analisi del segnale. Per filtrare le frequenze da un segnale rumoroso, è necessario iniziare con la creazione o l'importazione di un segnale. Il seguente frammento di codice crea un segnale misto di due frequenze, 50 e 70 Hz. Nel codice puoi anche vedere l'uso di "Grand", questa è la chiamata Scilab a Random. Questi valori casuali vengono aggiunti per rendere il segnale un po 'più rumoroso, più vicino alla realtà.
Sample_rate = 1000;Qui, è tempo di provare le trasformazioni più semplici di Fourier, rendere 'y' la trasformata di Fourier di S.
y = fft (s);fft
Se traccia "y" in funzione di "t", ottieni un modello un po 'simmetrico che va da 0 a 0.6. I due picchi sono ciò che stiamo cercando, ma ora li stiamo vedendo nel dominio del tempo. Quello che è realmente accaduto è stato che il risultato conteneva ancora i valori immaginari. Per trovare le due frequenze nel dominio della frequenza, abbiamo bisogno di un po 'più di OperationSto Trova solo i numeri reali. E poi prendi il valore assoluto dei risultati. Il grafico indica chiaramente le frequenze originali.
Ecco il codice:
// s è reale, quindi la risposta FFT è coniugata simmetrica e manteniamo solo il primoQuesto è l'uso più comune della trasformazione di Fourier. Utilizzando questo sistema è possibile trovare qualsiasi frequenza in un segnale complesso e rumoroso. Le equazioni sono ampiamente utilizzate in molti settori oggi.
La funzione FFT2 di Scilab è la versione bidimensionale della trasformazione veloce di Fourier.
Un ottimo modo per esercitarsi è scegliere i toni DTMF, creare un pulsante Premere e far capire a Scilab il tasto corretto.
Le demo in Scilab stesso contiene una vetrina di file audio, studiala.
Se vuoi scavare più a fondo, ecco alcuni link per leggere ulteriormente.
Letteratura avanzata:
https: // cnx.org/contenuto/ulxtqbn7@15/implement-fffts-in-practice#uid8
Wolfram ..
http: // dimostrazioni.Wolfram.com/complexandrealplanesofdisccretefouriertransforms/
Implementazione in altre lingue:
https: // www.Nayuki.IO/PAGINE/CHE-TO-IMPLEMENT-THE-Discrete-Fourier-Transform
Per ottenere la giusta sensazione per l'argomento:
https: // meglio spiegato.com/articoli/an-interattivo-guide-to-the-fourier-transform/