Newsgroup: it.hobby.elettronica.digitale
Titolo: FFT

Ciao a tutti, devo calcolare la FFT di una sinusoide in uscita da un
filtro.Mi sapreste dire in che maniera posso implementare in MATLAB
questa funzione, conoscendo la funzione di trasferimento del filtro.

 questa funzione, conoscendo la funzione di trasferimento del filtro.
Se è una sinusoide pura, non avrai bisogno di fare nessuna FFT, dato
che il suo spettro è un delta di Dirac. Basterà moltiplicare
l'ampiezza della sinusoide in ingresso per la funzione di trasferimento
del filtro per ottenere l'ampiezza (e la fase, se lavori in campo
complesso) della sinusoide in uscita.
Se il segnale non è una sinusoide pura, basta fare la trasformata di
Fourier del segnale all'ingresso del filtro e poi moltiplicarla con la
funzione di trasferimento del filtro per ottenere (per definizione!) la
trasformata di Fourier del segnale in uscita dal filtro.

Ti ringrazio per avermi risposto. Il mio compito è quello di
progettare un filtro passa banda, utile per ottenere una riga spettrale
della sinusoide intorno ad 1kHz, mi occorre osservare l'attenuazione
ottenuta anche per la seconda e terza armonica. Spice purtroppo non mi
permette di ottenere una FFT affidabile, per questo mi occorre
simularlo con MATLAB, ma non riesco a capire come implementare la
funzione...

 funzione...
Non capisco. Una FFT è una FFT, indipendentemente dal programma che
utilizzi per calcolarla, se i dati sono gli stessi. Ci possono al
limite essere delle convenzioni diverse, ma basta controllare qualche
segno. Cosa intendi per "non affidabile"?
Ad ogni modo, Matlab puo' facilmente calcolare la FFT di una sequenza
numerica memorizzata in un vettore:
http://www.mathworks.com/access/helpdesk/help/techdoc/ref/fft.html


In Spice la FFT è calcolata prendendo in esame solo l'ultimo periodo
(l'inversa della frequenza fondamentale) del transitorio ed è poi
considerato in tutti i calcoli  dell'algoritmo.
Quindi, per esempio, non viene preso in considerazione un eventuale
transitorio instabile che presenta la sinusoide in uscita dal filtro
prima di stabilizzarsi su un valore di tensione.
Per quanto riguarda Matlab ho letto l'help sulla FFT, ma non capisco se
sia possibile applicarla ad una funzione di trasferimento (quindi ad un
rapporto tra polinomi).

 rapporto tra polinomi).
Ehm... sei sicuro anche qui? La trasformata di Fourier di una funzione
di trasferimento è la risposta all'impulso. Si tratta di una
caratteristica del sistema lineare in esame (filtro) e non dipende dal
segnale di entrata o di uscita (difatti, è il rapporto delle loro
trasformate di Fourier). Insisto ovviamente che questo è valido solo
se il circuito è lineare, cosa che potrebbe non essere vera.

 ottenuta anche per la seconda e terza armonica. 
Visto che il filtro lo progetti tu, saprai l'ordine e il tipo 
(Butterworth, Bessell, ecc...) per cui hai già una stima a priori 
dell'attenuazione. Se usi spice ti è poi sufficiente un'analisi AC per 
verificarla quantitativamente.
Infine, se sei interessato al transitorio dovrebbe esserci un'analisi 
apposita ma sinceramente non ricordo con precisione il nome.
Ciao,
Marco / iw2nzm

Visto che il filtro lo progetti tu, saprai l'ordine e il tipo
(Butterworth, Bessell, ecc...) per cui hai già una stima a priori
dell'attenuazione. Se usi spice ti è poi sufficiente un'analisi AC per
verificarla quantitativamente.
Sono daccordo, ma quando sostituisco i valori dei componenti del filtro
progettato su carta con i valori commerciali , le cose cambiano
abbastanza e quindi devo verificare il tutto. Ovviamente utilizzo
un'analisi AC, ma devo svolgere una FFT per una completezza di analisi,
anche perchè con l'AC non ho informazioni sulla conitnua.
GRAZIE ad entrambi.

Se non ho capito male tu hai una sinusoide in ingresso e vuoi vedere dopo il 
filtro cosa succede...
Fai la fft della sinusoide senza filtro, e ottieni lo spettro prima di 
filtrare.
Filtri la sinusoide utilizzando la tua funzione di trasferimento (per 
capirci nel dominio del tempo) utilizzando Filter (se hai la FDT nel dominio 
di laplace dovrai "descritizzare" i coefficienti con bilinear per esempio) 
una volta filtrata la sinusoide rifai la fft per osservare quali sono stati 
gli effetti sullo spettro.
Io userei lo stesso metodo ma senza tirarare in ballo direttamente la FFT 
utilizzando il comando TFE che fa una funzione di trasferimento tra sue 
stream di dati (in questo tuo caso specifico quello senzi filtro e quelli 
con filtro).
Spero sia quello che cerchi,
Emiliano. 

Grazie era proprio quello che cercavo.
Ciao