Dft
- 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()