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
JavaScript
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}