Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let xn=[
- {index:0,value:0},
- {index:1,value:1},
- {index:2,value:0},
- {index:3,value:-1},
- {index:4,value:0},
- {index:5,value:1},
- {index:6,value:0},
- {index:7,value:-1},
- ];
- let X = TFD(xn);
- let xk = xn.map(d=>({index:d.index,value:X(d.index)}));
- console.log(xk.map(d=>Math.round(d.value*1000)/1000));
- function TFD(input){
- let Z=2*Math.PI/input.length;
- let notNulls=input.filter(d=>d.value!=0);
- function X(k){
- let cosSum = notNulls.reduce((acc,d)=>(acc+Math.cos(Z*d.index*k)*d.value),0);
- let sinSum = notNulls.reduce((acc,d)=>(acc+Math.sin(Z*d.index*k)*d.value),0);
- return Math.sqrt(cosSum*cosSum+sinSum*sinSum);
- }
- return X;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement