È consuetudine correggere il guadagno di una finestra?


9

Considera come viene definita la finestra Hanning:

0.5 - 0.5 * cos(n*2*Pi/(N-1))

Con questa definizione, ha un guadagno di 0,5, che è semplicemente il valore medio dei coefficienti. Al contrario, le finestre Flattop, come definite, hanno un guadagno unitario, presumibilmente in base al design.

Sembrerebbe appropriato ridimensionare la finestra di Hanning di un fattore 2, ma non ne ho mai discusso da nessuna parte. Sembrerebbe che tutte le finestre dovrebbero essere ridimensionate per ottenere un guadagno unitario.

In pratica, le finestre sono in genere corrette per il loro guadagno? In caso contrario, perché no?

MODIFICARE:

Dal momento che nessuno ha dato una risposta, elaborerò un po '.

È abbastanza facile trovare documenti che riportano il guadagno delle finestre più comuni. Ma da nessuna parte ho visto qualcuno riferirsi alla correzione del guadagno prima di usarlo per l'analisi spettrale. Forse ho sempre perso quell'affermazione, o tutti ritengono che la correzione del guadagno sia un requisito ovvio.

Sembra un senso comune impostare il guadagno di una finestra sull'unità in modo da preservare il livello di energia del segnale. Inoltre, come si possono confrontare le varie finestre per la precisione dell'ampiezza se una ha un guadagno di 0 dB, come fa un flattop, e l'altra ha una perdita di quasi 10 dB, come fa Gauss.

Le finestre sono anche ampiamente utilizzate per la progettazione di filtri FIR. In questa applicazione, dovrebbe essere chiaro che il segnale da finestra, un impulso sincero, ha la maggior parte della sua energia al centro della finestra. Di conseguenza, la finestra fa ben poco per ridurre l'energia totale dell'impulso sincero. Pertanto, quando utilizzato per la progettazione di filtri, non vogliamo un guadagno unitario, ma piuttosto l'ampiezza del picco di unità, come la maggior parte delle finestre ha, tranne le flattep. Qualcosa di diverso dall'ampiezza del picco di unità influenzerebbe il guadagno del filtro FIR risultante.


1
Dipende dall'applicazione e dalla modalità di applicazione della finestra (ad es. Tramite moltiplicazione o convoluzione). Alcuni tipi comuni di normalizzazione sono scalabili in base al guadagno in CC dell'unità o all'energia dell'unità.
Jason R,

Mi riferivo all'applicazione tramite moltiplicazione.
user5108_Dan

2
A causa della smerlatura, il guadagno della finestra non è costante a tutte le frequenze, a seconda della finestra. Pertanto, qualsiasi ridimensionamento dipende dal tipo di analisi che si sta eseguendo.
hotpaw2,

Come si chiama il guadagno di una finestra ??
Yves Daoust,

2
Il guadagno di una finestra, a quanto ho capito, è il valore medio dei coefficienti (ovvero Somma / N). Ecco due articoli che usano questa definizione Fred Harris (vedere la tabella 1 per un confronto dei guadagni della finestra) e Max Planck Inst (vedere la loro definizione e l'uso di S1). Questa definizione sembra abbastanza chiara se si guarda semplicemente l'effetto dell'applicazione di una finestra a un'onda sinusoidale pura.
user5108_Dan

Risposte:


3

Sì, è consuetudine correggere il guadagno di una finestra, ad eccezione di alcuni casi a cui farò riferimento in seguito. (Se sei interessato solo all'ampiezza relativa, ovviamente non è necessario correggere per il guadagno.)

Poiché la finestra riduce il guadagno del segnale originale (dominio del tempo), è necessario correggere l'ampiezza ottenuta tramite FFT. Ad esempio, se si utilizza la finestra Hanning, è necessario moltiplicare tutte le ampiezze per 2 (il reciproco di 0,5). A quanto ho capito, la maggior parte dei pacchetti software per FFT si corregge automaticamente per la finestra utilizzata.

Tuttavia, tale correzione è valida solo quando tutte le frequenze di interesse si distribuiscono nella finestra del dominio del tempo. Ad esempio, supponiamo di avere 1024 dati con tutti i livelli di segnale pari a zero tranne il punto # 512 che ha un valore di 1 (segnale di impulso). Ovviamente, qualsiasi finestra non fa nulla per i dati. Quindi, se si correggono le ampiezze per il guadagno della finestra (moltiplicando per 2), si finirà per sopravvalutare l'ampiezza. Se i tuoi dati 1024 sono tutti zero, tranne il primo punto con un valore di 1, ogni punto ha un valore pari a zero dopo la finestra e perdi il segnale.

Quindi, se hai a che fare con segnali casuali, con tutti i componenti di frequenza che dovrebbero trovarsi quasi uniformemente sulla lunghezza del segnale, devi (o dovresti) correggere il guadagno della finestra che usi.


Grazie. Questo è quello che pensavo dovesse essere il caso, ma non l'avevo mai visto dichiarato da nessuna parte.
user5108_Dan

1

un modo di "correggere il guadagno di una finestra" è quello di farlo nella definizione della finestra. cosa significherebbe? correggendo il guadagno dove ? a quale frequenza? a DC? se stai correggendo il guadagno, in DC, di una finestra, significa che tutti i coefficienti si aggiungono a 1.

Σn=-+w[n]=1

o

-+w(t) dt=1

Stai dicendo che il guadagno di una finestra è una funzione della frequenza? Calcolo il guadagno di una finestra come somma del coeff diviso per N, la media. Voglio che questo sia 1, non la somma, come hai dimostrato. Pertanto, il fattore di correzione del guadagno per un Hanning è 2. Quando uso finestre con guadagno corretto con un fft, ottengo valori di ampiezza corretti. Vale a dire; tutte le finestre che collaudo danno le stesse ampiezze per ogni componente spettrale e sono tutte d'accordo con una finestra senza finestre. Se uso Windows con guadagno non corretto, danno tutti risultati diversi e solo il flattop fornisce i valori di ampiezza corretti.
user5108_Dan

W(f)=-w(t)e-j2πftdt
f
W(ejω)=Σn=-w[n]e-jωn
ω212

Per come la vedo io, il guadagno della finestra di Hann è 1/2 a tutte le frequenze, non solo DC. In altre parole, ogni componente spettrale nel fft è 6 dB più basso di quanto dovrebbe essere. Quando uso una finestra flattop con guadagno unitario, ogni componente spettrale è al livello corretto. Devo fare qualcosa di completamente sbagliato.
user5108_Dan

non so come la vedi così. come stai usando la tua finestra di Hann? in quali punti del segnale originale stai applicando la finestra e poi cosa fai con i dati con finestra?
robert bristow-johnson,

Creo un segnale multi tono, quindi lo finestra in questo modo, dove N = 1024 sig (n) = 1 + sin (50 * n * 2 * Pi / N) + sin (75 * n * 2 * Pi / N) (n) = 0,5 - 0,5 * cos (n * 2 * Pi / (N-1)) windowed_sig (n) = sig (n) * win (n) Quindi prendo il file di windowed_sig. I risultati sembrano corretti. È solo che la parte dei segnali finestrati sembra essere in errore. L'errore è di 6 dB per una finestra di Hann, di circa 10 dB per un Gauss e di 0 dB per un flattop.
user5108_Dan

0

Il mezzo fattore si normalizza in ampiezza unitaria.


Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti a un autore, lascia un commento sotto il suo post.
jojek

@jojek: non c'è bisogno di una spiegazione più lunga, questa è una domanda elementare.
Yves Daoust,

Sono d'accordo con Yves qui: la domanda sembra elementare. E questa risposta indica sicuramente l'errore della dichiarazione dell'interrogante By this definition, it has a gain of 0.5.
Peter K.

@PeterK .: grazie per il supporto. Dopotutto, ho sbagliato a rispondere a una domanda insignificante: il "guadagno" di una finestra non è definito.
Yves Daoust,

1
@PeterK .: grazie, lo farò da solo, a seconda di ciò che l'OP risponde alla mia richiesta di chiarimenti.
Yves Daoust,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.