Azzera filtri
Azzera filtri

Adding noise with certain standard deviation to uncorrupted data

54 visualizzazioni (ultimi 30 giorni)
I have a 1-D data set and I want to artificially corrupt it with noise of a certain standard deviation. Say for accurate pitch rate measurements 'q' of an aircraft, I want to add noise with a std. of 0.1047 rad/sec. How do I proceed?

Risposta accettata

Wayne King
Wayne King il 6 Feb 2014
when you say 0.1047 rad/second, do you want these values to be bounded by a certain interval? or is the frequency value continuous (I'm assuming it is by rad/sec)
The other question is what probability distribution do you want the noise to follow and what is the mean value?
I'll assume here: Gaussian, mean 0, std 0.1047, frequency continuous
noise = 0.1047*randn(1000,1); % gives you 1000 samples
Note you get negative and positive rad/second values -- that may very well not be what you want.

Più risposte (1)

Jos (10584)
Jos (10584) il 6 Feb 2014
Modificato: Jos (10584) il 6 Feb 2014
In addition to Wayne's suggestion you can sample noise from any distribution with unknown parameters and set the standard deviation to a specific value:
DesiredSD = 0.1047 ; % the desired standard deviation
noise = random('ncx2',10*rand,10*rand,[1000 1]) ; % some random noise
noise = DesiredSD * (noise ./ std(noise)) ; % scale the standard deviation
std(noise) % voila!

Community Treasure Hunt

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

Start Hunting!

Translated by