Ejemplo n.º 1
0
def simpleVarveModel(signal, H, shape=1.5, mean=1, SNR=.25, seed=0):
    ''' Simple PSM for varves

    Args:
        signal (array): the signal matrix, each row is a time series
        H (float): Hurst index, should be in (0, 1)
        '''

    # first, gammify the input
    gamSig = gammify(signal, shape=shape, mean=mean, seed=seed)

    # create gammafied autocorrelated fractal brownian motion series
    #     wa = Spectral.WaveletAnalysis()
    #     fBm_ts = wa.fBMsim(N=np.size(signal), H=H)
    fBm_ts = fbm.fgn(np.size(signal), H)
    gamNoise = gammify(fBm_ts, shape=shape, mean=mean, seed=seed)

    # combine the signal with the noise, based on the SNR
    varves = (gamSig * SNR + gamNoise * (1 / SNR)) / (SNR + 1 / SNR)

    res = {
        'signal': signal,
        'gamSig': gamSig,
        'fBm_ts': fBm_ts,
        'gamNoise': gamNoise,
        'varves': varves,
        'H': H,
        'shape': shape,
        'mean': mean,
        'SNR': SNR,
        'seed': seed,
    }

    return res
Ejemplo n.º 2
0
def test_fgn(n_good, hurst_good, length_good, fbm_method_good):
    fgn_sample = fgn(n_good, hurst_good, length_good, fbm_method_good)
    assert isinstance(fgn_sample, np.ndarray)
    assert len(fgn_sample) == n_good
Ejemplo n.º 3
0
    Serie = fbm(n=Size, hurst=H)
    a[seed],S[seed],_,O[seed] = evaluate_omega(Serie,1)
    
ax[0].plot(a,S,'o',mec='k',mfc='r',markersize=5,label=r'fBm',alpha=1)#,markersize=10,mfc='w',mec='r',mew=2,label=r'$\beta x$ Map',alpha=0.8)
ax[1].plot(a,O,'o',mec='k',mfc='r',markersize=5,alpha=1)#,markersize=10,mfc='w',mec='r',mew=2,label=r'$\beta x$ Map',alpha=0.8)
print('=>-------- 20%')


a = np.zeros(CI)
S = np.zeros(CI)
O = np.zeros(CI)
    
for seed in range(CI):    
    np.random.seed(seed)
    H = 0.6*seed/CI + 0.2
    Serie = fgn(n=Size, hurst=H)
    a[seed],S[seed],_,O[seed] = evaluate_omega(Serie,1)
    
ax[0].plot(a,S,'s',mec='k',mfc='g',markersize=5,label=r'fGn',alpha=1)#,markersize=10,mfc='w',mec='r',mew=2,label=r'$\beta x$ Map',alpha=0.8)
ax[1].plot(a,O,'s',mec='k',mfc='g',markersize=5,alpha=1)#,markersize=10,mfc='w',mec='r',mew=2,label=r'$\beta x$ Map',alpha=0.8)
print('==>------- 30%')


#Cauchy noise


a = np.zeros(CI)
S = np.zeros(CI)
O = np.zeros(CI)
    
for seed in range(CI):    
from fbm import fbm, fgn
import numpy as np
import csv

n_series = 100
n_size = 50000

fbm_matrix = []
fgn_matrix = []

for i in range(n_series):
    fbm_sample = fbm(n=n_size, hurst=0.1, length=1, method='daviesharte')
    fgn_sample = fgn(n=n_size, hurst=0.5, length=1, method='daviesharte')
    fbm_matrix.append(fbm_sample)
    fgn_matrix.append(fgn_sample)
    print(i)

with open("../Data/fBm.csv", "w+") as my_csv:
    csvWriter = csv.writer(my_csv, delimiter=',')
    csvWriter.writerows(fbm_matrix)

with open("../Data/fGn.csv", "w+") as my_csv:
    csvWriter = csv.writer(my_csv, delimiter=',')
    csvWriter.writerows(fgn_matrix)