Why does the variance not coincide with the autocorrelation function in 0?
Show older comments
Hello everyone, I am a civil engineering student and I am practising some signal processing topics. I was wondering, why in my script the correlation function calculated in 0 does not agree with the variance of my signal? They are very close (within a factor of 1000).
Thanks to all of you who answer, your work is valuable.
clear all; close all; clc;
t = 0:1000;
x = randn(1,length(t));
subplot(2,1,1);
plot(t,x)
ylabel('Amplitude')
xlabel('Time sample')
title('Gaussian noise signal')
[y,lags]=xcorr(x);
subplot(2,1,2);
plot(lags,y);
ylabel('Correlation output')
xlabel('Delay')
title('Autocorrelation of AWGN')
y(lags==0)
var(x)
Answers (1)
Sharmin Kibria
on 10 May 2023
0 votes
var(x) = sum((x-mean(x)).^2)/1000 while y(lags==0) is just calculating sum(x.^2). Because of the normalization var does your result is off by a factor of 1000.
Categories
Find more on Correlation and Convolution in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!