Skip to content
Snippets Groups Projects
Commit b3f2564c authored by Michele Maris's avatar Michele Maris
Browse files

u

parent 4225b86f
No related branches found
No related tags found
No related merge requests found
......@@ -49,6 +49,14 @@ class gaussian_colored_noise :
def seed(self) :
"""the seed of the random number generator"""
return self._seed
@property
def ps_shape_integral(self) :
"""the spectral shape: ps_shape=P(f)**0.5"""
x=self._freq
y=self._S
out=(x[1:]-x[:-1])*(y[1:]+y[:-1])
out=out.sum()/2.
return out*2
def __init__(self,N,wn_mean,wn_sigma,fknee,alpha,zero_policy='I',seed=None) :
"""
Creates a gaussian_colored_noise_generator.
......@@ -76,7 +84,7 @@ Keywords:
'100x1' : P(0)**0.5=(1+100*fknee/freq[1])**alpha/2
'midf1' : P(0)=P(f[1]/2) = exp((log P[2]-log P[1])/(log f2 - log f1)*(log f1/2 - log f1)+log P(1))
note that zero_policy affects the mean value of the chunck but not its variance
default value is 'I' that for alpha > 0 gives P(0)=1
default value is 'I'
:seed: the seed for the random number generator, if None no seed is applied otherwise the same seed is applied to any generated sequence
"""
......@@ -87,11 +95,6 @@ Keywords:
self._alpha=alpha
self._seed=seed
#
if str(zero_policy) in ['0','1','M','I','100x1'] :
self._zero_policy = str(zero_policy)
else :
raise Error("Error: invalid zero policy, valid values: '0','1','M','I','100x1'")
#
self._freq=np.fft.rfftfreq(self.N)
#
pl=self.alpha
......@@ -99,6 +102,7 @@ Keywords:
x=self.fknee/np.where(self._freq==0, np.inf , self._freq)
self._S=(1+x**pl)**0.5
#
self._zero_policy=zero_policy
if self._zero_policy=='0' :
self._S[0]=0.
elif self._zero_policy=='1' :
......@@ -115,9 +119,10 @@ Keywords:
r=(y2-y1)/(x2-x1)
z=r*(np.log(self._freq[1]/2)-x1)+y1
self._S[0]=np.exp(z)
else : # self._zero_policy=='I' :
# left things as they are
elif self._zero_policy=='I' :
pass
else :
raise Error("Error: invalid zero policy, valid values: '0','1','M','I','100x1','mid1f'")
#
def __call__(self,OutAll=False) :
"""computes the colored noise, if OutAll == False returns just the cn if True returns
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment