home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0020 - 0029 / ibm0020-0029 / ibm0028.tar / ibm0028 / MCAD254.ZIP / FFTFILT.MCD < prev    next >
Encoding:
Text File  |  1989-06-21  |  1.3 KB  |  61 lines

  1. .MCD 25000 0
  2. .CMD SURFACEFORMAT rot=10 tilt=35 vScale=20 size=15,30
  3. .CMD SKETCHFORMAT mag=1.000000,1.000000 center=0.500000,0.500000 size=15,30 box=y
  4. .CMD PLOTFORMAT logs=0,0 subdivs=1,1 size=5,15 type=l
  5. .CMD FORMAT  rd=d ct=10 im=i et=3 zt=15 pr=3 mass length time charge
  6. .CMD SET ORIGIN 0
  7. .CMD SET TOL 0.001000
  8. .CMD MARGIN 0
  9. .CMD LINELENGTH 78
  10. .CMD SET PRNCOLWIDTH 8
  11. .CMD SET PRNPRECISION 4
  12. .TXT 1 0 1 36 
  13. a1,35,33,34
  14. FILTERING A NOISY SIGNAL WITH FFT
  15. .TXT 2 0 1 20 
  16. a1,20,18,19
  17. Define the signal:
  18. .EQN 0 23 1 14 
  19. i:0;127
  20. .EQN 2 0 3 37 
  21. q[i:sin(i/128*14*π)+cos(i/128*19*π)
  22. .EQN 5 -12 7 50 
  23. 6&-6&q[i{1,1,6,45,l}@127&0&i
  24. .TXT 8 -11 1 17 
  25. a1,17,15,16
  26. Add some noise:
  27. .EQN 2 10 2 23 
  28. s[i:q[i+rnd(2)-1
  29. .EQN 3 1 7 50 
  30. 6&-6&s[i{1,1,6,45,l}@127&0&i
  31. .TXT 8 -11 1 38 
  32. a1,38,36,37
  33. Take its discrete fourier transform:
  34. .EQN 2 11 1 13 
  35. f:fft(s)
  36. .EQN 0 18 1 13 
  37. j:0;64
  38. .EQN 2 -18 1 10 
  39. α:2.5
  40. .TXT 0 13 2 51 
  41. a2,51,49,52
  42. ...define threshold for spectral noise rejection. 
  43.  
  44. .EQN 2 -13 7 24 
  45. 8&0&|f[j,α{1,1,6,15,dl}@64&0&j
  46. .TXT 1 29 1 12 
  47. a1,12,10,11
  48. <-- Signal
  49. .TXT 3 0 1 11 
  50. a1,11,9,10
  51. <-- Noise
  52. .TXT 4 -40 1 42 
  53. a1,41,39,40
  54. Filter, and take the inverse transform:
  55. .EQN 3 10 2 22 
  56. g[j:f[j*Φ(|f[j-α)
  57. .EQN 0 28 1 14 
  58. h:ifft(g)
  59. .EQN 3 -27 7 50 
  60. 6&-6&h[i{1,1,6,45,l}@127&0&i
  61.