Fundamental proof of signal averaging noise reduction

조회 수: 5 (최근 30일)
Christopher Meehan
Christopher Meehan 2022년 8월 31일
댓글: Christopher Meehan 2022년 9월 1일
I am trying to experimentally show the mathematical proof of averaging n samples for a reduction of noise of sqrt(n)
my code is very simple, but the ratio of improvement does not converge towards a fixed ratio. I get random improvements even with very large numbers of averaging
In this example I am using a 16x sampling improvment, I was expecting a 4x reduction in noise according to the theory.
clear all
close all
clc
L1 = 1000
L2 = round(L1*16);
Noise = randn(1,L2);
PNoise_1 = mean(Noise(1:L1))
PNoise_2 = mean(Noise(1:L2))
Noisereduction = PNoise_1/PNoise_2

채택된 답변

Jeff Miller
Jeff Miller 2022년 9월 1일
Your code doesn't really measure noise reduction in the right way. Noise reduction refers to variability across many repeated means, something like this (untested):
nIterations = 100;
sampleMns = zeros(nIterations,2);
for iIter=1:nIterations
Noise = randn(1,L2);
sampleMns(iIter,1) = mean(Noise(1:L1));
sampleMns(iIter,2) = mean(Noise(1:L2));
end
sd1 = std(sampleMns(:,1));
sd2 = std(sampleMns(:,2));
Noisereduction = sd1/sd2;
  댓글 수: 1
Christopher Meehan
Christopher Meehan 2022년 9월 1일
Thanks Jeff! I did test this code and it does converge towards the theoretical

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by