Entra

View Full Version : Dal dominio della frequenza al dominio del tempo


8310
15-01-2010, 18:46
Salve a tutti,

avrei dei (grossi) dubbi riguardo il passaggio dal dominio della frequenza al dominio del tempo. Premetto che sono un pò a digiuno della materia in oggetto, ma mi trovo a doverci lavorare per la tesi. In pratica dovrei studiare un certo problema nel dominio della frequenza per poi spostarmi nel dominio del tempo, ovviamente a mezzo della trasformata inversa di Fourier, da valutarsi al calcolatore (in soldoni a mezzo della ifft di MATLAB). Ora, quello che vorrei sapere è come scegliere il campionamento delle frequenze in maniera opportuna. Mi spiego meglio; io so che i fenomeni che mi interessano sono significativi nell'intervallo 0-10MHz: come dividere questo intervallo in modo tale da avere dei buoni risultati passando nel dominio del tempo??
Paradossalmente mi pare più semplice il problema inverso, cioè quello della scelta della frequenza di campionamento per passare dal dominio del tempo a quello della frequenza, scelta dettata dalla necessita di dover ridurre gli effetti della periodicizzazione del segnale, aliasing, ripple etc etc....
Grazie in anticipo,

Salvo

lowenz
15-01-2010, 19:14
Insomma stai chiedendo i possibili riflessi della discretizzazione delle frequenze?

8310
15-01-2010, 19:26
Insomma stai chiedendo i possibili riflessi della discretizzazione delle frequenze?

Esattamente. Mi occorrono dei criteri. Vorrei evitare di andare "ad muzzum", cosa che tra l'altro mi impedirebbe di motivare rigorosamente ogni mia scelta ai fini del calcolo numerico.

lowenz
15-01-2010, 23:46
Esattamente. Mi occorrono dei criteri. Vorrei evitare di andare "ad muzzum", cosa che tra l'altro mi impedirebbe di motivare rigorosamente ogni mia scelta ai fini del calcolo numerico.
Beh campionare nelle frequenze significa moltiplicare per un treno di impulsi nelle frequenze ergo antitrasforma questo prodotto (ottieni una convoluzione nel tempo fra le antitrasformate) e ragionaci su :D

8310
16-01-2010, 10:16
Beh campionare nelle frequenze significa moltiplicare per un treno di impulsi nelle frequenze ergo antitrasforma questo prodotto (ottieni una convoluzione nel tempo fra le antitrasformate) e ragionaci su :D

Allora, vediamo un pò di ragionare come se dovessi partire dal dominio del tempo per poi ritornarci, tenendo sempre presente che il tutto andrà implementato in macchina, quindi occore lavorare su un certo numero N di valori (ovvio). Campionare una funzione h(t) nel dominio del tempo significa moltiplicare h per un treno di impulsi di periodo T. Questa operazione corrisponde, nel dominio della frequenza, al prodotto di convoluzione della trasformata continua H della h(t) e la trasformata del suddetto treno di impulsi, che è ancora un treno di impulsi, di periodo 1/T. Praticamente mi ritrovo nel dominio della frequenza con la H periodicizzata. Di quì il problema dell'aliasing dovuto alla sovrapposzione delle code dellefunzioni a destra e a sinistra di ciascun intervallo; affinchè la cosa abbia lieve enità devo fare in modo che T sia piccolo e quindi 1/T sia grande. A questo punto (prima conclusione) posso dire che scelgo 1/T in modo che sia maggiore di 2fc, dove fc è la più alta componente in frequenza della H. Nel mio caso fc=10MHz, quindi 1/T>20MHz (T<0,05 us). Ora devo fare in modo di avere un numero finito N di punti di campionamento, quindi nel dominio del tempo moltiplico la sequenza di campioni per una funzione rettangolare di durata T0; questa operazione equivale, nel dominio della frequenza, al prodotto di convoluzione tra la H periodicizzata e la trasformata della funzione rettangolare che è la funzione sinc=sinf/f. Vista la tipica forma d'onda della sinc, si pone il problema del ripple della funzione ottenuta; per limitarlo ragiono sul fatto che più è grande T0, più la sinc è approssimabile con un impulso, minore è il ripple. Scelgo dunque T0 più grande possibile. Ma quanto? Mi viene in mente di dire che potrei mettere in relazione T0 con l'intervallo di tempo che io voglio osservare (in realtà non posso conoscerlo a priori ma conoscedo le caratteritistiche del sistema e della funzione che lo eccita penso di poter dire che è circa 1500 us), per cui potrei provare a utilizzare questo valore per T0. Quindi posso campionare la funzione nel dominio della frequenza, con intervallo di campionamento 1/T0 che di fatto è quello che stavo cercando. Inoltre gli N punti che sto considerando sono dati da N=T0/T.... cavoli, sono tanti (circa 30000).... prevedo luuuuuunghe attese :stordita:
Il ragionamento è corretto???
Inoltre se non ricordo male mi pare di aver letto che il numero di punti N è bene che abbia certe caratteristiche affichè l'algoritmo IFFT funga bene....

lowenz
16-01-2010, 16:00
Perchè proprio una finestra rettangolare fra le tante finestrature possibili? (curiosità mia)

lowenz
16-01-2010, 16:02
Inoltre se non ricordo male mi pare di aver letto che il numero di punti N è bene che abbia certe caratteristiche affichè l'algoritmo IFFT funga bene....
Ma intendi un'implementazione particolare della IFFT?

8310
16-01-2010, 16:54
Perchè proprio una finestra rettangolare fra le tante finestrature possibili? (curiosità mia)

Una finestra rettangolare di altezza unitaria mi consente di non alterare i campioni e di selezionarne un certo numero finito N, escludendo tutti gli altri (in teoria infiniti). Io in materia sono piuttosto ignorante, come sicuramente si vede, quindi se ci sono altre possibilità più vantaggiose dimmi pure!!
Forse può essere d'aiuto dire di cosa sto strattando, giusto per inquadrare meglio il problema. Devo studiare la risposta di una linea di trasmissione al di sopra di un piano di massa non ideale (terreno), eccitata da un campo elettromagnetico generato da una fulminazione indiretta... Ho impostato il problema nel seguente modo:
1) calcolo dei parametri della linea (impedenze trasversali e longitudinali, comprese quelle del terreno);
2) calcolo dei campi EM assunto un certo andamento della corrente nel canale di fulmine;
3) suddivisione della linea in tratti elementari in cui assumere costante la sollecitazione del campo;
4) soluzione delle equazioni differenziali che esprimono l'accoppiamento elettromagnetico e la propagazione delle onde di tensione/corrente in ogni tratto, nel dominio della frequenza;
5) passaggio al dominio del tempo, non dico per tutti i punti della linea, ma quanto meno in alcuni punti di interesse (come gli estremi della linea).
L'ultimo punto è quello che sto trattando adesso.

Ma intendi un'implementazione particolare della IFFT?

Intendo per l'utilizzo della routine presente in MATLAB, che tra l'altro credo sia un classico, anche in altri ambienti... anche se non l'avevo MAI utilizzata prima.

Comunque, grazie mille :)

Zontar
16-01-2010, 22:37
Non capisco bene la domanda (sarà l'ora :O ) ma mi sembra di intuire che la risposta dovrebbe essere il Teorema di Nyquist-Shannon (http://it.wikipedia.org/wiki/Teorema_del_campionamento_di_Nyquist-Shannon)

8310
17-01-2010, 08:25
Non capisco bene la domanda (sarà l'ora :O ) ma mi sembra di intuire che la risposta dovrebbe essere il Teorema di Nyquist-Shannon (http://it.wikipedia.org/wiki/Teorema_del_campionamento_di_Nyquist-Shannon)

Il mio problema non è quello di campionare nel tempo per poi trasformare, bensì di campionare nella frequenza per poi antitrasformare ;)


@lowenz: pensi quindi che il mio ragionamento abbia senso?

Zontar
17-01-2010, 09:52
Il mio problema non è quello di campionare nel tempo per poi trasformare, bensì di campionare nella frequenza per poi antitrasformare ;)


Scusa ma non capisco come fai a campionare il tuo segnale in frequenza...che strumento usi ? Un analizzatore di spettro ?

8310
17-01-2010, 18:26
Scusa ma non capisco come fai a campionare il tuo segnale in frequenza...che strumento usi ? Un analizzatore di spettro ?

Mi sto muovendo nell'ambito della teoria, non parto da dati sperimentali :) Maneggiare grandezze nel dominio della frequenza mi è risultato molto più comodo! Ora però devo "presentare il conto" nel dominio del tempo....

lowenz
17-01-2010, 18:55
Scusa ma non capisco come fai a campionare il tuo segnale in frequenza...che strumento usi ? Un analizzatore di spettro ?
Dovrà lavorare con frequenze discretizzate: lui vuol sapere cosa implica questo nel dominio del tempo, se perde "qualcosa" nell'analisi temporale del fenomeno.

8310
17-01-2010, 22:46
@lowenz: pensi quindi che il mio ragionamento abbia senso?

:stordita:

:)

lowenz
18-01-2010, 00:03
:stordita:

:)
Il problema sta qui:
Mi viene in mente di dire che potrei mettere in relazione T0 con l'intervallo di tempo che io voglio osservare
Non vorrei che così tu finisca semplicemente per chiudere un cerchio e basta :p

8310
18-01-2010, 08:16
Non vorrei che così tu finisca semplicemente per chiudere un cerchio e basta :p

Beh, potrei provare con una serie di valori di T0 a partire proprio da quel valore per poi ampliare la finestra e vedere cosa cambia nell'antitrasformata; dopodiché scelgo quel valore a partire dal quale non si riscontrano sensibili differenze con i valori immediatamente successivi. Così il procedimento non dovrebbe risultare totalmente a casaccio e neanche lunghissimo, dato che il test lo farei per un solo punto della linea, laddove i fenomeni prevedo che siano più significativi.