Fundamental proof of signal averaging noise reduction

5 vues (au cours des 30 derniers jours)
Christopher Meehan
Christopher Meehan le 31 Août 2022
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

Réponse acceptée

Jeff Miller
Jeff Miller le 1 Sep 2022
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 commentaire
Christopher Meehan
Christopher Meehan le 1 Sep 2022
Thanks Jeff! I did test this code and it does converge towards the theoretical

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by