Quel est l'effet du repliement sur l'ampleur de l'autocorrélation?


8

J'ai une question sur l'effet de l'aliasing sur l'ampleur des autocorrélations. À partir d'une simulation dans MATLAB, je ne vois aucun effet d'alias ou aucun besoin de filtre anti-alias lorsque je prends l'ampleur de l'autocorrélation. Ce qui signifie que je peux sous-échantillonner les données et ensuite prendre l'autocorrélation. Il y a un article "Effets du repliement sur les estimations du moment spectral dérivé de la fonction d'autocorrélation complète" qui dit quelque chose comme ce que je prétends. Est-ce que quelqu'un pourrait me faire savoir si j'ai fait une erreur?

Réponses:


4

Décimer avant de calculer l'autocorrélation, en présence de bruit, est inférieur au calcul de l'autocorrélation à l'aide de l'ensemble de données complet. Supposons que le signal d'intérêt soit intégré dans le bruit blanc. Le vecteur est constitué d'échantillons provenant d'un processus aléatoire discret. La fonction d'autocorrélation du vecteur est:x[n],n=0,1,...,N1x[n]

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

Autrement dit, est le décalage utilisé pour le calcul de l'autocorrélation. Dans le scénario que vous proposez, vous décimez la fonction d'autocorrélation produite par un facteur (c'est-à-dire que vous calculez uniquement la fonction pour les décalages ) et comparez ce résultat à la fonction d'autocorrélation de décimée par le même facteur . Soit la séquence décimée; sa fonction d'autocorrélation est:kD0,D,2D,...x[n]Dxd[n]

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

(pour simplifier ici, j'ai supposé que est un facteur de dans l'équation ci-dessus)DN

Votre demande peut être écrite comme:

Ax[kD]?Axd[k]

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

En regardant cela qualitativement, la sommation sur le côté gauche a plus de termes que son homologue sur le côté droit. Si est stationnaire du second ordre, alors la valeur attendue de chaque terme dans chaque somme est la même; le fait de faire la moyenne de plusieurs échantillons qui ont la même valeur attendue augmente le rapport signal / bruit. Dit un peu différemment, vous pouvez penser les termes de chaque somme comme des échantillons d'un nouveau processus aléatoire:x[n]

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

Puisque le bruit présent dans est blanc, la valeur attendue de est la véritable autocorrélation du signal d'intérêt au décalage . Par conséquent, nous aimerions estimer avec précision la valeur attendue de . Notre méthode consiste à calculer une moyenne d'échantillon; on peut facilement montrer que la variance dans l'estimateur moyen d'échantillon diminue étant donné une taille d'échantillon plus grande, convergeant vers la valeur réelle attendue à mesure que le nombre d'échantillons tend à .x[n]y[n]kDy[n]

Donc, s'il y a du bruit blanc dans le signal (ce qui est souvent le cas), vous obtiendrez une meilleure estimation des statistiques de second ordre du signal sous-jacent en utilisant une plus grande taille d'échantillon dans le calcul (cela peut sembler intuitivement évident). Dans le contexte de vos deux approches, ceci est accompli en utilisant le signal complet non décimé dans le calcul d'autocorrélation et en décimant ensuite (c'est-à-dire en ne calculant le résultat que pour certaines valeurs de décalage).


Merci beaucoup. Vous avez raison mais en cas de mon signal ce n'est pas le problème dominant. Mon problème est principalement l'effet de l'aliasing. Vous avez expliqué qu'un signal non décimal complet peut être meilleur, mais si nous voulons diminuer l'effet d'aliasing, nous devrions prendre encore plus d'échantillons comme deux (3) fois le nombre d'échantillons et cela augmente vraiment la complexité.
Hossein

2

Cela me semble un peu étrange. Le script Matlab ci-dessous compare "l'autocorrélation sous-échantillonnée" à "l'autocorrélation des signaux sous-échantillonnés". Pour les ondes sinusoïdales doubles, cela se rapproche assez (erreur relative d'environ -50 dB), mais pour le bruit blanc, c'est tout simplement faux (erreur relative> +6 dB). Bien qu'il puisse y avoir un certain avantage de calcul, il n'est pas clair pour moi à quel point les autocorrélations sous-échantillonnées sont utiles même dans le cas de l'onde sinusoïdale double. Les pics du spectre apparaissent toujours au mauvais endroit.

% 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);

Merci beaucoup mais la place des pics en autocorrélation est importante pour moi et donc je ne suis pas sûr que ce code montre mon problème. Mais comme vous le signalez alors que le spectre change, nous sommes confrontés à de petits changements dans le domaine temporel similaires à ce que dit le papier.
Hossein

0

Pour certains types d'entrées, l'effet du repliement de fréquence sur l'amplitude des autocorrélations peut être négligeable. Cependant, je ne pense pas que ce sera vrai en général.

Par exemple, pour une entrée à bande limitée ou pour le bruit blanc, le sous-échantillonnage n'aura pas d'impact sur la forme de l'autocorrélation (bien qu'il puisse changer l'échelle d'une manière prédictive). L'autocorrélation du bruit blanc est un delta et il restera un delta en cas de sous-échantillonnage.

Or, le spectre de puissance est lié à l'autocorrélation par la transformée de Fourier. Donc, si votre affirmation est vraie, il semble que vous pouvez également affirmer que l'alias de fréquence ne modifie pas le contenu de fréquence de l'entrée. Et ce n'est pas vrai. Mais il peut y avoir des exceptions (cas particuliers).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.