Ejemplo n.º 1
0
                                                  halfwidth,
                                                  resolution,
                                                  window,
                                                  mph=mph)

try:
    print(len(p_freq))
    print(len(p_power))
except NameError:
    data = ps_f.reader('clean_peaks')
    p_freq = data[0].ravel()
    p_power = data[1].ravel()

# # Autocorrelation within window
if window is not None:
    acorr = as_f.autocorr(spectral_power[window])
else:
    acorr = as_f.autocorr(spectral_power)
freq_ac = np.arange(0, resolution * len(acorr), resolution)
plt.figure()
plt.plot(freq_ac, acorr)
plt.show(block=False)

# # Peak autocorrelation
acorr_p, freq_ac_p = as_f.autocorr(p_power,
                                   number_of_steps=len(freq),
                                   x=p_freq,
                                   x_tot=freq)
plt.figure()
plt.plot(freq_ac_p, acorr_p)
plt.show(block=True)
Ejemplo n.º 2
0
    c2 = len(p) - 1

    # Autocorrelation data select
    freq_ds1 = freq_muHz[c1:c2]
    p_ds1 = p[c1:c2]

    # Plot selected interval
    plt.plot(freq_muHz, p)
    plt.plot(freq_ds1, p_ds1, 'r')
    plt.xlabel('Frequency [' + r'mu' + 'Hz]')
    plt.ylabel('Signal/Noise ratio')
    plt.legend(['S/N', 'Interval selected for autocorrelation'])
    plt.show()

    # Autocorrelation function call
    ac1 = as_f.autocorr(p_ds1)

    # Construct frequency steps
    freq_mean_diff = np.mean(np.diff(freq_muHz))
    freq_ac1 = np.linspace(0, freq_mean_diff * len(ac1), num=len(ac1), endpoint=False)

    # Peak finding
    ac1_peak_indx = detect_peaks(ac1, show=False)
    ac1_peak = [ac1[x] for x in ac1_peak_indx]
    freq_ac1_peak = [freq_ac1[x] for x in ac1_peak_indx]

    # Plot autocorrelation
    plt.plot(freq_ac1, ac1)
    plt.plot(freq_ac1_peak, ac1_peak, 'r*', markersize=7)
    plt.xlabel('Frequency [microHz]')
    plt.ylabel('Autocorrelation')
Ejemplo n.º 3
0
"""

import as_f
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams.update({'font.size': 26})

# # Define test spectrum
x = np.linspace(0, 3000, 90000)
y = [np.sinc(0.1*(i-500))**2 + np.sinc(0.1*(i-1000))**2 + np.sinc(0.1*(i-1300))**2 for i in x]

# # Plot test spectrum
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('f(x)')
plt.legend(['f(x) = sinc(0.1*(x-500))^2 + sinc(0.1*(x-1000))^2 + sinc(0.1*(x-1300))^2'], fontsize=12)
plt.show()

# # Perform autocorrelation
correlation = as_f.autocorr(y)

# # Plot autocorrelation
plt.plot(x, correlation)
plt.xlabel('displacement of x')
plt.ylabel('Autocorrelation')
plt.legend(['Autocorrellation of f as a function of displacement of x'])
plt.show()


Ejemplo n.º 4
0
    c1 = 0
    c2 = len(p_filled) - 1

    # Autocorrelation data select
    freq_ds2 = freq_filled[c1:c2]
    p_ds2 = p_filled[c1:c2]

    # Plot selected interval
    plt.plot(freq_filled, p_filled)
    plt.xlabel('Frequency [' + r'mu' + 'Hz]')
    plt.ylabel('Signal/Noise ratio')
    plt.legend(['S/N peak data'])
    plt.show()

    # Autocorrelation function call
    ac2 = as_f.autocorr(p_ds2)

    # Construct frequency steps

    freq_ac2 = np.linspace(0,
                           freq_mean_diff * len(ac2),
                           num=len(ac2),
                           endpoint=False)

    # Limit to full frequency max
    cutindex = np.argmin([abs(x - freq_ac2[-1]) for x in freq_ac2])
    freq_ac2 = freq_ac2[0:cutindex]
    ac2 = ac2[0:cutindex]

    # Peak finding with specified min-peak-height
    ac2_peak_indx = detect_peaks(ac2, mph=0.02, show=False)
Ejemplo n.º 5
0
plt.close()

p_corr_select = p_autocorr[coord1:coord2]
freq_corr_select = freq_autocorr[coord1:coord2]

plt.plot(freq_autocorr, p_autocorr)
plt.plot(freq_corr_select, p_corr_select, 'r')
plt.xlabel('Frequency [' + r'mu' + 'Hz]')
plt.ylabel('Power Spectrum')
plt.legend(['Power spectrum reconstructed from peaks', 'Interval selected for autocorrelation'])
plt.show()

#  as_f.autocorrellator(freq_corr_select, p_corr_select)


correlation = as_f.autocorr(p_corr_select)

# # Reconstruct frequency steps
freq_autocorr_plot = np.linspace(0, freq_mean_diff*len(correlation), num=len(correlation), endpoint=False)
plt.plot(freq_autocorr_plot, correlation)
plt.xlabel('Frequency [' + r'mu' + 'Hz]')
plt.ylabel('Autocorrelation')

plt.show()

# # Find correlation frequencies
plt.plot(freq_autocorr_plot, correlation)
plt.xlim(-1, 0.7*freq_autocorr_plot[-1])
plt.ylim(-0.01, 0.4)
plt.xlabel('Frequency [' + r'mu' + 'Hz]')
plt.ylabel('Autocorrelation')