- pandas
- numpy
- scipy
import numpy as np
import re
import js
import os
from math import log
import pandas as pd
import asyncio
from scipy.fft import ifft
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()
document.getElementById("test-table").innerHTML=data
if data[0].count('j')>1:
data2=[]
for i in data:
if ";" in i:
data2.append(i.split(";"))
elif "," in i:
data2.append(i.split(","))
data2=np.array(data2,dtype="complex128").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:
arrayofdftarrays.insert(i,list(ifft(np.array(data))))
i+=1
arrayofdftarrays.pop()
else:
data=np.array(data,dtype="complex128")
thisdict = {}
str1="Column 1"
thisdict[str1]=data
df = pd.DataFrame(thisdict)
pyscript.write("test-table",df.to_html(justify='center'))
arrayofdftarrays=[list(ifft(np.array(data,dtype="complex128")))]
i=0
pisagors=[[]]
freqhertzs=[[]]
for dftarray in arrayofdftarrays:
pisagor=[]
referance=np.mean(dftarray)
for cn in dftarray:
f=1*abs(cn)
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(arrayofdftarrays), "arrayofdftarrays")
js.createObject(create_proxy(pisagors), "pisagors")
js.createObject(create_proxy(freqhertzs), "freqhertzs")
js.plot()
def main():
file_event = create_proxy(fftjs)
e = document.getElementById("submit-button")
e.addEventListener("click", file_event, False)
main()