Esempio n. 1
0
 def filteringData(self, data):
     syg = ag.pasmowozaporowy(data, self.fs, self.notchCutOff1,
                              self.notchCutOff2)
     syg = ag.pasmowoprzepustowy(syg, self.fs, self.bandpassCutOff1,
                                 self.bandpassCutOff2)
     return self.normalizeData(syg[5 * self.fs:(5 + self.seconds) *
                                   self.fs])
Esempio n. 2
0
 def filteringData(self, filePath):
     data = np.genfromtxt(filePath, delimiter=",")
     data = data.T
     syg = ag.pasmowozaporowy(data[self.electrodeNumber],
                              self.numberOfGenes, self.notchCutOff1,
                              self.notchCutOff2)
     syg = ag.pasmowoprzepustowy(syg, self.numberOfGenes,
                                 self.bandpassCutOff1, self.bandpassCutOff2)
     return self.normalizeData(syg[5 * self.numberOfGenes:6 *
                                   self.numberOfGenes])
Esempio n. 3
0
dane = pd.read_csv('sub-01_trial-01.csv',
                   names=['numer', 'ch1', 'ch2', 'ch3', 'ch4', 'bodziec'])

czas = int(len(dane['ch1']) / czestProbkowania)
t = np.linspace(0, czas, czas * czestProbkowania)

#wykres przed filtracją
plt.plot(t, dane['ch1'][0:czas * czestProbkowania])
plt.xlabel("Czas [s]")
plt.ylabel("Amplituda [mV]")
plt.show()

#filtracja
przefiltrowany1 = ag.pasmowozaporowy(dane['ch1'], czestProbkowania, 49, 51)
przefiltrowany2 = ag.pasmowoprzepustowy(przefiltrowany1, czestProbkowania, 1,
                                        50)

#wykres po filtracji
plt.plot(t, przefiltrowany2[0:czas * czestProbkowania])
plt.xlabel("Czas [s]")
plt.ylabel("Amplituda [mV]")
plt.show()

#pętla przedstawiająca wymrugane cyfry
kod = []
cnt = 0
prev = 0
for i in przefiltrowany2:
    if i >= 0.1 and prev < 0.1:
        kod.append(dane['bodziec'][cnt])
    prev = i
Esempio n. 4
0
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import aseegg as ag

dane = pd.read_csv(r"sub-01_trial-05.csv", delimiter=',', engine='python')
czestosc_probkowania = 200

t = np.linspace(0, 37.96, 200 * 37.96)
sygnal = dane["k2"]

filtr = ag.pasmowozaporowy(sygnal, czestosc_probkowania, 49, 51)
filtr2 = ag.pasmowoprzepustowy(filtr, czestosc_probkowania, 1, 50)

plt.plot(sygnal)  #Rycina 1. Wykresy sygnału przed filtracją.
plt.plot(filtr2)  #Rycina 2. Wykresy sygnału po filtracji.
plt.xlabel("Czas [s]")
plt.ylabel("Amplituda [-]")
plt.show()
    return child1, child2

def create_population(size1,size2):
    return  np.asarray([[int(round(random.random(),0)) for x in range(size1)] for y in range(size2)])

def tournament_selection(population,fitness):
    new_population=[]
    for i in range(len(fitness)):
        players_list=random.sample(range(len(fitness)), players_in_tournament)
        players_fitness=[fitness[players_list[j]] for j in range(len(players_list))]
        new_population.append(population[:,players_list[players_fitness.index(max(players_fitness))]])
        #print(players_list[players_fitness.index(max(players_fitness))], max(players_fitness))
    return np.asarray(new_population).T

t=np.linspace(0,1,250)
signal14=ag.pasmowoprzepustowy(0.1*np.sin(2*np.pi*t*14)+[0.9*random.random() for x in range(250)],250,1,50)
signal8=ag.pasmowoprzepustowy(0.1*np.sin(2*np.pi*t*8)+[0.9*random.random() for x in range(250)],250,1,50)

def bin2dec(bin_list):
    return sum([bin_list[i]*pow(2,len(bin_list)-i-1) for i in range(len(bin_list)-1,-1,-1)])

def decode_indv(indv):
    signal=np.empty([250])
    for i in range(0,len(indv),n_bits):
        indv_float= pow(-1,i+1)*exp(pow(-1,i)*bin2dec(indv[i+2:i+n_bits]))
        if i%(n_bits*2)==0:
            signal=signal+indv_float*np.sin(2*np.pi*(int(i/(n_bits*2))+1)*t)
        else:
            signal=signal+indv_float*np.cos(2*np.pi*(int(i/(n_bits*2))+1)*t)

    mmin=min(signal)
Esempio n. 6
0
import numpy as np
import matplotlib.pyplot as plt
import aseegg as ag
import pandas as pd
import scipy.stats as st

dane = pd.read_csv(r"sub-01_trial-03.csv", delimiter=',', engine='python')
prob = 200

t = np.linspace(0, 37.96, 200 * 37.96)
sygnal = dane['kol2']

sygnalfiltr = ag.pasmowozaporowy(sygnal, prob, 49, 51)
sygnalfiltr2 = ag.pasmowoprzepustowy(sygnalfiltr, prob, 1, 50)

plt.plot(sygnalfiltr2)
plt.xlabel("Czas [s]")
plt.ylabel("Amplituda [-]")
plt.show()

koda = []
for i in range(len(sygnalfiltr2)):
    if sygnalfiltr2[i] > 0.2:
        koda.append(dane.kol6[i])
koda2 = []
for i in range(len(koda)):
    if koda[i] != koda[i - 1]:
        koda2.append(koda[i])
print("Wymrugany kod:", koda2)
Esempio n. 7
0
    names=['-', 'kanal1', 'kanal2', 'kanal3', 'kanal4', 'cyfra'])
fs = 200
data1 = data['kanal1']
data4 = data['cyfra']
t = int(len(data1) / fs)
#linspace(first number, last number, how many numbers in array)
x = np.linspace(0, t, t * fs)
#prefiltered
plt.plot(x, data1[0:t * fs], label='sygnał')
plt.ylabel('mikrowolty [mV]')
plt.xlabel('czas [s]')
plt.legend(loc='upper right')
#plt.show()
#filtered
filtr1 = ag.pasmowozaporowy(data1, fs, 49, 51)
filtr2 = ag.pasmowoprzepustowy(filtr1, fs, 1, 50)
plt.plot(x, filtr2[0:t * fs], label='sygnał')
plt.ylabel('mikrowolty [mV]')
plt.xlabel('czas [s]')
plt.legend(loc='upper right')
#plt.show()
plt.plot(x, data4[0:t * fs])
plt.ylabel('cyfra [-]')
plt.xlabel('czas [s]')
plt.legend(loc='upper right')
#plt.show()
#decoded(print())
#przefiltrowany sygnal, mrugnięcia to wzniesienie na y, wzniesienie czyli wartość y większą od Q, ale w przedziale od Q do Q, do każdej wartości dopasowana jest cyfra, dodać tę cyfrę do arraya

#Q = 0.12 wyczytane z
licznik = 0
Esempio n. 8
0
dane = pd.read_csv(r"C:\Users\jpalu\Desktop\sub1trial10.csv",
                   delimiter=',',
                   engine='python')
sygnal = dane['kolumna2']
wyswietlane = dane['kolumna6']

t = np.linspace(0, 37.89, 200 * 37.89)
probkowanie = 200
czestOdciecia1 = 49
czestOdciecia2 = 51
przefiltrowany = ag.pasmowozaporowy(sygnal, probkowanie, czestOdciecia1,
                                    czestOdciecia2)

przepust1 = 1
przepust2 = 50
przepuszczony = ag.pasmowoprzepustowy(sygnal, probkowanie, przepust1,
                                      przepust2)

#filtracja sygnału- filtry: pasmowozaporowy i pasmowoprzepustowy
'''plt.subplot(3,1,1)
plt.plot(t,sygnal)
plt.title("Sygnał dla danych sub1trial10")
plt.xlabel('Czas [s]')
plt.ylabel('Amplituda [-]')
plt.subplot(3,1,2)
plt.plot(t,przefiltrowany)
plt.title("Sygnał po zastosowaniu filtra pasmowozaporowego")
plt.xlabel('Czas [s]')
plt.ylabel('Amplituda [-]')
plt.subplot(3,1,3)
plt.plot(t,przepuszczony)
plt.title("Sygnał po zastosowaniu filtra pasmowoprzepustowego")
Esempio n. 9
0
import pandas as pd
import aseegg as ag
dane = pd.read_csv(r"sub-01_trial-07.csv", delimiter=',', engine='python')
sygnal = dane['2']
liczby = dane['6']
t = np.linspace(0, 113.165, 200 * 113.165)

plt.subplot(2, 1, 1)
plt.plot(t, sygnal)
plt.xlim([0, 35])
plt.xlabel("Czas [s]")
plt.ylabel("Amplituda [-]")
plt.title("Ryc. 1.1. Sygnał przed filtracją")

przefiltrowany = ag.pasmowozaporowy(sygnal, 200, 49, 51)
przefiltrowany2 = ag.pasmowoprzepustowy(przefiltrowany, 200, 1, 50)
plt.subplot(2, 1, 2)
plt.plot(t, przefiltrowany2)
plt.xlim([0, 35])
plt.xlabel("Czas [s]")
plt.ylabel("Amplituda [-]")
plt.title("Ryc. 1.2. Sygnał przefiltrowany")
plt.show()

plt.plot(t, liczby)
plt.xlim([0, 35])
plt.xlabel("Czas [s]")
plt.ylabel("Amplituda [-]")
plt.show()

tab = []
Esempio n. 10
0
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import aseegg as ag
dane = pd.read_csv(r"sub-007_trial-07.csv", delimiter=',', engine='python')
baza = pd.DataFrame(dane)
sygnal = baza["b"]
liczba = baza["f"]
t = np.linspace(0, 37.84, 200 * 37.84)
sygnalprzef = ag.pasmowozaporowy(sygnal, 200, 49, 51)
sygnalprzefiltrowany = ag.pasmowoprzepustowy(sygnalprzef, 200, 1, 50)
plt.plot(t, sygnal)
plt.ylabel("Amplituda [-]")
plt.xlabel("Czas [s]")
plt.show()
plt.plot(t, sygnalprzef)
plt.ylabel("Amplituda [-]")
plt.xlabel("Czas [s]")
plt.show()
plt.plot(t, sygnalprzefiltrowany)
plt.ylabel("Amplituda [-]")
plt.xlabel("Czas [s]")
plt.show()
print(sygnal.mean())
print(sygnal.max())
print((1.5847468537697242 + 3.719023605585575) / 2)
mrug = []
mrug2 = []
j = 1
for i in range(len(sygnal)):
    if sygnal[i] > 1.8:
Esempio n. 11
0
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import aseegg as ag

t = np.linspace(0, 37.97, 200 * 37.97)
prob = 200
dane = pd.read_csv(r"sub1trial20.csv", delimiter=',', engine='python')
sygnal = dane["kol1"]
sygnal1 = dane["kol5"]

przefiltrowany = ag.pasmowozaporowy(sygnal, prob, 49, 51)
przefiltrowany = ag.pasmowoprzepustowy(przefiltrowany, prob, 1, 50)

plt.subplot(2, 2, 1)
plt.title("Sygnał")
plt.ylabel('Amplituda [µV]')
plt.xlabel('Czas [s]')
plt.plot(t, sygnal)

plt.subplot(2, 2, 3)
plt.title("Cyfry wyświetlane na ekranie")
plt.ylabel('Wyświetlana cyfra')
plt.xlabel('Czas [s]')
plt.plot(t, sygnal1)

plt.subplot(2, 2, 2)
plt.title("Przefiltrowany sygnał")
plt.ylabel('Amplituda [µV]')
plt.xlabel('Czas [s]')
plt.plot(t, przefiltrowany)
Esempio n. 12
0
 def filtering_data(self, data):
     syg = ag.pasmowozaporowy(data, self.fs, self.notch_cut_off1,
                              self.notch_cut_off2)
     syg = ag.pasmowoprzepustowy(syg, self.fs, self.bandpass_cut_off1,
                                 self.bandpass_cut_off2)
     return syg[:self.max_sec * self.fs]
Esempio n. 13
0
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import csv

data = pd.read_csv('sub1trial8.csv', delimiter=',', engine='python')
data.columns = ['-','kanal1', 'kanal2', 'kanal3', 'kanal4','cyfra' ]
fs=200
dlugosc = data['-']
kanal1=data['kanal1']
#print(kanal1)
t = 7589/fs
t = int(t)
x =np.linspace(0,t,t*fs)
filtrowaniezaporowe = ag.pasmowozaporowy(kanal1, fs, 49, 51)
filtrowanieprzepustowe = ag.pasmowoprzepustowy(filtrowaniezaporowe, fs, 1, 50)
#oprócz starej pętli mógłbym spróbować zrobić coś z tej, która printuje czas, w którym osoba mrugnęła i dopasować go do cyfry, jednak nie mam czasu z związku z sesją
#licznik=0
#z = 0
#czasmrugania = []
#for i in filtrowanieprzepustowe:
#    if i>=0.10 and z<0.10:
    #    czasmrugania.append([licznik/200])

#    z=i
#    licznik+=1
#print(czasmrugania)
licznik=0
z = 0
mrugane = []
for i in filtrowanieprzepustowe:
Esempio n. 14
0
dane = pd.read_csv(
    "C:/Users/Oliwia/Desktop/zadanie/proba113.csv",
    delimiter=',',
    engine="python",
    names=['number', 'sub01', 'sub02', 'sub03', 'sub04', 'last'])

#1 kolumna
signal = dane['sub01']
probkowanie = 200
time = len(signal) / 200
t = np.linspace(0, time, time * 200)

#filter
filter1 = ag.pasmowozaporowy(signal, probkowanie, 49, 51)
filter2 = ag.pasmowoprzepustowy(filter1, probkowanie, 1, 50)

#before
#plt.plot(t, signal, color="red")
#plt.xlabel("Czas[s]",size=10)
#plt.ylabel("Amplituda[-]",size=10)
#plt.show()

#after
#plt.plot(t,filter2, color ="brown")
#plt.xlabel("Czas[s]",size=10)
#plt.ylabel("Amplituda[-]",size=10)
#plt.show()

#last column
#last = dane['last']
Esempio n. 15
0
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import aseegg as ag


dane = pd.read_csv('sub-01_trial-03.csv', delimiter=',', engine='python')
mojeDane = dane[1]
czestotliwoscp = 200


przefiltrowane = ag.pasmowoprzepustowy(mojeDane, czestotliwoscp, 1,50)
przefiltrowane = ag.pasmowozaporowy(przefiltrowane, czestotliwoscp, 49, 51)

ag.spektrogram(mojeDane, 200)
ag.spektrogram(przefiltrowane, 200)
Esempio n. 16
0
import aseegg as ag
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

dane = pd.read_csv("sub1trial4.csv", names=['numer','kanal1','kanal2','kanal3','kanal4','wartosc'])

kanal1 = dane['kanal1']
wartosc = dane['wartosc']
probkowanie=200

popasmowozaporowy= ag.pasmowozaporowy(kanal1, probkowanie, 49, 51)
popasmowoprzepustowy= ag.pasmowoprzepustowy(popasmowozaporowy, probkowanie, 1, 50)

wartoscpoprzednia=0
for i in range(len(popasmowoprzepustowy)):
    if popasmowoprzepustowy[i]>=0.1:
        if wartoscpoprzednia<0.1:
            print(wartosc[i])
    wartoscpoprzednia=popasmowoprzepustowy[i]
def read_data(filePath):
    data = pd.read_csv(filePath, delimiter=",", engine="python", header=None)
    syg = ag.pasmowozaporowy(data.T.loc[14], 256, 49, 51)
    syg = ag.pasmowoprzepustowy(syg, 256, 1, 50)
    return pd.Series(syg[5 * 256:6 * 256])
czestotliwosc1 = 10
czestotliwosc2 = 25
czestotliwosc3 = 40
czestProbkowania = 500
a1 = 5
a2 = 10
a3 = 20
czas = 1
czas2 = 3
t = np.linspace(0, czas, czas * czestProbkowania)
t2 = np.linspace(0, czas2, czas2 * czestProbkowania)
f = np.linspace(0, 256, 3*500)
sygnal=np.concatenate([np.concatenate([a1*np.sin(2*np.pi*czestotliwosc1*t), a2*np.sin(2*np.pi*czestotliwosc2*t)]), a3*np.sin(2*np.pi*czestotliwosc3*t)])
transformata = ag.FFT(sygnal)
przefiltrowany = ag.pasmowoprzepustowy(sygnal, czestProbkowania, 15,30)
transformata2 = ag.FFT(przefiltrowany)

plt.plot(t2, sygnal)
plt.xlabel("Czas [s]")
plt.ylabel("Amplituda [-]")
plt.show()
plt.plot(t2, przefiltrowany)
plt.xlabel("Czas [s]")
plt.ylabel("Amplituda [-]")
plt.show()
plt.stem(f, transformata)
plt.xlabel("Częstotliwość [Hz]")
plt.ylabel("Amplituda [-]")
plt.show()
plt.stem(f, transformata2)
Esempio n. 19
0
 def filtering_data(self,data):
     syg=ag.pasmowozaporowy(data, self.fs, self.notch_cut_off1,self.notch_cut_off2)
     syg=ag.pasmowoprzepustowy(syg, self.fs, self.bandpass_cut_off1,self.bandpass_cut_off2)
     return self.normalize_data(syg[self.fs*5+36:(5+self.seconds)*self.fs+36])
Esempio n. 20
0
import numpy as np
import matplotlib.pyplot as plt
import aseegg as ag
import pandas as pd

dane = pd.read_csv(r"C:\Users\NataliaA\Desktop\hci\sub-01_trial-04_3.csv",
                   delimiter=',',
                   engine='python')
czestProbk = 200
t = np.linspace(0, 37.96, 200 * 37.96)
sygnal = dane['Kol1']
zfiltrem = ag.pasmowozaporowy(sygnal, czestProbk, 49, 51)
zfiltrem2 = ag.pasmowoprzepustowy(sygnal, czestProbk, 1, 50)
plt.plot(t, sygnal)
plt.xlabel("Czas [s]")
plt.ylabel("Amplituda [-]")
plt.show()

plt.plot(t, zfiltrem)
plt.xlabel("Czas [s]")
plt.ylabel("Amplituda [-]")
plt.show()

plt.plot(t, zfiltrem2)
plt.xlabel("Czas [s]")
plt.ylabel("Amplituda [-]")
plt.show()

print(dane)