Signal- und Messdatenverarbeitung


Zufallszahlen/Rauschgeneratoren

Verteilungs-(dichte-)funktion Python Matlab/Octave
Vorbereitung (Laden von Modulen/Paketen)
from numpy import *
from numpy.random import *
from matplotlib.pyplot import *
Gleichverteilung im Intervall [0,1) (Generieren von N Werten xi mit i=0N1)
N=100
x=random(N)
plot(x,'o')
show()
N=100;
x=rand(1,N);
plot(x,'o')
Gleichverteilung im Intervall [a,b) (Generieren von N Werten xi mit i=0N1)
N=100
a=1
b=5
x=a+(b-a)*random(N)
plot(x,'o')
show()

oder

N=100
a=1
b=5
x=uniform(a,b,N)
plot(x,'o')
show()
N=100;
a=1;
b=5;
x=a+(b-a)*rand(1,N);
plot(x,'o')

oder

%Octave: pkg load statistics
%Matlab: erfordert die Statistics and Machine Learning Toolbox
N=100;
a=1;
b=5;
x=unifrnd(a,b,[1,N]);
plot(x,'o')
diskrete Gleichverteilung im Intervall [a,b] (Generieren von N Werten xi mit i=0N1)
N=100
a=1
b=5
x=randint(a,b+1,N)
plot(x,'o')
show()
N=100;
a=1;
b=5;
x=randi([a,b],[1,N]);
plot(x,'o')
Standardnormalverteilung mit dem Erwartungswert 0 und der Standardabweichung 1 (Generieren von N Werten xi mit i=0N1)
N=100
x=sqrt(-2*log(1-random(N)))*cos(2*pi*random(N))
plot(x,'o')
show()

oder

N=100
x=standard_normal(N)
plot(x,'o')
show()
N=100;
x=sqrt(-2*log(1-rand(1,N))).*cos(2*pi*rand(1,N));
plot(x,'o')

oder

N=100;
x=randn(1,N);
plot(x,'o')
Normalverteilung mit dem Erwartungswert μ und der Standardabweichung σ (Generieren von N Werten xi mit i=0N1)
N=100
mu=3
sigma=1.5
x=mu+sigma*sqrt(-2*log(1-random(N)))*cos(2*pi*random(N))
plot(x,'o')
show()

oder

N=100
mu=3
sigma=1.5
x=mu+sigma*standard_normal(N)
plot(x,'o')
show()

oder

N=100
mu=3
sigma=1.5
x=normal(mu,sigma,N)
plot(x,'o')
show()
N=100;
mu=3;
sigma=1.5;
x=mu+sigma*sqrt(-2*log(1-rand(1,N))).*cos(2*pi*rand(1,N));
plot(x,'o')

oder

N=100;
mu=3;
sigma=1.5;
x=mu+sigma*randn(1,N);
plot(x,'o')

oder

%Octave: pkg load statistics
%Matlab: erfordert die Statistics and Machine Learning Toolbox
N=100;
mu=3;
sigma=1.5;
x=normrnd(mu,sigma,[1,N]);
plot(x,'o')
Binomialverteilung für n Versuche und der Wahrscheinlichkeit p für Erfolg (Generieren von N Werten xi mit i=0N1)
N=100
n=10
p=0.2
x=zeros(N)
for i in range(0,N):
  for k in range(0,n):
    x[i]+=(random()<p)
  

plot(x,'o')
show()

oder

N=100
n=10
p=0.2
x=binomial(n,p,N)
plot(x,'o')
show()
N=100;
n=10;
p=0.2;
x=zeros(1,N);
for i=1:N
for k=1:n
x(i)=x(i)+(rand<p);
end
end
plot(x,'o')

oder

%Octave: pkg load statistics
%Matlab: erfordert die Statistics and Machine Learning Toolbox
N=100;
n=10;
p=0.2;
x=binornd(n,p,[1,N]);
plot(x,'o')
Exponentialverteilung mit der Rate 1 (Generieren von N Werten xi mit i=0N1)
N=100
x=-log(1-random(N))
plot(x,'o')
show()

oder

N=100
x=standard_exponential(N)
plot(x,'o')
show()
N=100;
x=-log(1-rand(1,N));
plot(x,'o')

oder

%Octave: pkg load statistics
%Matlab: erfordert die Statistics and Machine Learning Toolbox
N=100;
x=exprnd(1,[1,N]);
plot(x,'o')
Exponentialverteilung mit der Rate λ (Generieren von N Werten xi mit i=0N1)
N=100
Lambda=0.3
x=-log(1-random(N))/float(Lambda)
plot(x,'o')
show()

oder

N=100
Lambda=0.3
x=standard_exponential(N)/float(Lambda)
plot(x,'o')
show()

oder

N=100
Lambda=0.3
x=exponential(1/float(Lambda),N)
plot(x,'o')
show()
N=100;
lambda=0.3;
x=-log(1-rand(1,N))/lambda;
plot(x,'o')

oder

%Octave: pkg load statistics
%Matlab: erfordert die Statistics and Machine Learning Toolbox
N=100;
lambda=0.3;
x=exprnd(1,[1,N])/lambda;
plot(x,'o')

oder

%Octave: pkg load statistics
%Matlab: erfordert die Statistics and Machine Learning Toolbox
N=100;
lambda=0.3;
x=exprnd(1/lambda,[1,N]);
plot(x,'o')
Poisson-Verteilung mit der Intensität λ (Generieren von N Werten xi mit i=0N1)
N=100
Lambda=4
x=zeros(N)
for i in range(0,N):
  a=random()
  b=exp(-Lambda)
  c=b
  while c<=a:
    x[i]+=1
    b*=Lambda/x[i]
    c+=b
  

plot(x,'o')
show()

oder

N=100
Lambda=4
x=poisson(Lambda,N)
plot(x,'o')
show()
N=100;
lambda=4;
x=zeros(1,N);
for i=1:N
a=rand;
b=exp(-lambda);
c=b;
while (c<=a)
x(i)=x(i)+1;
b=b*lambda/x(i);
c=c+b;
end
end
plot(x,'o')

oder

%Octave: pkg load statistics
%Matlab: erfordert die Statistics and Machine Learning Toolbox
N=100;
lambda=4;
x=poissrnd(lambda,[1,N]);
plot(x,'o')
Rayleigh-Verteilung mit dem Betrag b (Generieren von N Werten xi mit i=0N1)
N=100
b=2
x=b*sqrt(-2*log(1-random(N)))
plot(x,'o')
show()

oder

N=100
b=2
x=rayleigh(b,N)
plot(x,'o')
show()
N=100;
b=2;
x=b*sqrt(-2*log(1-rand(1,N)));
plot(x,'o')

oder

%Octave: pkg load statistics
%Matlab: erfordert die Statistics and Machine Learning Toolbox
N=100;
b=2;
x=raylrnd(b,[1,N]);
plot(x,'o')
Produktnormalverteilung mit den Standardabweichungen σ1 und σ2 (Generieren von N Werten xi mit i=0N1)
N=100
sigma1=2
sigma2=1
x=normal(0,sigma1,N)*normal(0,sigma2,N)
plot(x,'o')
show()
N=100;
sigma1=2;
sigma2=1;
x=sigma1.*randn(1,N).*sigma2.*randn(1,N);
plot(x,'o')
Cauchy-Verteilung (Lorentz-Verteilung) mit s und t (Generieren von N Werten xi mit i=0N1)
N=100
s=2
t=10
x=s*standard_normal(N)/standard_normal(N)+t
plot(x,'o')
show()
N=100;
s=2;
t=10;
x=s*randn(1,N)./randn(1,N)+t;
plot(x,'o')