- pandas
- numpy
- scipy
#padded
#scaling
import numpy as np
import re
import js
import os
from math import log
import pandas as pd
import asyncio
from scipy.signal import stft
from js import document, FileReader,console
from pyodide import create_proxy
async def fftjs(event):
document.getElementById("test-table").innerHTML=""
document.getElementById("test-graph").innerHTML=""
target = document.getElementById("input")
fl =target.files.to_py()
for i in fl:
data = str(await i.text())
data=re.sub('\s+', '|', data).split("|")
data.pop()
fs=int(document.getElementById("fsinput").value)
window=document.getElementById("windows").value
noverlap=document.getElementById("noverlap").value
noverlap=None if noverlap=='' else noverlap
padded=document.querySelector('#padded').checked
if len(data[0])>7:
data2=[]
for i in data:
if ";" in i:
data2.append(i.split(";"))
elif "," in i:
data2.append(i.split(","))
data2=np.array(data2,dtype="float").T
thisdict = {}
i=1
for array in data2:
str1="Column"
str2=str(i)
column=str1+str2
thisdict[column]=array
i+=1
df = pd.DataFrame(thisdict)
pyscript.write("test-table",df.to_html(justify='center'))
arrayofdftarrays=[[]]
i=0
for data in data2:
#Pencere Değeri al input ile
arrayofdftarrays.insert(i,list(stft(np.array(data,dtype="float"),fs=fs,window=window,noverlap=noverlap,padded=padded)))
i+=1
arrayofdftarrays.pop()
else:
data=np.array(data,dtype="float")
thisdict = {}
str1="Column 1"
thisdict[str1]=data
df = pd.DataFrame(thisdict)
pyscript.write("test-table",df.to_html(justify='center'))
arrayofdftarrays=[list(stft(np.array(data,dtype="float"),fs=fs,window=window,noverlap=noverlap,padded=padded))]
i=0
pisagors=[[]]
freqhertzs=[[]]
for dftarray in arrayofdftarrays[0][2]:
pisagor=[]
referance=np.mean(dftarray)
for cn in dftarray:
f=20*log(abs(cn)/abs(referance))
pisagor.append(f)
indexes=list(range(1,len(pisagor)+1))
freq=int(document.getElementById("fsinput").value)/len(indexes)
freqhertz=[freq*i for i in indexes]
pisagors.insert(i,pisagor)
freqhertzs.insert(i,freqhertz)
i+=1
js.createObject(create_proxy(pisagors), "pisagors")
js.createObject(create_proxy(arrayofdftarrays[0][1]), "f")
js.createObject(create_proxy(arrayofdftarrays[0][0]), "t")
js.plot()
def main():
file_event = create_proxy(fftjs)
e = document.getElementById("submit-button")
e.addEventListener("click", file_event, False)
main()