PDA

View Full Version : Trasformata di Fourier discreta


Nukles
23-05-2005, 15:43
Ragazzi non capisco nulla di questo argomento... mi sapete indicare qualche sito, appunti ecc ecc che mi permettano di capirlo meglio?

Poi contate anche che la mia mente è già al mare... :D :D

kaioh
23-05-2005, 15:53
tiè, il primo link che mi trova google
http://astronomy.swin.edu.au/~pbourke/analysis/dft/

altri link
http://www.google.it/search?hl=it&q=discrete+fourier+transform&spell=1

r_howie
23-05-2005, 16:42
Vedi anche Wikipedia (http://it.wikipedia.org/wiki/Trasformata_di_Fourier_discreta) e i lucidi di questo (http://net.infocom.uniroma1.it/corsi/telecomunicazioni/tlc/tlc.htm) corso.

Aggiungo un po' di chiacchiere sperando di non confondere le idee.

La DFT è importante perché è calcolabile tramite un algoritmo facile ed efficiente (Fast Fourier Transform). In generale, calcolare una DFT significa calcolare N coefficienti X[k] (con k = 0,...,N-1), il che ha complessità O(N^2). Se però N è una potenza di 2, allora ci riduciamo a dover calcolare una FFT, con complessità soltanto N*log2(N). Questo ha un impatto notevole nei "grossi" calcoli numerici: per esempio se N = 256, una FFT ci costa solo 2k operazioni contro le 64k della DFT vera e propria.

Non solo: se il segnale x[n] da trasformare -oltre a essere necessariamente finito- è pure a valori reali, allora i coefficienti della DFT da calcolare godono di una simmetria coniugata: X[N-k] = X[k]* dove l'asterisco indica il complesso coniugato.

Esercizio di esempio: calcolare la DFT di lunghezza N = 8 del segnale discreto x[n] che vale 1 per n = 0 o 1.

Per prima cosa operiamo un "zero padding" al segnale x[n], dicendo che esso vale 0 per 2 <= n <= 7 (in questo modo N diventa una potenza di 2, ci conviene). Poi applichiamo la definizione di DFT con la sua sommatoria e il suo esponenziale complesso, che qui non scrivo perché non dubito che tu la studierai benissimo e avrai fior di libri davanti. :D Ottieniamo:

X[k] = (1/8) * (1 + exp(-j*2*pi*(k/8))) = (1/8) * (1 + cos(k*pi/4) - j*sin(k*pi/4))

X[0] = (1/8) * (1 + 1 - 0) = 1/4

X[1] = (1/8) * (1 + exp(-j*pi/4)) = (1/8) * (1 + 1/sqrt(2) - j/sqrt(2))

X[2] = (1/8) * (1 + exp(-j*pi/2)) = (1/8) * (1 - j)

X[3] = (1/8) * (1 + exp(-j*3*pi/4)) = (1/8) * (1 - 1/sqrt(2) - j/sqrt(2))

X[4] = (1/8) * (1 + exp(-j*pi)) = (1/8) * (1 - 1) = 0

Gli altri coefficienti ce li abbiamo gratis in virtù della simmetria coniugata:

X[5] = X[8-5]* = X[3]*

X[6] = X[2]*

X[7] = X[1]*

Graficando il modulo quadro |X[k]|^2 in funzione di k, il segnale risulta essere passa-basso.

Nukles
23-05-2005, 17:51
uao... grazie mille per le dritte! Cercherò di capirle bene... anche perchè suppongo servano a Teoria Dei Segnali... vero?

Ma, in parole povere, che cosa è la Trasformata Di Fourier Discreta? Io nn riesco a capirla bene perchè proprio non comprendo il concetto...

All'università ce l'hanno propinata dopo due settimane in cui abbiamo parlato solo di equazioni differenziali e di teoremi sulle eq diff... ora ci hanno propinato questa trasformata in matematica dicendo che era una cosa difficile da capire anche per i matematici... e infatti nn ci ho capito nulla!

Mi potreste spiegare in parole poverissime e spicce che cosa è? Di cosa si tratta? Ho capito che è una funzione... ma associa cosa a che cosa?

Thanx :D

r_howie
23-05-2005, 19:49
uao... grazie mille per le dritte! Cercherò di capirle bene... anche perchè suppongo servano a Teoria Dei Segnali... vero?

Prego. Io parlavo di teoria dei segnali. Tu che esame stai studiando, e per quale corso di laurea?

Ma, in parole povere, che cosa è la Trasformata Di Fourier Discreta? Io nn riesco a capirla bene perchè proprio non comprendo il concetto...

Ho capito che è una funzione... ma associa cosa a che cosa?

La tua domanda è equivalente a chiedere a cosa serve la derivata, oppure l'elevamento a potenza. Per la stretta sopravvivenza, a niente; per le scienze, invece, sono tutti strumenti di calcolo quantitativi e quasi sempre necessari per studiare cose che altrimenti non si potrebbero studiare.

Comunque, hai letto la prima riga del link di Wikipedia? E per leggere intendo fermarsi a riflettere sul significato delle parole, quando con gli occhi scorri i caratteri e mentalmente senti i suoni... :D Mi sembra abbastanza chiaro.

Data una successione numerica discreta che io ho chiamato x[n], quindi per esempio un segnale discreto oppure uno continuo che è stato quantizzato, la DFT rappresenta o se preferisci trasporta tale successione in un altro spazio. Sicuramente un libro lo dice in modo più elegante e convincente di me.

Nukles
23-05-2005, 20:08
Prego. Io parlavo di teoria dei segnali. Tu che esame stai studiando, e per quale corso di laurea?

La tua domanda è equivalente a chiedere a cosa serve la derivata, oppure l'elevamento a potenza. Per la stretta sopravvivenza, a niente; per le scienze, invece, sono tutti strumenti di calcolo quantitativi e quasi sempre necessari per studiare cose che altrimenti non si potrebbero studiare.

Comunque, hai letto la prima riga del link di Wikipedia? E per leggere intendo fermarsi a riflettere sul significato delle parole, quando con gli occhi scorri i caratteri e mentalmente senti i suoni... :D Mi sembra abbastanza chiaro.

Data una successione numerica discreta che io ho chiamato x[n], quindi per esempio un segnale discreto oppure uno continuo che è stato quantizzato, la DFT rappresenta o se preferisci trasporta tale successione in un altro spazio. Sicuramente un libro lo dice in modo più elegante e convincente di me.

Ho letto la prima parte di Wikipedia e mi pare di aver capito che la trasformata di Fourier non è altro che una funzione che associa a una serie di n numeri appartenenti allo spazio vettoriale C con n, associa una nuova serie sempre in C con n definita attraverso la formula

http://it.wikipedia.org/math/ea89470764c39f8a56459eb0ba7681ee.png

Lo stiamo facendo in Calcolo Avanzato, dunque in matematica... calcola che il professore l'ha fatto in due lezioni da 1 ora e mezza, parlando anche di convoluzione e robe varie...

...ma io non ci ho capito nulla principalmente perchè fino al giorno prima s'era parlato di equazioni differenziali con il docente titolare, che aveva appunto lasciato all'assistente un certo "nuovo argomento", appunto la trasformata di Fourier discreta... conta anche le lacune dovute ai docenti stupidi di Calcolo I e II su cui è meglio non proferir parola (altrimenti finiremmo in improperi), capirai che passare all'algebra lineare dopo il calcolo differenziali mi ha fatto sentire un po' spaesato...

r_howie
23-05-2005, 21:29
Ho letto la prima parte di Wikipedia e mi pare di aver capito che la trasformata di Fourier non è altro che una funzione che associa a una serie di n numeri appartenenti allo spazio vettoriale C con n, associa una nuova serie sempre in C con n definita attraverso la formula

http://it.wikipedia.org/math/ea89470764c39f8a56459eb0ba7681ee.png

Lo stiamo facendo in Calcolo Avanzato, dunque in matematica... calcola che il professore l'ha fatto in due lezioni da 1 ora e mezza, parlando anche di convoluzione e robe varie...

OK (facoltà di matematica, se ho capito bene?). Io ho avuto la fortuna di avere una docente di teoria dei segnali molto chiara, perciò studiare la materia non mi è costato fatica.

Tu chiami la DFT una funzione, il che è giustissimo. Io preferisco chiamarla operatore, ma le due cose non sono in contraddizione... semplicemente il secondo è un caso particolare della prima.

In passato, funzione aveva un significato più ristretto di oggi e indicava un'applicazione R->R, C->R, R^n ->R o quant'altro. Invece oggi la parola funzione include tutto: una qualsiasi applicazione da un insieme a un insieme, il che è un concetto così ampio e generico che di più non si può.

Questo perché con la nascita degli spazi di funzioni, sono "nati" i funzionali (applicazioni da uno spazio di funzioni a un numero. Esempio: l'integrale definito da a a b di una funzione) e gli operatori (applicazioni da uno spazio di funzioni a un altro spazio di funzioni, magari anche lo stesso. Esempio: l'operazione di derivata oppure la stessa trasformata di Fourier).

Nukles
23-05-2005, 22:07
No, niente Matematica! Vade retro!

Ingegneria Elettronica! :D :D

Matematica è troppo teorica... preferisco applicarle le cose, per questo forse la trasformata ancora non la digerisco: non ho ancora trovato applicazioni...

Banus
23-05-2005, 22:19
Ingegneria Elettronica! :D :D
Allora le trasformate le devi conoscere a memoria :D

La trasformata di Fourier esprime la funzione in un altro modo (usa un'altra base per rappresentarla, in termini di spazi vettoriali). Invece di dire quanto vale punto per punto, la si immagina come la somma di infiniti termini oscillanti (prova a sviluppare l'esponenziale dell'antitrasformata ;) ). Se la funzione è discreta (f(n)) e limitata allora la formula della trasformata di Fourier si riduce alla formula della DFT (giocando sulle frequenze di campionamento, ci vogliono un po' di calcoli per spiegarlo).
In gergo si dice che la trasformata di Fourier porta la funzione dal dominio del tempo al dominio della frequenza. E' utile per capire come le frequenze di un certo segnale siano modificate da un determinato sistema dinamico (in gergo filtro). I filtri degli apparecchi elettronici sono progettati con l'aiuto della trasformata di Fourier (anche se con l'avvento del digitale ci sono metodi più sofisticati :D).
Inoltre una variante della DFT, chiamata DCT, è usata negli algoritmi JPEG, MPEG, DIVX e in molti altri formati lossy, sfruttando il fatto che l'occhio umano è meno sensibile alle alte frequenze (= piccoli dettagli) dell'immagine.

sgksgk
23-05-2005, 23:45
Se però N è una potenza di 2, allora ci riduciamo a dover calcolare una FFT, con complessità soltanto N*log2(N). Questo ha un impatto notevole nei "grossi" calcoli numerici: per esempio se N = 256, una FFT ci costa solo 2k operazioni contro le 64k della DFT vera e propria.


Una pignoleria,è solo una precisazione. :p
Dipende comunque dall'algoritmo uttilizzato nello specifico,dietro al nome FFT.
Nel caso di FFT Radice 2 nella frequenza oppure FFT Radice 2 nel tempo il "costo" è di (N/2)*log2(N) moltiplicazioni complesse.
Se tuttavia togliamo le moltiplicazioni al primo stadio (in quanto si tratta di moltiplicazioni per 1) oppure all'ultimo stadio nel caso di FFT Radice 2 nel tempo,allora le moltiplicazioni complesse diventano (N/2)*log(N/2).
Tuttavia implementare il tutto in un programma significherebbe utilizzare istruzioni di selezione che sarebbero comunque onerose.
Quindi si fa quasi sempre riferimento a (N/2)*log2(N) per semplicità.
Quindi nel caso di N=256 verrebbe 1024 moltiplicazioni complesse.
Per calcolare comunque la complessità ancora più in dettaglio uno potrebbe considerare anche le somme complesse e poi riportarsi in moltiplicazioni reali e somme reali (che è quello che si fa,ad esempio per riportarsi da moltiplicazioni complesse a quelle reali si moltiplica per 4 : difatti (a+ib)(c+id) sono 4 moltiplicazioni reali dove a,b,c,d appartengono ad R,quindi nel caso di FFT Radice 2 nella frequenza o nel tempo verrebbero 2N*log2(N) moltiplicazioni reali).

Esistono comunque altri algoritmi ad esempio FFT Radice 4 (il vincolo è che N deve essere una potenza di 4).

r_howie
24-05-2005, 15:20
Grazie per la precisazione, sgksgk! Non sapevo.

Nukles
24-05-2005, 16:03
Allora le trasformate le devi conoscere a memoria :D



Parlare di matematica senza che intervenga Banus (mister "Analisi III così per sport anche se non serviva"), sarebbe come aspettarsi che qua su non si parli di amore senza che intervengano Nicky o Crissina... :D :D

Oggi, a mente più fresca di ieri, riesco a comprenderla meglio, anche se mi ci vorrà ancora un po' per capirla, dato che mi devo concentrare oggi sui circuiti e su altre cose di Elettromagnetismo...

...per cambiare proprio argomento, sto vivendo una crisi... anche se ho passato 8 esami su 9 (l'ultimo che non ho passato non lo prendete in considerazione...) e ho una media del 25 (anche se un 21 è da non prendere in considerazione...), che non è poi così male, sono in crisi perchè mi prende la solita crisi d'identità dello studente... "Ho fatto la scelta giusta?" ecc ecc, solo perchè magari di primo impatto non si capisce bene un argomento... oggi questa crisi forse c'è di meno, e le cose le capisco un po' meglio...

...vabbè va, se avete da aggiungere altro fate pure! :D

Nukles
24-05-2005, 16:04
-

Banus
24-05-2005, 16:15
Parlare di matematica senza che intervenga Banus (mister "Analisi III così per sport anche se non serviva"), sarebbe come aspettarsi che qua su non si parli di amore senza che intervengano Nicky o Crissina... :D :D
:asd: mi sono già fatto questa fama? :D
Meglio le trasformate comunque che Eclipse e Java, è tutto il pomeriggio che mi sto rompendo la testa :p

Goldrake_xyz
24-05-2005, 20:25
Ragazzi non capisco nulla di questo argomento... mi sapete indicare qualche sito, appunti ecc ecc che mi permettano di capirlo meglio?

Poi contate anche che la mia mente è già al mare... :D :D

anche questo :
http://mathworld.wolfram.com/DiscreteFourierTransform.html

FFT, ecc. ecc.

Tchuss_:)

Goldrake_xyz
24-05-2005, 21:00
...ma io non ci ho capito nulla principalmente perchè fino al giorno prima s'era parlato di equazioni differenziali con il docente titolare, che aveva appunto lasciato all'assistente un certo "nuovo argomento", appunto la trasformata di Fourier discreta... conta anche le lacune dovute ai docenti stupidi di Calcolo I e II su cui è meglio non proferir parola (altrimenti finiremmo in improperi), capirai che passare all'algebra lineare dopo il calcolo differenziali mi ha fatto sentire un po' spaesato...

Ok, ti dico alcuni segreti, ma non dirli a nessuno ! ;)

Per prendere quasi tutti 30 + o - lode,
Il trucco è studiare la lezione prima che il professore la spiega...
Oppure avere la fortuna di essere figli o parenti di prof. che insegnano all' università ... :fiufiu:

Piccola guida :asd:
I prof. di ingegneria e materie affini si possono dividere in queste categorie :
A) Quelli che devono far lezione e non nè hanno voglia, spiegano
l'argomento saltando molti passaggi e copiano dagli appunti.
Risultato : Chi l'ha studiata prima forse capirà qualcosa, gli altri si attaccano ...
B) Gli improvvisatori, che avendo un 'autostima di sè molto grande,
iniziano a spiegare e (purtroppo) a fare dimostrazioni sul momento.
Risultato : impasticciano dimostrazioni iperboliche che talvolta
non capiscono neanche loro..
C) Quelli che hanno la lezione già preparata e vanno avanti in stile
mitragliatore a raffica libera.
Risultato : hai un pacco di appunti, la mano che ti fà male, e non hai capito nulla !

Good Luck ! :D

misterx
15-09-2007, 19:27
Vedi anche Wikipedia (http://it.wikipedia.org/wiki/Trasformata_di_Fourier_discreta) e i lucidi di questo (http://net.infocom.uniroma1.it/corsi/telecomunicazioni/tlc/tlc.htm) corso.

Aggiungo un po' di chiacchiere sperando di non confondere le idee.

La DFT è importante perché è calcolabile tramite un algoritmo facile ed efficiente (Fast Fourier Transform). In generale, calcolare una DFT significa calcolare N coefficienti X[k] (con k = 0,...,N-1), il che ha complessità O(N^2). Se però N è una potenza di 2, allora ci riduciamo a dover calcolare una FFT, con complessità soltanto N*log2(N). Questo ha un impatto notevole nei "grossi" calcoli numerici: per esempio se N = 256, una FFT ci costa solo 2k operazioni contro le 64k della DFT vera e propria.

Non solo: se il segnale x[n] da trasformare -oltre a essere necessariamente finito- è pure a valori reali, allora i coefficienti della DFT da calcolare godono di una simmetria coniugata: X[N-k] = X[k]* dove l'asterisco indica il complesso coniugato.

Esercizio di esempio: calcolare la DFT di lunghezza N = 8 del segnale discreto x[n] che vale 1 per n = 0 o 1.

Per prima cosa operiamo un "zero padding" al segnale x[n], dicendo che esso vale 0 per 2 <= n <= 7 (in questo modo N diventa una potenza di 2, ci conviene). Poi applichiamo la definizione di DFT con la sua sommatoria e il suo esponenziale complesso, che qui non scrivo perché non dubito che tu la studierai benissimo e avrai fior di libri davanti. :D Ottieniamo:

X[k] = (1/8) * (1 + exp(-j*2*pi*(k/8))) = (1/8) * (1 + cos(k*pi/4) - j*sin(k*pi/4))

X[0] = (1/8) * (1 + 1 - 0) = 1/4

X[1] = (1/8) * (1 + exp(-j*pi/4)) = (1/8) * (1 + 1/sqrt(2) - j/sqrt(2))

X[2] = (1/8) * (1 + exp(-j*pi/2)) = (1/8) * (1 - j)

X[3] = (1/8) * (1 + exp(-j*3*pi/4)) = (1/8) * (1 - 1/sqrt(2) - j/sqrt(2))

X[4] = (1/8) * (1 + exp(-j*pi)) = (1/8) * (1 - 1) = 0

Gli altri coefficienti ce li abbiamo gratis in virtù della simmetria coniugata:

X[5] = X[8-5]* = X[3]*

X[6] = X[2]*

X[7] = X[1]*

Graficando il modulo quadro |X[k]|^2 in funzione di k, il segnale risulta essere passa-basso.

non ci ho capito quasi niente :muro:

gabi.2437
15-09-2007, 19:37
s cerchi un'applicazione della FFT, dai un'occhiata al progetto SETI@Home, la applica per distinguere i segnali ricevuti.

hibone
15-09-2007, 19:38
non ci ho capito quasi niente :muro:

cercati dei lucidi di comunicazioni elettriche :) ci sono dei testi sul web :)

misterx
15-09-2007, 19:45
cercati dei lucidi di comunicazioni elettriche :) ci sono dei testi sul web :)

ho una lista di valori in excel coi quali sto cercando di capirci qualcosa. Tali valori se rappresentati su un grafico originano un'onda complessa; ora, prendendo spunto dall'esempio qui postato, volevo vedere se coi dati che ho a disposizione si riusciva a determinare i valori che rappresentano la sinusoide di base ma......nisba :confused:

Mi sa che sono ancora lontano dall'obbiettivo :muro:

hibone
15-09-2007, 19:58
ho una lista di valori in excel coi quali sto cercando di capirci qualcosa. Tali valori se rappresentati su un grafico originano un'onda complessa; ora, prendendo spunto dall'esempio qui postato, volevo vedere se coi dati che ho a disposizione si riusciva a determinare i valori che rappresentano la sinusoide di base ma......nisba :confused:

Mi sa che sono ancora lontano dall'obbiettivo :muro:

prendi un programma di audio editing che visualizzi lo spettro :)

misterx
28-09-2007, 12:08
prendi un programma di audio editing che visualizzi lo spettro :)

scusa per il ritardo!
preferisco implementare io l'algoritmo. Una cosa che non ho capito è, osservando la definizione della DFT, fornendo in ingresso alla sommatoria un punto di una curva, cosa ottengo come output :confused:

esempio: se io ho a disposizione la forma d'onda di una vocale e passo alla sommatoria di Fourier tutti i punti che la costituiscono cosa dovrei osservare in uscita ?

hibone
28-09-2007, 15:53
scusa per il ritardo!
preferisco implementare io l'algoritmo. Una cosa che non ho capito è, osservando la definizione della DFT, fornendo in ingresso alla sommatoria un punto di una curva, cosa ottengo come output :confused:

esempio: se io ho a disposizione la forma d'onda di una vocale e passo alla sommatoria di Fourier tutti i punti che la costituiscono cosa dovrei osservare in uscita ?

una sequenza discreta di valori in frequenza :) che rappresentano un "campionamento in frequenza" :asd: ( in altri termini se "unisci i puntini" ottieni lo spettro continuo del segnale vocale non campionato )
infatti nei programmi di audio editing lo spettro è "a gradini" spesso difficilmente è rappresentato come continuo...

Ps. Non preoccuparti del ritardo. nel frattempo ho fatto qualche partitina ad halo 2 :D

misterx
28-09-2007, 16:30
una sequenza discreta di valori in frequenza :) che rappresentano un "campionamento in frequenza" :asd: ( in altri termini se "unisci i puntini" ottieni lo spettro continuo del segnale vocale non campionato )
infatti nei programmi di audio editing lo spettro è "a gradini" spesso difficilmente è rappresentato come continuo...

Ps. Non preoccuparti del ritardo. nel frattempo ho fatto qualche partitina ad halo 2 :D

frena scusa :D
col primo passaggio trovo una sequenza di punti che uniti tra loro mi rappresentano la fondamentale ?

hibone
28-09-2007, 16:57
frena scusa :D
col primo passaggio trovo una sequenza di punti che uniti tra loro mi rappresentano la fondamentale ?

procediamo per passi :D

segnale analogico-->trasformata di fourier-->spettro continuo
segnale digitale ( o numerico )-->trasformata discreta di fourier-->spettro discreto
segnale analogico-->campionamento e quantizzazione (nel tempo)-->segnale digitale (nel tempo)
spettro continuo(quindi analogico) -->campionamento e quantizzazione ( in frequenza )-->Spettro discreto (in frequenza)


probabilmente ti mancano un po troppe basi per implementare un algoritmo di dft ( discrete fourier transform ) quantomeno perchè se non ti "rendi conto" (perdonami il termine) che andamento nel tempo e frequenza sono solo due modi diversi di vedere un segnale non riesci a cogliere il passaggio da segnali analogici a discreti e da spettri continui a discreti.

http://www.ing.univpm.it/strutture/eleaut/didattica/teoriadeisegnalin/inf_teoria_dei_segnali_n.html

intanto fatti qualche lettura su : trasformata di fourier e teorema del campionamento. e cerca di capire quel che c'è scritto :)

poi ti vedi

http://www.disi.unige.it/person/BoccacciP/esi/dft.pdf
http://www.diee.unica.it/misure/Dispense/Misure_Elettroniche/Analisi_armonica_su_dati_campionati.pdf

mentre questo dovrebbe proprio affrontare il tuo problema ( pare presenti alcuni algoritmi :) )

http://wwwusers.ts.infn.it/~milotti/Didattica/Segnali/Dispense-4.0.3(ch.6-7).pdf

misterx
28-09-2007, 17:11
Abbi pazienza, ma io ho già un'onda campionata, quindi è su dei campioni che sto lavorando. Applicando la DFT credo che otterrò una sinusoide che mi rappresenta la frequenza fondamentale, almeno credo :stordita:

Riprendendo l'onda principale e sottraendo la sinusoide trovata dovrei ottenere un'onda priva della fondamentale, almeno credo :stordita:

Se ora a questa nuova onda riapplico la DFT credo che otterrò un'armonica di un qualsiasi ordine: 2a, 3a o boh...

E' così a grandi linee ?


p.s.
leggerò tutto con molto interesse

hibone
28-09-2007, 17:22
Abbi pazienza, ma io ho già un'onda campionata, quindi è su dei campioni che sto lavorando. Applicando la DFT credo che otterrò una sinusoide che mi rappresenta la frequenza fondamentale, almeno credo :stordita:

Riprendendo l'onda principale e sottraendo la sinusoide trovata dovrei ottenere un'onda priva della fondamentale, almeno credo :stordita:

Se ora a questa nuova onda riapplico la DFT credo che otterrò un'armonica di un qualsiasi ordine: 2a, 3a o boh...

E' così a grandi linee ?


p.s.
leggerò tutto con molto interesse


intanto leggi :D se ti rispondo poi non leggi più :D

misterx
28-09-2007, 18:28
intanto leggi :D se ti rispondo poi non leggi più :D

credo che lo leggerò in quanto stavo pensando ad una tesi su questo proprio su argomento!

Nel frattempo mi accontento di informazioni alla spicciolata :D

Dunque, ho la mia funzione continua(onda) formata da infiniti valori; campionando mi accontento di prelevarne uno ogni tot tempo. Alla fine del mio campionamento mi ritrovo con una approssimazione della funzione continua originale, ma io mi accontento.

Prendo questi punti e li passo nella DFT, in uscita mi aspetto di vedere le "primitive" che compongono la mia onda campionata, in pratica, vedo com'è fatta, insomma, tutte le sue caratteristche e credo, che cambiando alcune delle sue caratteristiche si possa creare un'onda completamente differente.

So che la Fourier è applicata ad esempio, nel riconoscimento vocale, attraverso la scomposizione con la DFT di un'onda complessa, posso vedere se esistono determinate componenti(armoniche) e quindi, se tale onda appartiene a tizio, caio o sempronio; è come se in un certo senso, datomi un composto, attraverso l'analisi di fourier sia in grado di determinarne gli elementi base che lo costituiscono.

Io, questo ho capito di tutto questo discorso e credo sia sufficiente per iniziare a costruire qualche riga di codice che smanetti :D queste benedette onde complesse, però mi devi mettere in pista rispondendo alle mie domande, visto che hai passione e pazienza da vendere :D

hibone
28-09-2007, 19:11
credo che lo leggerò in quanto stavo pensando ad una tesi su questo proprio su argomento!

Nel frattempo mi accontento di informazioni alla spicciolata :D

Dunque, ho la mia funzione continua(onda) formata da infiniti valori; campionando mi accontento di prelevarne uno ogni tot tempo. Alla fine del mio campionamento mi ritrovo con una approssimazione della funzione continua originale, ma io mi accontento.

Prendo questi punti e li passo nella DFT, in uscita mi aspetto di vedere le "primitive" che compongono la mia onda campionata, in pratica, vedo com'è fatta, insomma, tutte le sue caratteristche e credo, che cambiando alcune delle sue caratteristiche si possa creare un'onda completamente differente.

So che la Fourier è applicata ad esempio, nel riconoscimento vocale, attraverso la scomposizione con la DFT di un'onda complessa, posso vedere se esistono determinate componenti(armoniche) e quindi, se tale onda appartiene a tizio, caio o sempronio; è come se in un certo senso, datomi un composto, attraverso l'analisi di fourier sia in grado di determinarne gli elementi base che lo costituiscono.

Io, questo ho capito di tutto questo discorso e credo sia sufficiente per iniziare a costruire qualche riga di codice che smanetti :D queste benedette onde complesse, però mi devi mettere in pista rispondendo alle mie domande, visto che hai passione e pazienza da vendere :D

io non ho ne passione ne pazienza mi spiace...
se dico una cosa ho le mie ragioni. se ti mancano le basi per capire ciò che dico è inutile che ti spiego alla spicciolata... il campionamento non è una approssimazione perchè "mi accontento" anzi, il campionamento non è proprio un'approssimazione. io ti ho già detto tutto quello che sulla dtf e la idft c'è da sapere ( formalismi matematici a parte per cui ci sono i testi ) ed è inutile stare qui ( per me ) a ripetere cose che i testi che ti ho riportato ( alcuni dei quali sono quelli su cui ho studiato ) spiegano molto meglio di quanto posso fare io...

misterx
28-09-2007, 19:22
io non ho ne passione ne pazienza mi spiace...
se dico una cosa ho le mie ragioni. se ti mancano le basi per capire ciò che dico è inutile che ti spiego alla spicciolata... il campionamento non è una approssimazione perchè "mi accontento" anzi, il campionamento non è proprio un'approssimazione. io ti ho già detto tutto quello che sulla dtf e la idft c'è da sapere ( formalismi matematici a parte per cui ci sono i testi ) ed è inutile stare qui ( per me ) a ripetere cose che i testi che ti ho riportato ( alcuni dei quali sono quelli su cui ho studiato ) spiegano molto meglio di quanto posso fare io...


ok, grazie 1000 per il tempo che mi hai dedicato :)

hibone
28-09-2007, 19:59
ok, grazie 1000 per il tempo che mi hai dedicato :)

figurati...

misterx
28-09-2007, 20:27
scusa un secondo...dici che vuoi farci su una tesi (penso per l'università...) e poi ne parli come di una "favoletta"... per affrontare e capire certi problemi è NECESSARIO il formalismo matematico...ad esempio solo per capire perchè campioni un segnale in un certo modo, non perchè ti "accontenti"...

certo, dipende dal tipo di tesi.
La mia non sarà certo un approfondimento del'analisi di Fourier, ma verterà principalmente verso un prodotto che la utilizza; quindi più orientato alla pratica che non all'analisi in senso stretto: non devo dimostrarla ma semplicemente usarla: chiaro che per usarla in modo corretto va capita, ma non in senso matematico.
Ammetto le molte lacune ma che a poco a poco sto colmando, anche grazie ai vostri numerosi suggerimenti.
Nel mio corso di studi, informatica, l'analisi di Fourier non è prevista, l'ho trovata in un complementare dove in aggiunta non è assolutamente previsto il suo approfondimento; è più una mia voglia di conoscere che mi spinge a saperne di più.

Ho solo bisogno di tempo, le mie domande cercavano di abbreviare tale tempo di modo che potessi mettere subito in pratica quanto appreso.
Sarà un modo strano di agire degli informatici ?
Un mio modo lo è di sicuro, fretta, fretta, fretta.

hibone
28-09-2007, 21:48
più vai di fretta, meno capisci, più tempo ci metti. l'analisi di fourier non è nulla di complicato, ma non puoi trattarla come un raccontino, rischi di non capirci nulla...infatti ancora non hai ben chiara la differenza tra dominio del tempo e dominio della frequenza per un segnale, trasformata e trasformata inversa, segnali discreti e analogici...e soprattutto, se vuoi analizzare segnali reali (cioè generati da processi stocastici, non segnali deterministici, segnali non stazionari...) che sono quelli analizzati da strumenti/prodotti reali (ad es nello speech processing) hai bisogno anche di nozioni di statistica/descrizione statistica di un segnale... altrimenti rischi di fare una confusione pazzesca, raggiungendo risultati inesatti. nelle applicazioni si parla di STFT (Short Time Fourier Trasform) per analisi tempo/frequenza di segnali non stazionari...(un segnale non stazionario ha un contenuto in frequenza che "cambia" nel tempo...) la teoria alla base non la puoi saltare giustificando tutto perchè hai fretta o perchè non ti è stato spiegato... rischi di complicare le cose di tanto...!!!

in poche parole non puoi prendere un segnale audio lungo 3 minuti e farne la trasformata di fourier, ottieni soltanto una cosa che sembra molto vagamente lo spettro di quel segnale, in realtà non vuol dire nulla...e per capire il motivo di questo, ti servono le basi del discrete time signal processing, spiegato molto bene in testi quali proakis manolakis o oppenheim schafer...ciao


non tirare fuori i processi stocastici per carità del cielo... :D

i testi che hai citato sono quelli a cui fa riferimento il mio prof e indicati in alcuni dei pdf che ho linkato...

e comunque trovo abbastanza duro fare la trasformata di fourier di un segnale audio :D

misterx
28-09-2007, 22:00
in poche parole non puoi prendere un segnale audio lungo 3 minuti e farne la trasformata di fourier, ottieni soltanto una cosa che sembra molto vagamente lo spettro di quel segnale, in realtà non vuol dire nulla...

concordo su quanto dici, la fretta non insegna nulla; ma nel frattempo mi hai messo una pulce nell'orecchio!

Dici che 3 minuti di audio non sono sufficienti per fare una trasformata, io trovo in rete esempi di onde quadre dalle qualii, con pochi punti, vengono estratte e mostrate le varie sinusoidi che formano il segnale originale; come te lo spieghi ?

hibone
28-09-2007, 22:15
concordo su quanto dici, la fretta non insegna nulla; ma nel frattempo mi hai messo una pulce nell'orecchio!

Dici che 3 minuti di audio non sono sufficienti per fare una trasformata, io trovo in rete esempi di onde quadre dalle qualii, con pochi punti, vengono estratte e mostrate le varie sinusoidi che formano il segnale originale; come te lo spieghi ?

il concetto che ha espresso lui è leggermente diverso credo...

il significato penso sia piuttosto:
"non puoi pensare di prendere un file audio di tre minuti e applicare pedissequamente la trasformazione secondo fourier perchè quello che otterresti a prima vista sembrerebbe uno spettro ma in realtà non avrebbe alcun significato"

il problema non è la durata ma la comprensione del fatto che un file audio trasporta informazione e questa implicazione significa che tu non conosci il file audio ( in quanto altrimenti non trasporterebbe informazione ) e ciò implica che non puoi " a prima vista " decomporlo in serie di fourier... :asd:

misterx
29-09-2007, 07:30
quella che intendi tu, se non ricordo male si chiama finestratura, sempre se intendevi questa