UNPKG

ziko

Version:

a versatile javaScript framework offering a rich set of UI components, advanced mathematical utilities, reactivity, animations, client side routing and graphics capabilities

110 lines (109 loc) 2.77 kB
import { mapfun } from "../utils/index.js"; import { abs , sinc , sign , sin } from "../functions/index.js" import { Random } from "../random/index.js"; import { zeros, ones, nums, arange, linspace, logspace, geomspace, map, norm, lerp, clamp, } from "./functions.js"; import{ fft, ifft } from "./fft.js" import { conv, conv1d, conv2d, circularConv, linearConv, circularConv1d, linearConv1d, circularConv2d, linearConv2d } from "./conv.js"; import { filter } from "./filter.js"; //import { Matrix } from "../Matrix/index.js"; const Signal={ zeros, ones, nums, arange, linspace, logspace, geomspace, map, norm, lerp, clamp, noise(n,min = 0,max = 1){ return Random.floats(n,min,max); }, echelon(t,t0 = 0 , A = 1){ if(!(t instanceof Array))t=[t]; const Y = mapfun(n=>n>=t0?1:0,...t); return Y instanceof Array ? Y.map(n=>n*A) : Y*A }, rampe(t,t0 = 0 , A = 1){ if(!(t instanceof Array))t=[t] const Y = mapfun(n=>n>=t0?n-t0:0,...t); return Y instanceof Array ? Y.map(n=>n*A) : Y*A }, sign(t,t0 = 0 , A = 1){ if(!(t instanceof Array))t=[t] const Y = mapfun(n=>Math.sign(n-t0),...t); return Y instanceof Array ? Y.map(n=>n*A) : Y*A }, rect(t,T,t0 = 0, A = 1){ if(!(t instanceof Array))t=[t]; const Y = mapfun(n=>((t0-T/2 < n) && (t0+T/2 > n)? 1 - 2 * abs(n/T) : 0),...t) return Y instanceof Array ? Y.map(n=>n*A) : Y*A }, tri(t,T,t0 = 0 , A = 1){ if(!(t instanceof Array))t=[t] const Y = mapfun(n=>((t0-T/2 < n) && (t0+T/2 > n)? 1 - 2 * abs(n/T) : 0),...t) return Y instanceof Array ? Y.map(n=>n*A) : Y*A; }, dirac(t,t0){ return mapfun(n=>n===t0?Infinity:0,...t); }, lorentz(t , t0 = 0 , A = 1){ if(!(t instanceof Array))t=[t] const Y = mapfun(n => 1/(1+(n-t0)**2),...t); return Y instanceof Array ? Y.map(n=>n*A) : Y*A; }, sinc(t , t0 , A = 1){ if(!(t instanceof Array))t=[t] const Y = mapfun(n=>sinc(n-t0),...t); return Y instanceof Array ? Y.map(n=>n*A) : Y*A; }, square(t,T=1,A=1){ if(!(t instanceof Array))t=[t] const Y = mapfun(n=>sign(sin(n*2*Math.PI/T)),...t); return Y instanceof Array ? Y.map(n=>n*A) : Y*A; }, sawtooth(){ }, conv, conv1d, conv2d, circularConv, linearConv, circularConv1d, linearConv1d, circularConv2d, linearConv2d, fft, ifft, filter, } export{Signal}