Qual è l'effetto dell'aliasing sull'entità dell'autocorrelazione?


8

Ho una domanda sull'effetto dell'aliasing sull'entità delle autocorrelazioni. Da una simulazione in MATLAB, non vedo alcun effetto dell'aliasing o alcuna necessità di filtro anti-alias quando prendo la grandezza dell'autocorrelazione. Ciò significa che posso sottocampionare i dati e quindi eseguire l'autocorrelazione. C'è un documento "Effetti dell'aliasing sulle stime del momento spettrale derivate dalla funzione di autocorrelazione completa" che dice qualcosa di simile a ciò che io sostengo. Qualcuno potrebbe farmi sapere se ho fatto un errore?

Risposte:


4

Decimare prima di calcolare l'autocorrelazione, in presenza di rumore, è inferiore al calcolo dell'autocorrelazione usando il set di dati completo. Supponiamo che il segnale di interesse sia incorporato nel rumore bianco. Il vettore costituito da campioni di un processo casuale discreto. La funzione di autocorrelazione del vettore è:x[n],n=0,1,...,N1x[n]

Ax[k]=1Nki=0N1kx[i]x[i+k]

Cioè, è il ritardo utilizzato per il calcolo dell'autocorrelazione. Nello scenario proposto, si sta decimando l'output della funzione di autocorrelazione di un fattore (ovvero si sta solo calcolando la funzione per ritardi ) e confrontando quel risultato con la funzione di autocorrelazione di decimato dello stesso fattore . Sia la sequenza decimata; la sua funzione di autocorrelazione è:kD0,D,2D,...x[n]Dxd[n]

Axd[k]=DNki=0N1kDx[iD]x[(i+k)D]

(per semplicità qui, ho assunto che sia un fattore nell'equazione sopra)DN

La tua richiesta può essere scritta come:

Ax[kD]?Axd[k]

1NkDi=0N1kDx[i]x[i+kD]?DNki=0N1kDx[iD]x[(i+k)D]

Dal punto di vista qualitativo, la somma sul lato sinistro ha più termini della sua controparte sul lato destro. Se è stazionario di secondo ordine, il valore atteso di ciascun termine in ciascuna somma è lo stesso; l'atto della media di più campioni con lo stesso valore atteso aumenta il rapporto segnale rumore. Detto in modo leggermente diverso, puoi considerare i termini di ogni somma come campioni da un nuovo processo casuale:x[n]

y[n]=x[n]x[n+kD]

Poiché il rumore presente in è bianco, il valore atteso di è la vera autocorrelazione del segnale di interesse in ritardo . Pertanto, vorremmo stimare con precisione il valore atteso di . Il nostro metodo per farlo è calcolando una media campionaria; si può facilmente dimostrare che la varianza nello stimatore medio del campione diminuisce alla luce di una dimensione del campione maggiore, convergendo al valore atteso effettivo man mano che il numero di campioni tende a .x[n]y[n]kDy[n]

Quindi, se nel segnale è presente del rumore bianco (che è spesso il caso), otterrai una stima migliore delle statistiche del secondo ordine del segnale sottostante utilizzando una dimensione del campione maggiore nel calcolo (questo potrebbe sembrare intuitivo ovvio). Nel contesto dei due approcci, ciò viene realizzato utilizzando il segnale completo non decimato nel calcolo dell'autocorrelazione e decimando successivamente (ovvero calcolando solo il risultato per determinati valori di ritardo).


Grazie mille. Hai ragione, ma nel caso del mio segnale non è il problema dominante. Il mio problema è principalmente l'effetto dell'aliasing. Hai spiegato che un segnale completo non decimale può essere migliore, ma se vogliamo ridurre l'effetto dell'aliasing dovremmo prendere ancora più campioni come due (3) volte il numero di campioni e ciò aumenta davvero la complessità.
Hossein,

2

Mi sembra un po 'strano. Lo script Matlab di seguito confronta la "autocorrelazione downsampled" con la "autocorrelazione dei segnali downsampled". Per le onde sinusoidali doppie questo in realtà si avvicina abbastanza (errore relativo di circa -50 dB) ma per il rumore bianco è semplicemente sbagliato (errore relativo> +6 dB). Sebbene possa esserci qualche vantaggio computazionale, non mi è chiaro quanto siano utili le autocorrelazioni downsampled anche nel caso dell'onda sinusoidale doppia. I picchi nello spettro si presentano ancora nel posto sbagliato.

% script to check whether autocorrelation is immune to aliasing
% create two sine waves at 18k and 21k (assuming sample rate of 444.1k) 
n = 8192;
t = (0:n-1)'/44100;
x = sin(2*pi*t*21000)+sin(2*pi*t*18000);
% calculate autocorrelation of original signal and one that's downsampled
% by 4 and thus heavily aliased
y = xcorr(x,x);
y2 = xcorr(x(1:4:end),x(1:4:end));
d = y(4:4:end)-4*y2;
% calculate the error in dB
err = 10*log10(sum(d.^2)./sum(y2.^2));
fprintf('Dual sine wave relative error = %6.2f dB\n',err);

%% try the same thing for white noise
x = 2*rand(n,1)-1;
y = xcorr(x,x);
y2 = xcorr(x(1:4:end),x(1:4:end));
d = y(4:4:end)-4*y2;
err = 10*log10(sum(d.^2)./sum(y2.^2));
fprintf('White noise relative error = %6.2f dB\n',err);

Grazie mille ma il posto dei picchi nell'autocorrelazione è importante per me e quindi non sono abbastanza sicuro che questo codice mostri il mio problema. Ma come fai notare mentre lo spettro cambia, ci troviamo di fronte a piccoli cambiamenti nel dominio del tempo simili a quelli che dice la carta.
Hossein,

0

Per tipi specifici di input l'effetto dell'aliasing di frequenza sull'entità delle autocorrelazioni può essere trascurabile. Tuttavia, non penso che questo sarà vero in generale.

Ad esempio, per un ingresso bandlimited o per il rumore bianco il sottocampionamento non influirà sulla forma dell'autocorrelazione (sebbene possa modificare il ridimensionamento in modo predittivo). L'autocorrelazione del rumore bianco è un delta e rimarrà un delta se sottocampionato.

Ora, lo spettro di potenza è correlato all'autocorrelazione da parte della trasformata di Fourier. Quindi, se la tua affermazione è vera, sembra che potresti anche affermare che l'aliasing di frequenza non modifica il contenuto della frequenza dell'input. E questo non è vero. Ma potrebbero esserci delle eccezioni (casi speciali).

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.