Advertisement
Guest User

TFD

a guest
Mar 21st, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.66 KB | None | 0 0
  1. let xn=[
  2. {index:0,value:0},
  3. {index:1,value:1},
  4. {index:2,value:0},
  5. {index:3,value:-1},
  6. {index:4,value:0},
  7. {index:5,value:1},
  8. {index:6,value:0},
  9. {index:7,value:-1},
  10. ];
  11. let X = TFD(xn);
  12. let xk = xn.map(d=>({index:d.index,value:X(d.index)}));
  13. console.log(xk.map(d=>Math.round(d.value*1000)/1000));
  14.  
  15. function TFD(input){
  16. let Z=2*Math.PI/input.length;
  17. let notNulls=input.filter(d=>d.value!=0);
  18. function X(k){
  19. let cosSum = notNulls.reduce((acc,d)=>(acc+Math.cos(Z*d.index*k)*d.value),0);
  20. let sinSum = notNulls.reduce((acc,d)=>(acc+Math.sin(Z*d.index*k)*d.value),0);
  21. return Math.sqrt(cosSum*cosSum+sinSum*sinSum);
  22. }
  23. return X;
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement