Sia che ridimensioni l'output del tuo DFT, in avanti o al contrario, non ha nulla a che fare con la convenzione o con ciò che è matematicamente conveniente. Ha tutto a che fare con l'ingresso nel DFT. Consentitemi di mostrare alcuni esempi in cui il ridimensionamento è richiesto o non richiesto sia per la trasformazione diretta che inversa.
Deve ridimensionare una trasformazione in avanti di 1 / N.
Per cominciare, dovrebbe essere chiaro che per analizzare una semplice onda sinusoidale, la lunghezza della trasformazione dovrebbe essere irrilevante, matematicamente parlando. Supponiamo che N = 1024, Freq = 100 e il tuo segnale sia:
f (n) = cos (Freq * 2 * Pi * n / N)
Se prendi un DFT di 1024 punti di f (n), troverai quel bin [100] = 512. Ma questo non è un valore significativo finché non lo ridimensioni di N. 512/1024 = 1/2 e, naturalmente, l'altro 1/2 è nello spettro negativo in bin [924].
Se si raddoppia la lunghezza del DFT, N = 2048, i valori di uscita sarebbero due volte quelli del DFT a 1024 punti, il che, di nuovo, rende i risultati insignificanti a meno che non si ridimensioni di 1 / N. La lunghezza del DFT non dovrebbe essere un fattore in questo tipo di analisi. Quindi, in questo esempio, è necessario ridimensionare il DFT di 1 / N.
Non deve ridimensionare una trasformazione in avanti.
Supponiamo ora di avere la risposta all'impulso di un filtro FIR a 32 tocchi e di voler conoscere la sua risposta in frequenza. Per comodità, assumeremo un filtro passa-basso con un guadagno di 1. Sappiamo che per questo filtro, il componente DC del DFT deve essere 1. E dovrebbe essere chiaro che questo sarà il caso indipendentemente dalle dimensioni del DFT perché il componente DC è semplicemente la somma dei valori di input (cioè la somma dei coefficienti FIR).
Pertanto, per questo input, il DFT non viene ridimensionato di 1 / N per ottenere una risposta significativa. Questo è il motivo per cui puoi azzerare una risposta all'impulso quanto vuoi senza influenzare l'esito della trasformazione.
Qual è la differenza fondamentale tra questi due esempi?
La risposta è semplice Nel primo caso, abbiamo fornito energia per ogni campione di input. In altre parole, l'onda sinusoidale era presente per tutti i 1024 campioni, quindi abbiamo dovuto ridimensionare l'output del DFT di 1/1024.
Nel secondo esempio, per definizione, abbiamo fornito energia solo per 1 campione (l'impulso a n = 0). Ci sono voluti 32 campioni affinché l'impulso si facesse strada attraverso il filtro 32 tap, ma questo ritardo è irrilevante. Dato che abbiamo fornito energia per 1 campione, ridimensioniamo l'uscita del DFT di 1. Se un impulso fosse definito con 2 unità di energia anziché 1, ridimensioneremmo l'uscita di 1/2.
Non deve ridimensionare una trasformazione inversa.
Consideriamo ora un DFT inverso. Come per il DFT forward, dobbiamo considerare il numero di campioni a cui stiamo fornendo energia. Naturalmente, dobbiamo stare un po 'più attenti qui perché dobbiamo riempire in modo appropriato sia i bin di frequenza positiva che negativa. Tuttavia, se posizioniamo un impulso (ovvero un 1) in due contenitori appropriati, l'output risultante del DFT inverso sarà un'onda coseno con un'ampiezza di 2, indipendentemente da quanti punti utilizziamo nel DFT inverso.
Pertanto, come con il DFT diretto, non ridimensioniamo l'uscita del DFT inverso se l'ingresso è un impulso.
Deve ridimensionare una trasformazione inversa.
Ora considera il caso in cui conosci la risposta in frequenza di un filtro passa-basso e vuoi fare un DFT inverso per ottenere la sua risposta all'impulso. In questo caso, poiché stiamo fornendo energia in tutti i punti, per ottenere una risposta significativa dobbiamo ridimensionare l'output del DFT di 1 / N. Questo non è così ovvio perché i valori di input saranno complessi, ma se lavori attraverso un esempio, vedrai che questo è vero. Se non si scala di 1 / N, si avranno valori di risposta all'impulso di picco nell'ordine di N che non può essere il caso se il guadagno è 1.
Le quattro situazioni che ho appena descritto sono esempi di end point in cui è chiaro come ridimensionare l'output del DFT. Tuttavia, c'è molta area grigia tra i punti finali. Quindi consideriamo un altro semplice esempio.
Supponiamo di avere il seguente segnale, con N = 1024, Freq = 100:
f(n) = 6 * cos(1*Freq * 2*Pi * n/N) n = 0 - 127
f(n) = 1 * cos(2*Freq * 2*Pi * n/N) n = 128 - 895
f(n) = 6 * cos(4*Freq * 2*Pi * n/N) n = 896 - 1023
Notare le differenze di ampiezza, frequenza e durata per i tre componenti. Sfortunatamente, il DFT di questo segnale mostrerà tutti e tre i componenti allo stesso livello di potenza, anche se il 2 ° componente ha 1/36 del livello di potenza degli altri due.
Il fatto che tutti e tre i componenti stiano fornendo la stessa quantità di energia è ovvio, il che spiega i risultati della DFT, ma qui c'è un punto importante da chiarire.
Se conosciamo la durata dei vari componenti di frequenza, possiamo ridimensionare di conseguenza i vari bin di frequenza. In questo caso, faremmo questo per ridimensionare accuratamente l'output del DFT: bin [100] / = 128; bin [200] / = 768; bin [400] / = 128;
Il che mi porta al mio ultimo punto; in generale, non abbiamo idea di quanto tempo sia presente un particolare componente di frequenza all'ingresso del nostro DFT, quindi non possiamo assolutamente fare questo tipo di ridimensionamento. In generale, tuttavia, forniamo energia per ogni punto campione, motivo per cui dovremmo ridimensionare il DFT in avanti di 1 / N durante l'analisi di un segnale.
A complicare le cose, applicheremmo quasi sicuramente una finestra a questo segnale per migliorare la risoluzione spettrale del DFT. Poiché il primo e il terzo componente di frequenza sono all'inizio e alla fine del segnale, vengono attenuati di 27 dB mentre il componente centrale viene attenuato di soli 4 dB (finestra Hanning).
Per essere chiari, l'output del DFT può essere una rappresentazione piuttosto scadente dell'input, ridimensionato o meno.
Nel caso del DFT inverso, che di solito è un puro problema matematico, al contrario dell'analisi di un segnale sconosciuto, l'ingresso al DFT è chiaramente definito, quindi sai come ridimensionare l'output.
Quando si analizza un segnale con un analizzatore di spettro, analogico o FFT, i problemi sono simili. Non si conosce la potenza del segnale visualizzato a meno che non si conosca anche il suo ciclo di lavoro. Ma anche in questo caso, la finestra, l'intervallo, i tassi di scansione, il filtro, il tipo di rivelatore e altri fattori funzionano tutti per ottenere il risultato.
In definitiva, devi stare molto attento quando ti sposti tra i domini del tempo e della frequenza. La domanda che hai posto riguardo al ridimensionamento è importante, quindi spero di aver chiarito che devi capire l'input del DFT per sapere come ridimensionare l'output. Se l'input non è chiaramente definito, l'output del DFT deve essere considerato con grande scetticismo, che lo si ridimensioni o meno.