home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG091.ARK / FFT.FOR < prev    next >
Text File  |  1984-04-29  |  27KB  |  509 lines

  1. C************************************************************
  2. C
  3. C 1024 POINT RADIX 2 DECIMATION-IN-TIME FFT
  4. C
  5. C Cooley-Tukey algorithm.
  6. C Written by Victor De Pinto
  7. C Revised Jan. 11, 1982
  8. C
  9.       PROGRAM FFT1K
  10.       DIMENSION DATA(2,1024), W(2,512)
  11.       LOGICAL*1 FN1(11), FN2(11)
  12.       DATA
  13.      X  W(1,  1),W(1,  2),W(1,  3),W(1,  4),W(1,  5)/
  14.      X   .9999812,  .9999247,  .9998306,  .9996988,  .9995294/
  15.      X ,W(1,  6),W(1,  7),W(1,  8),W(1,  9),W(1, 10)/
  16.      X   .9993224,  .9990777,  .9987955,  .9984756,  .9981181/
  17.      X ,W(1, 11),W(1, 12),W(1, 13),W(1, 14),W(1, 15)/
  18.      X   .9977231,  .9972905,  .9968203,  .9963126,  .9957674/
  19.      X ,W(1, 16),W(1, 17),W(1, 18),W(1, 19),W(1, 20)/
  20.      X   .9951847,  .9945646,  .9939070,  .9932119,  .9924795/
  21.      X ,W(1, 21),W(1, 22),W(1, 23),W(1, 24),W(1, 25)/
  22.      X   .9917098,  .9909026,  .9900582,  .9891765,  .9882576/
  23.      X ,W(1, 26),W(1, 27),W(1, 28),W(1, 29),W(1, 30)/
  24.      X   .9873014,  .9863081,  .9852776,  .9842101,  .9831055/
  25.      X ,W(1, 31),W(1, 32),W(1, 33),W(1, 34),W(1, 35)/
  26.      X   .9819639,  .9807853,  .9795698,  .9783174,  .9770281/
  27.      X ,W(1, 36),W(1, 37),W(1, 38),W(1, 39),W(1, 40)/
  28.      X   .9757021,  .9743394,  .9729400,  .9715039,  .9700313/
  29.      X ,W(1, 41),W(1, 42),W(1, 43),W(1, 44),W(1, 45)/
  30.      X   .9685221,  .9669765,  .9653944,  .9637761,  .9621214/
  31.      X ,W(1, 46),W(1, 47),W(1, 48),W(1, 49),W(1, 50)/
  32.      X   .9604305,  .9587035,  .9569403,  .9551412,  .9533060/
  33.      X ,W(1, 51),W(1, 52),W(1, 53),W(1, 54),W(1, 55)/
  34.      X   .9514350,  .9495282,  .9475856,  .9456073,  .9435935/
  35.      X ,W(1, 56),W(1, 57),W(1, 58),W(1, 59),W(1, 60)/
  36.      X   .9415441,  .9394592,  .9373390,  .9351835,  .9329928/
  37.      X ,W(1, 61),W(1, 62),W(1, 63),W(1, 64),W(1, 65)/
  38.      X   .9307670,  .9285061,  .9262102,  .9238795,  .9215140/
  39.      X ,W(1, 66),W(1, 67),W(1, 68),W(1, 69),W(1, 70)/
  40.      X   .9191139,  .9166791,  .9142098,  .9117060,  .9091680/
  41.      X ,W(1, 71),W(1, 72),W(1, 73),W(1, 74),W(1, 75)/
  42.      X   .9065957,  .9039893,  .9013488,  .8986745,  .8959662/
  43.      X ,W(1, 76),W(1, 77),W(1, 78),W(1, 79),W(1, 80)/
  44.      X   .8932243,  .8904487,  .8876396,  .8847971,  .8819213/
  45.      X ,W(1, 81),W(1, 82),W(1, 83),W(1, 84),W(1, 85)/
  46.      X   .8790122,  .8760701,  .8730950,  .8700870,  .8670462/
  47.      X ,W(1, 86),W(1, 87),W(1, 88),W(1, 89),W(1, 90)/
  48.      X   .8639729,  .8608669,  .8577286,  .8545580,  .8513552/
  49.      X ,W(1, 91),W(1, 92),W(1, 93),W(1, 94),W(1, 95)/
  50.      X   .8481203,  .8448536,  .8415550,  .8382247,  .8348629/
  51.      X ,W(1, 96),W(1, 97),W(1, 98),W(1, 99),W(1,100)/
  52.      X   .8314696,  .8280450,  .8245893,  .8211025,  .8175848/
  53.      X ,W(1,101),W(1,102),W(1,103),W(1,104),W(1,105)/
  54.      X   .8140363,  .8104572,  .8068476,  .8032075,  .7995373/
  55.      X ,W(1,106),W(1,107),W(1,108),W(1,109),W(1,110)/
  56.      X   .7958369,  .7921066,  .7883464,  .7845566,  .7807372/
  57.      X ,W(1,111),W(1,112),W(1,113),W(1,114),W(1,115)/
  58.      X   .7768885,  .7730105,  .7691033,  .7651673,  .7612024/
  59.      X ,W(1,116),W(1,117),W(1,118),W(1,119),W(1,120)/
  60.      X   .7572088,  .7531868,  .7491364,  .7450578,  .7409511/
  61.      X ,W(1,121),W(1,122),W(1,123),W(1,124),W(1,125)/
  62.      X   .7368166,  .7326543,  .7284644,  .7242471,  .7200025/
  63.      X ,W(1,126),W(1,127),W(1,128),W(1,129),W(1,130)/
  64.      X   .7157308,  .7114322,  .7071068,  .7027547,  .6983762/
  65.      X ,W(1,131),W(1,132),W(1,133),W(1,134),W(1,135)/
  66.      X   .6939715,  .6895405,  .6850837,  .6806010,  .6760927/
  67.      X ,W(1,136),W(1,137),W(1,138),W(1,139),W(1,140)/
  68.      X   .6715590,  .6669999,  .6624158,  .6578067,  .6531728/
  69.      X ,W(1,141),W(1,142),W(1,143),W(1,144),W(1,145)/
  70.      X   .6485144,  .6438315,  .6391244,  .6343933,  .6296382/
  71.      X ,W(1,146),W(1,147),W(1,148),W(1,149),W(1,150)/
  72.      X   .6248595,  .6200572,  .6152316,  .6103828,  .6055110/
  73.      X ,W(1,151),W(1,152),W(1,153),W(1,154),W(1,155)/
  74.      X   .6006165,  .5956993,  .5907597,  .5857979,  .5808140/
  75.      X ,W(1,156),W(1,157),W(1,158),W(1,159),W(1,160)/
  76.      X   .5758082,  .5707807,  .5657318,  .5606616,  .5555702/
  77.      X ,W(1,161),W(1,162),W(1,163),W(1,164),W(1,165)/
  78.      X   .5504580,  .5453250,  .5401715,  .5349976,  .5298036/
  79.      X ,W(1,166),W(1,167),W(1,168),W(1,169),W(1,170)/
  80.      X   .5245897,  .5193560,  .5141027,  .5088301,  .5035384/
  81.      X ,W(1,171),W(1,172),W(1,173),W(1,174),W(1,175)/
  82.      X   .4982277,  .4928982,  .4875502,  .4821838,  .4767992/
  83.      X ,W(1,176),W(1,177),W(1,178),W(1,179),W(1,180)/
  84.      X   .4713967,  .4659765,  .4605387,  .4550836,  .4496113/
  85.      X ,W(1,181),W(1,182),W(1,183),W(1,184),W(1,185)/
  86.      X   .4441221,  .4386162,  .4330938,  .4275551,  .4220003/
  87.      X ,W(1,186),W(1,187),W(1,188),W(1,189),W(1,190)/
  88.      X   .4164296,  .4108432,  .4052413,  .3996242,  .3939920/
  89.      X ,W(1,191),W(1,192),W(1,193),W(1,194),W(1,195)/
  90.      X   .3883450,  .3826834,  .3770074,  .3713172,  .3656130/
  91.      X ,W(1,196),W(1,197),W(1,198),W(1,199),W(1,200)/
  92.      X   .3598950,  .3541635,  .3484187,  .3426607,  .3368899/
  93.      X ,W(1,201),W(1,202),W(1,203),W(1,204),W(1,205)/
  94.      X   .3311063,  .3253103,  .3195020,  .3136817,  .3078496/
  95.      X ,W(1,206),W(1,207),W(1,208),W(1,209),W(1,210)/
  96.      X   .3020059,  .2961509,  .2902847,  .2844075,  .2785197/
  97.      X ,W(1,211),W(1,212),W(1,213),W(1,214),W(1,215)/
  98.      X   .2726214,  .2667128,  .2607941,  .2548657,  .2489276/
  99.      X ,W(1,216),W(1,217),W(1,218),W(1,219),W(1,220)/
  100.      X   .2429802,  .2370236,  .2310581,  .2250839,  .2191012/
  101.      X ,W(1,221),W(1,222),W(1,223),W(1,224),W(1,225)/
  102.      X   .2131103,  .2071114,  .2011046,  .1950903,  .1890687/
  103.      X ,W(1,226),W(1,227),W(1,228),W(1,229),W(1,230)/
  104.      X   .1830399,  .1770042,  .1709619,  .1649131,  .1588581/
  105.      X ,W(1,231),W(1,232),W(1,233),W(1,234),W(1,235)/
  106.      X   .1527972,  .1467305,  .1406582,  .1345807,  .1284981/
  107.      X ,W(1,236),W(1,237),W(1,238),W(1,239),W(1,240)/
  108.      X   .1224107,  .1163186,  .1102222,  .1041216,  .0980171/
  109.      X ,W(1,241),W(1,242),W(1,243),W(1,244),W(1,245)/
  110.      X   .0919090,  .0857973,  .0796824,  .0735646,  .0674439/
  111.      X ,W(1,246),W(1,247),W(1,248),W(1,249),W(1,250)/
  112.      X   .0613207,  .0551952,  .0490677,  .0429383,  .0368072/
  113.      X ,W(1,251),W(1,252),W(1,253),W(1,254),W(1,255)/
  114.      X   .0306748,  .0245412,  .0184067,  .0122715,  .0061359/
  115.      X ,W(1,256),W(1,257),W(1,258),W(1,259),W(1,260)/
  116.      X  -.0000000, -.0061359, -.0122715, -.0184067, -.0245412/
  117.      X ,W(1,261),W(1,262),W(1,263),W(1,264),W(1,265)/
  118.      X  -.0306748, -.0368072, -.0429383, -.0490677, -.0551952/
  119.      X ,W(1,266),W(1,267),W(1,268),W(1,269),W(1,270)/
  120.      X  -.0613207, -.0674439, -.0735646, -.0796824, -.0857973/
  121.      X ,W(1,271),W(1,272),W(1,273),W(1,274),W(1,275)/
  122.      X  -.0919090, -.0980171, -.1041216, -.1102222, -.1163186/
  123.      X ,W(1,276),W(1,277),W(1,278),W(1,279),W(1,280)/
  124.      X  -.1224107, -.1284981, -.1345807, -.1406582, -.1467305/
  125.      X ,W(1,281),W(1,282),W(1,283),W(1,284),W(1,285)/
  126.      X  -.1527972, -.1588581, -.1649131, -.1709619, -.1770042/
  127.      X ,W(1,286),W(1,287),W(1,288),W(1,289),W(1,290)/
  128.      X  -.1830399, -.1890687, -.1950903, -.2011046, -.2071114/
  129.      X ,W(1,291),W(1,292),W(1,293),W(1,294),W(1,295)/
  130.      X  -.2131103, -.2191012, -.2250839, -.2310581, -.2370236/
  131.      X ,W(1,296),W(1,297),W(1,298),W(1,299),W(1,300)/
  132.      X  -.2429802, -.2489276, -.2548657, -.2607941, -.2667128/
  133.      X ,W(1,301),W(1,302),W(1,303),W(1,304),W(1,305)/
  134.      X  -.2726214, -.2785197, -.2844075, -.2902847, -.2961509/
  135.      X ,W(1,306),W(1,307),W(1,308),W(1,309),W(1,310)/
  136.      X  -.3020059, -.3078496, -.3136817, -.3195020, -.3253103/
  137.      X ,W(1,311),W(1,312),W(1,313),W(1,314),W(1,315)/
  138.      X  -.3311063, -.3368899, -.3426607, -.3484187, -.3541635/
  139.      X ,W(1,316),W(1,317),W(1,318),W(1,319),W(1,320)/
  140.      X  -.3598950, -.3656130, -.3713172, -.3770074, -.3826834/
  141.      X ,W(1,321),W(1,322),W(1,323),W(1,324),W(1,325)/
  142.      X  -.3883450, -.3939920, -.3996242, -.4052413, -.4108432/
  143.      X ,W(1,326),W(1,327),W(1,328),W(1,329),W(1,330)/
  144.      X  -.4164296, -.4220003, -.4275551, -.4330938, -.4386162/
  145.      X ,W(1,331),W(1,332),W(1,333),W(1,334),W(1,335)/
  146.      X  -.4441221, -.4496113, -.4550836, -.4605387, -.4659765/
  147.      X ,W(1,336),W(1,337),W(1,338),W(1,339),W(1,340)/
  148.      X  -.4713967, -.4767992, -.4821838, -.4875502, -.4928982/
  149.      X ,W(1,341),W(1,342),W(1,343),W(1,344),W(1,345)/
  150.      X  -.4982277, -.5035384, -.5088301, -.5141027, -.5193560/
  151.      X ,W(1,346),W(1,347),W(1,348),W(1,349),W(1,350)/
  152.      X  -.5245897, -.5298036, -.5349976, -.5401715, -.5453250/
  153.      X ,W(1,351),W(1,352),W(1,353),W(1,354),W(1,355)/
  154.      X  -.5504580, -.5555702, -.5606616, -.5657318, -.5707807/
  155.      X ,W(1,356),W(1,357),W(1,358),W(1,359),W(1,360)/
  156.      X  -.5758082, -.5808140, -.5857979, -.5907597, -.5956993/
  157.      X ,W(1,361),W(1,362),W(1,363),W(1,364),W(1,365)/
  158.      X  -.6006165, -.6055110, -.6103828, -.6152316, -.6200572/
  159.      X ,W(1,366),W(1,367),W(1,368),W(1,369),W(1,370)/
  160.      X  -.6248595, -.6296382, -.6343933, -.6391244, -.6438315/
  161.      X ,W(1,371),W(1,372),W(1,373),W(1,374),W(1,375)/
  162.      X  -.6485144, -.6531728, -.6578067, -.6624158, -.6669999/
  163.      X ,W(1,376),W(1,377),W(1,378),W(1,379),W(1,380)/
  164.      X  -.6715590, -.6760927, -.6806010, -.6850837, -.6895405/
  165.      X ,W(1,381),W(1,382),W(1,383),W(1,384),W(1,385)/
  166.      X  -.6939715, -.6983762, -.7027547, -.7071068, -.7114322/
  167.      X ,W(1,386),W(1,387),W(1,388),W(1,389),W(1,390)/
  168.      X  -.7157308, -.7200025, -.7242471, -.7284644, -.7326543/
  169.      X ,W(1,391),W(1,392),W(1,393),W(1,394),W(1,395)/
  170.      X  -.7368166, -.7409511, -.7450578, -.7491364, -.7531868/
  171.      X ,W(1,396),W(1,397),W(1,398),W(1,399),W(1,400)/
  172.      X  -.7572088, -.7612024, -.7651673, -.7691033, -.7730105/
  173.      X ,W(1,401),W(1,402),W(1,403),W(1,404),W(1,405)/
  174.      X  -.7768885, -.7807372, -.7845566, -.7883464, -.7921066/
  175.      X ,W(1,406),W(1,407),W(1,408),W(1,409),W(1,410)/
  176.      X  -.7958369, -.7995373, -.8032075, -.8068476, -.8104572/
  177.      X ,W(1,411),W(1,412),W(1,413),W(1,414),W(1,415)/
  178.      X  -.8140363, -.8175848, -.8211025, -.8245893, -.8280450/
  179.      X ,W(1,416),W(1,417),W(1,418),W(1,419),W(1,420)/
  180.      X  -.8314696, -.8348629, -.8382247, -.8415550, -.8448536/
  181.      X ,W(1,421),W(1,422),W(1,423),W(1,424),W(1,425)/
  182.      X  -.8481203, -.8513552, -.8545580, -.8577286, -.8608669/
  183.      X ,W(1,426),W(1,427),W(1,428),W(1,429),W(1,430)/
  184.      X  -.8639729, -.8670462, -.8700870, -.8730950, -.8760701/
  185.      X ,W(1,431),W(1,432),W(1,433),W(1,434),W(1,435)/
  186.      X  -.8790122, -.8819213, -.8847971, -.8876396, -.8904487/
  187.      X ,W(1,436),W(1,437),W(1,438),W(1,439),W(1,440)/
  188.      X  -.8932243, -.8959662, -.8986745, -.9013488, -.9039893/
  189.      X ,W(1,441),W(1,442),W(1,443),W(1,444),W(1,445)/
  190.      X  -.9065957, -.9091680, -.9117060, -.9142098, -.9166791/
  191.      X ,W(1,446),W(1,447),W(1,448),W(1,449),W(1,450)/
  192.      X  -.9191139, -.9215140, -.9238795, -.9262102, -.9285061/
  193.      X ,W(1,451),W(1,452),W(1,453),W(1,454),W(1,455)/
  194.      X  -.9307670, -.9329928, -.9351835, -.9373390, -.9394592/
  195.      X ,W(1,456),W(1,457),W(1,458),W(1,459),W(1,460)/
  196.      X  -.9415441, -.9435935, -.9456073, -.9475856, -.9495282/
  197.      X ,W(1,461),W(1,462),W(1,463),W(1,464),W(1,465)/
  198.      X  -.9514350, -.9533060, -.9551412, -.9569403, -.9587035/
  199.      X ,W(1,466),W(1,467),W(1,468),W(1,469),W(1,470)/
  200.      X  -.9604305, -.9621214, -.9637761, -.9653944, -.9669765/
  201.      X ,W(1,471),W(1,472),W(1,473),W(1,474),W(1,475)/
  202.      X  -.9685221, -.9700313, -.9715039, -.9729400, -.9743394/
  203.      X ,W(1,476),W(1,477),W(1,478),W(1,479),W(1,480)/
  204.      X  -.9757021, -.9770281, -.9783174, -.9795698, -.9807853/
  205.      X ,W(1,481),W(1,482),W(1,483),W(1,484),W(1,485)/
  206.      X  -.9819639, -.9831055, -.9842101, -.9852776, -.9863081/
  207.      X ,W(1,486),W(1,487),W(1,488),W(1,489),W(1,490)/
  208.      X  -.9873014, -.9882576, -.9891765, -.9900582, -.9909026/
  209.      X ,W(1,491),W(1,492),W(1,493),W(1,494),W(1,495)/
  210.      X  -.9917098, -.9924795, -.9932119, -.9939070, -.9945646/
  211.      X ,W(1,496),W(1,497),W(1,498),W(1,499),W(1,500)/
  212.      X  -.9951847, -.9957674, -.9963126, -.9968203, -.9972905/
  213.      X ,W(1,501),W(1,502),W(1,503),W(1,504),W(1,505)/
  214.      X  -.9977231, -.9981181, -.9984756, -.9987955, -.9990777/
  215.      X ,W(1,506),W(1,507),W(1,508),W(1,509),W(1,510)/
  216.      X  -.9993224, -.9995294, -.9996988, -.9998306, -.9999247/
  217.      X ,W(1,511),W(1,512)/
  218.      X  -.9999812,-1.0000000/
  219.      X ,W(2,  1),W(2,  2),W(2,  3),W(2,  4),W(2,  5)/
  220.      X  -.0061359, -.0122715, -.0184067, -.0245412, -.0306748/
  221.      X ,W(2,  6),W(2,  7),W(2,  8),W(2,  9),W(2, 10)/
  222.      X  -.0368072, -.0429383, -.0490677, -.0551952, -.0613207/
  223.      X ,W(2, 11),W(2, 12),W(2, 13),W(2, 14),W(2, 15)/
  224.      X  -.0674439, -.0735646, -.0796824, -.0857973, -.0919090/
  225.      X ,W(2, 16),W(2, 17),W(2, 18),W(2, 19),W(2, 20)/
  226.      X  -.0980171, -.1041216, -.1102222, -.1163186, -.1224107/
  227.      X ,W(2, 21),W(2, 22),W(2, 23),W(2, 24),W(2, 25)/
  228.      X  -.1284981, -.1345807, -.1406582, -.1467305, -.1527972/
  229.      X ,W(2, 26),W(2, 27),W(2, 28),W(2, 29),W(2, 30)/
  230.      X  -.1588581, -.1649131, -.1709619, -.1770042, -.1830399/
  231.      X ,W(2, 31),W(2, 32),W(2, 33),W(2, 34),W(2, 35)/
  232.      X  -.1890687, -.1950903, -.2011046, -.2071114, -.2131103/
  233.      X ,W(2, 36),W(2, 37),W(2, 38),W(2, 39),W(2, 40)/
  234.      X  -.2191012, -.2250839, -.2310581, -.2370236, -.2429802/
  235.      X ,W(2, 41),W(2, 42),W(2, 43),W(2, 44),W(2, 45)/
  236.      X  -.2489276, -.2548657, -.2607941, -.2667128, -.2726214/
  237.      X ,W(2, 46),W(2, 47),W(2, 48),W(2, 49),W(2, 50)/
  238.      X  -.2785197, -.2844075, -.2902847, -.2961509, -.3020059/
  239.      X ,W(2, 51),W(2, 52),W(2, 53),W(2, 54),W(2, 55)/
  240.      X  -.3078496, -.3136817, -.3195020, -.3253103, -.3311063/
  241.      X ,W(2, 56),W(2, 57),W(2, 58),W(2, 59),W(2, 60)/
  242.      X  -.3368899, -.3426607, -.3484187, -.3541635, -.3598950/
  243.      X ,W(2, 61),W(2, 62),W(2, 63),W(2, 64),W(2, 65)/
  244.      X  -.3656130, -.3713172, -.3770074, -.3826834, -.3883450/
  245.      X ,W(2, 66),W(2, 67),W(2, 68),W(2, 69),W(2, 70)/
  246.      X  -.3939920, -.3996242, -.4052413, -.4108432, -.4164296/
  247.      X ,W(2, 71),W(2, 72),W(2, 73),W(2, 74),W(2, 75)/
  248.      X  -.4220003, -.4275551, -.4330938, -.4386162, -.4441221/
  249.      X ,W(2, 76),W(2, 77),W(2, 78),W(2, 79),W(2, 80)/
  250.      X  -.4496113, -.4550836, -.4605387, -.4659765, -.4713967/
  251.      X ,W(2, 81),W(2, 82),W(2, 83),W(2, 84),W(2, 85)/
  252.      X  -.4767992, -.4821838, -.4875502, -.4928982, -.4982277/
  253.      X ,W(2, 86),W(2, 87),W(2, 88),W(2, 89),W(2, 90)/
  254.      X  -.5035384, -.5088301, -.5141027, -.5193560, -.5245897/
  255.      X ,W(2, 91),W(2, 92),W(2, 93),W(2, 94),W(2, 95)/
  256.      X  -.5298036, -.5349976, -.5401715, -.5453250, -.5504580/
  257.      X ,W(2, 96),W(2, 97),W(2, 98),W(2, 99),W(2,100)/
  258.      X  -.5555702, -.5606616, -.5657318, -.5707807, -.5758082/
  259.      X ,W(2,101),W(2,102),W(2,103),W(2,104),W(2,105)/
  260.      X  -.5808140, -.5857979, -.5907597, -.5956993, -.6006165/
  261.      X ,W(2,106),W(2,107),W(2,108),W(2,109),W(2,110)/
  262.      X  -.6055110, -.6103828, -.6152316, -.6200572, -.6248595/
  263.      X ,W(2,111),W(2,112),W(2,113),W(2,114),W(2,115)/
  264.      X  -.6296382, -.6343933, -.6391244, -.6438315, -.6485144/
  265.      X ,W(2,116),W(2,117),W(2,118),W(2,119),W(2,120)/
  266.      X  -.6531728, -.6578067, -.6624158, -.6669999, -.6715590/
  267.      X ,W(2,121),W(2,122),W(2,123),W(2,124),W(2,125)/
  268.      X  -.6760927, -.6806010, -.6850837, -.6895405, -.6939715/
  269.      X ,W(2,126),W(2,127),W(2,128),W(2,129),W(2,130)/
  270.      X  -.6983762, -.7027547, -.7071068, -.7114322, -.7157308/
  271.      X ,W(2,131),W(2,132),W(2,133),W(2,134),W(2,135)/
  272.      X  -.7200025, -.7242471, -.7284644, -.7326543, -.7368166/
  273.      X ,W(2,136),W(2,137),W(2,138),W(2,139),W(2,140)/
  274.      X  -.7409511, -.7450578, -.7491364, -.7531868, -.7572088/
  275.      X ,W(2,141),W(2,142),W(2,143),W(2,144),W(2,145)/
  276.      X  -.7612024, -.7651673, -.7691033, -.7730105, -.7768885/
  277.      X ,W(2,146),W(2,147),W(2,148),W(2,149),W(2,150)/
  278.      X  -.7807372, -.7845566, -.7883464, -.7921066, -.7958369/
  279.      X ,W(2,151),W(2,152),W(2,153),W(2,154),W(2,155)/
  280.      X  -.7995373, -.8032075, -.8068476, -.8104572, -.8140363/
  281.      X ,W(2,156),W(2,157),W(2,158),W(2,159),W(2,160)/
  282.      X  -.8175848, -.8211025, -.8245893, -.8280450, -.8314696/
  283.      X ,W(2,161),W(2,162),W(2,163),W(2,164),W(2,165)/
  284.      X  -.8348629, -.8382247, -.8415550, -.8448536, -.8481203/
  285.      X ,W(2,166),W(2,167),W(2,168),W(2,169),W(2,170)/
  286.      X  -.8513552, -.8545580, -.8577286, -.8608669, -.8639729/
  287.      X ,W(2,171),W(2,172),W(2,173),W(2,174),W(2,175)/
  288.      X  -.8670462, -.8700870, -.8730950, -.8760701, -.8790122/
  289.      X ,W(2,176),W(2,177),W(2,178),W(2,179),W(2,180)/
  290.      X  -.8819213, -.8847971, -.8876396, -.8904487, -.8932243/
  291.      X ,W(2,181),W(2,182),W(2,183),W(2,184),W(2,185)/
  292.      X  -.8959662, -.8986745, -.9013488, -.9039893, -.9065957/
  293.      X ,W(2,186),W(2,187),W(2,188),W(2,189),W(2,190)/
  294.      X  -.9091680, -.9117060, -.9142098, -.9166791, -.9191139/
  295.      X ,W(2,191),W(2,192),W(2,193),W(2,194),W(2,195)/
  296.      X  -.9215140, -.9238795, -.9262102, -.9285061, -.9307670/
  297.      X ,W(2,196),W(2,197),W(2,198),W(2,199),W(2,200)/
  298.      X  -.9329928, -.9351835, -.9373390, -.9394592, -.9415441/
  299.      X ,W(2,201),W(2,202),W(2,203),W(2,204),W(2,205)/
  300.      X  -.9435935, -.9456073, -.9475856, -.9495282, -.9514350/
  301.      X ,W(2,206),W(2,207),W(2,208),W(2,209),W(2,210)/
  302.      X  -.9533060, -.9551412, -.9569403, -.9587035, -.9604305/
  303.      X ,W(2,211),W(2,212),W(2,213),W(2,214),W(2,215)/
  304.      X  -.9621214, -.9637761, -.9653944, -.9669765, -.9685221/
  305.      X ,W(2,216),W(2,217),W(2,218),W(2,219),W(2,220)/
  306.      X  -.9700313, -.9715039, -.9729400, -.9743394, -.9757021/
  307.      X ,W(2,221),W(2,222),W(2,223),W(2,224),W(2,225)/
  308.      X  -.9770281, -.9783174, -.9795698, -.9807853, -.9819639/
  309.      X ,W(2,226),W(2,227),W(2,228),W(2,229),W(2,230)/
  310.      X  -.9831055, -.9842101, -.9852776, -.9863081, -.9873014/
  311.      X ,W(2,231),W(2,232),W(2,233),W(2,234),W(2,235)/
  312.      X  -.9882576, -.9891765, -.9900582, -.9909026, -.9917098/
  313.      X ,W(2,236),W(2,237),W(2,238),W(2,239),W(2,240)/
  314.      X  -.9924795, -.9932119, -.9939070, -.9945646, -.9951847/
  315.      X ,W(2,241),W(2,242),W(2,243),W(2,244),W(2,245)/
  316.      X  -.9957674, -.9963126, -.9968203, -.9972905, -.9977231/
  317.      X ,W(2,246),W(2,247),W(2,248),W(2,249),W(2,250)/
  318.      X  -.9981181, -.9984756, -.9987955, -.9990777, -.9993224/
  319.      X ,W(2,251),W(2,252),W(2,253),W(2,254),W(2,255)/
  320.      X  -.9995294, -.9996988, -.9998306, -.9999247, -.9999812/
  321.      X ,W(2,256),W(2,257),W(2,258),W(2,259),W(2,260)/
  322.      X -1.0000000, -.9999812, -.9999247, -.9998306, -.9996988/
  323.      X ,W(2,261),W(2,262),W(2,263),W(2,264),W(2,265)/
  324.      X  -.9995294, -.9993224, -.9990777, -.9987955, -.9984756/
  325.      X ,W(2,266),W(2,267),W(2,268),W(2,269),W(2,270)/
  326.      X  -.9981181, -.9977231, -.9972905, -.9968203, -.9963126/
  327.      X ,W(2,271),W(2,272),W(2,273),W(2,274),W(2,275)/
  328.      X  -.9957674, -.9951847, -.9945646, -.9939070, -.9932119/
  329.      X ,W(2,276),W(2,277),W(2,278),W(2,279),W(2,280)/
  330.      X  -.9924795, -.9917098, -.9909026, -.9900582, -.9891765/
  331.      X ,W(2,281),W(2,282),W(2,283),W(2,284),W(2,285)/
  332.      X  -.9882576, -.9873014, -.9863081, -.9852776, -.9842101/
  333.      X ,W(2,286),W(2,287),W(2,288),W(2,289),W(2,290)/
  334.      X  -.9831055, -.9819639, -.9807853, -.9795698, -.9783174/
  335.      X ,W(2,291),W(2,292),W(2,293),W(2,294),W(2,295)/
  336.      X  -.9770281, -.9757021, -.9743394, -.9729400, -.9715039/
  337.      X ,W(2,296),W(2,297),W(2,298),W(2,299),W(2,300)/
  338.      X  -.9700313, -.9685221, -.9669765, -.9653944, -.9637761/
  339.      X ,W(2,301),W(2,302),W(2,303),W(2,304),W(2,305)/
  340.      X  -.9621214, -.9604305, -.9587035, -.9569403, -.9551412/
  341.      X ,W(2,306),W(2,307),W(2,308),W(2,309),W(2,310)/
  342.      X  -.9533060, -.9514350, -.9495282, -.9475856, -.9456073/
  343.      X ,W(2,311),W(2,312),W(2,313),W(2,314),W(2,315)/
  344.      X  -.9435935, -.9415441, -.9394592, -.9373390, -.9351835/
  345.      X ,W(2,316),W(2,317),W(2,318),W(2,319),W(2,320)/
  346.      X  -.9329928, -.9307670, -.9285061, -.9262102, -.9238795/
  347.      X ,W(2,321),W(2,322),W(2,323),W(2,324),W(2,325)/
  348.      X  -.9215140, -.9191139, -.9166791, -.9142098, -.9117060/
  349.      X ,W(2,326),W(2,327),W(2,328),W(2,329),W(2,330)/
  350.      X  -.9091680, -.9065957, -.9039893, -.9013488, -.8986745/
  351.      X ,W(2,331),W(2,332),W(2,333),W(2,334),W(2,335)/
  352.      X  -.8959662, -.8932243, -.8904487, -.8876396, -.8847971/
  353.      X ,W(2,336),W(2,337),W(2,338),W(2,339),W(2,340)/
  354.      X  -.8819213, -.8790122, -.8760701, -.8730950, -.8700870/
  355.      X ,W(2,341),W(2,342),W(2,343),W(2,344),W(2,345)/
  356.      X  -.8670462, -.8639729, -.8608669, -.8577286, -.8545580/
  357.      X ,W(2,346),W(2,347),W(2,348),W(2,349),W(2,350)/
  358.      X  -.8513552, -.8481203, -.8448536, -.8415550, -.8382247/
  359.      X ,W(2,351),W(2,352),W(2,353),W(2,354),W(2,355)/
  360.      X  -.8348629, -.8314696, -.8280450, -.8245893, -.8211025/
  361.      X ,W(2,356),W(2,357),W(2,358),W(2,359),W(2,360)/
  362.      X  -.8175848, -.8140363, -.8104572, -.8068476, -.8032075/
  363.      X ,W(2,361),W(2,362),W(2,363),W(2,364),W(2,365)/
  364.      X  -.7995373, -.7958369, -.7921066, -.7883464, -.7845566/
  365.      X ,W(2,366),W(2,367),W(2,368),W(2,369),W(2,370)/
  366.      X  -.7807372, -.7768885, -.7730105, -.7691033, -.7651673/
  367.      X ,W(2,371),W(2,372),W(2,373),W(2,374),W(2,375)/
  368.      X  -.7612024, -.7572088, -.7531868, -.7491364, -.7450578/
  369.      X ,W(2,376),W(2,377),W(2,378),W(2,379),W(2,380)/
  370.      X  -.7409511, -.7368166, -.7326543, -.7284644, -.7242471/
  371.      X ,W(2,381),W(2,382),W(2,383),W(2,384),W(2,385)/
  372.      X  -.7200025, -.7157308, -.7114322, -.7071068, -.7027547/
  373.      X ,W(2,386),W(2,387),W(2,388),W(2,389),W(2,390)/
  374.      X  -.6983762, -.6939715, -.6895405, -.6850837, -.6806010/
  375.      X ,W(2,391),W(2,392),W(2,393),W(2,394),W(2,395)/
  376.      X  -.6760927, -.6715590, -.6669999, -.6624158, -.6578067/
  377.      X ,W(2,396),W(2,397),W(2,398),W(2,399),W(2,400)/
  378.      X  -.6531728, -.6485144, -.6438315, -.6391244, -.6343933/
  379.      X ,W(2,401),W(2,402),W(2,403),W(2,404),W(2,405)/
  380.      X  -.6296382, -.6248595, -.6200572, -.6152316, -.6103828/
  381.      X ,W(2,406),W(2,407),W(2,408),W(2,409),W(2,410)/
  382.      X  -.6055110, -.6006165, -.5956993, -.5907597, -.5857979/
  383.      X ,W(2,411),W(2,412),W(2,413),W(2,414),W(2,415)/
  384.      X  -.5808140, -.5758082, -.5707807, -.5657318, -.5606616/
  385.      X ,W(2,416),W(2,417),W(2,418),W(2,419),W(2,420)/
  386.      X  -.5555702, -.5504580, -.5453250, -.5401715, -.5349976/
  387.      X ,W(2,421),W(2,422),W(2,423),W(2,424),W(2,425)/
  388.      X  -.5298036, -.5245897, -.5193560, -.5141027, -.5088301/
  389.      X ,W(2,426),W(2,427),W(2,428),W(2,429),W(2,430)/
  390.      X  -.5035384, -.4982277, -.4928982, -.4875502, -.4821838/
  391.      X ,W(2,431),W(2,432),W(2,433),W(2,434),W(2,435)/
  392.      X  -.4767992, -.4713967, -.4659765, -.4605387, -.4550836/
  393.      X ,W(2,436),W(2,437),W(2,438),W(2,439),W(2,440)/
  394.      X  -.4496113, -.4441221, -.4386162, -.4330938, -.4275551/
  395.      X ,W(2,441),W(2,442),W(2,443),W(2,444),W(2,445)/
  396.      X  -.4220003, -.4164296, -.4108432, -.4052413, -.3996242/
  397.      X ,W(2,446),W(2,447),W(2,448),W(2,449),W(2,450)/
  398.      X  -.3939920, -.3883450, -.3826834, -.3770074, -.3713172/
  399.      X ,W(2,451),W(2,452),W(2,453),W(2,454),W(2,455)/
  400.      X  -.3656130, -.3598950, -.3541635, -.3484187, -.3426607/
  401.      X ,W(2,456),W(2,457),W(2,458),W(2,459),W(2,460)/
  402.      X  -.3368899, -.3311063, -.3253103, -.3195020, -.3136817/
  403.      X ,W(2,461),W(2,462),W(2,463),W(2,464),W(2,465)/
  404.      X  -.3078496, -.3020059, -.2961509, -.2902847, -.2844075/
  405.      X ,W(2,466),W(2,467),W(2,468),W(2,469),W(2,470)/
  406.      X  -.2785197, -.2726214, -.2667128, -.2607941, -.2548657/
  407.      X ,W(2,471),W(2,472),W(2,473),W(2,474),W(2,475)/
  408.      X  -.2489276, -.2429802, -.2370236, -.2310581, -.2250839/
  409.      X ,W(2,476),W(2,477),W(2,478),W(2,479),W(2,480)/
  410.      X  -.2191012, -.2131103, -.2071114, -.2011046, -.1950903/
  411.      X ,W(2,481),W(2,482),W(2,483),W(2,484),W(2,485)/
  412.      X  -.1890687, -.1830399, -.1770042, -.1709619, -.1649131/
  413.      X ,W(2,486),W(2,487),W(2,488),W(2,489),W(2,490)/
  414.      X  -.1588581, -.1527972, -.1467305, -.1406582, -.1345807/
  415.      X ,W(2,491),W(2,492),W(2,493),W(2,494),W(2,495)/
  416.      X  -.1284981, -.1224107, -.1163186, -.1102222, -.1041216/
  417.      X ,W(2,496),W(2,497),W(2,498),W(2,499),W(2,500)/
  418.      X  -.0980171, -.0919090, -.0857973, -.0796824, -.0735646/
  419.      X ,W(2,501),W(2,502),W(2,503),W(2,504),W(2,505)/
  420.      X  -.0674439, -.0613207, -.0551952, -.0490677, -.0429383/
  421.      X ,W(2,506),W(2,507),W(2,508),W(2,509),W(2,510)/
  422.      X  -.0368072, -.0306748, -.0245412, -.0184067, -.0122715/
  423.      X ,W(2,511),W(2,512)/
  424.      X  -.0061359,  .0000000/
  425.       WRITE (1,400)
  426. 400   FORMAT (' 1024 point FFT.  By Victor De Pinto.
  427.      X  Jan. 11, 1982'/)
  428. 500   WRITE (1,501)
  429. 501   FORMAT (' Source filename,')
  430.       CALL NAME( FN1 )
  431.       WRITE (1,502)
  432. 502   FORMAT (' Destination filename,')
  433.       CALL NAME ( FN2 )
  434.       CALL OPEN (3, FN1, 0)
  435.       CALL OPEN (4, FN2, 0)
  436. 550   WRITE (1,551)
  437. 551   FORMAT (' ENTER FUNCTION CODE. FFT: 1 / INVERSE FFT: 2  ??')
  438.       READ (1,552) J
  439. 552   FORMAT (I1)
  440.       GO TO (650, 570), J
  441.       GO TO 9999
  442. 570   READ (3) DATA
  443.       DO 575 J=1,1024
  444.       DATA (1,J) = DATA(1,J) / 1024.0
  445. 575   DATA (2,J) = -DATA(2,J) / 1024.0
  446.       GO TO 690
  447. 650   READ (3) DATA
  448. C    SHUFFLE BEGINS
  449. 690   WRITE (1,691)
  450. 691   FORMAT (' SHUFFLE BEGINS')
  451. 700   NV2 = 1024/2
  452.       NM1 = 1024 - 1
  453.       J = 1
  454.       DO 7 I=1,NM1
  455.       IF (I .GE. J) GO TO 5
  456.       T1 = DATA(1,J)
  457.       T2 = DATA(2,J)
  458.       DATA(1,J) = DATA(1,I)
  459.       DATA(2,J) = DATA(2,I)
  460.       DATA(1,I) = T1
  461.       DATA(2,I) = T2
  462. 5     K = NV2
  463. 6     IF ( K .GE. J ) GO TO 7
  464.       J = J - K
  465.       K=K/2
  466.       GO TO 6
  467. 7     J=J+K
  468. 730   WRITE (1,731)
  469. 731   FORMAT (' SHUFFLE COMPLETE. FFT BEGINS')
  470. 1000  K=1
  471.       J=512
  472. 1010  M=1
  473. 1020  INDEX = J
  474.       M=M+K+1
  475. 1030  IF ( INDEX .EQ. 512 ) GO TO 1060
  476. 1040  T1 = DATA(1,M) * W(1,INDEX) - DATA(2,M) * W(2,INDEX)
  477.       DATA(2,M) = DATA(2,M) * W(1,INDEX) + DATA(1,M) * W(2,INDEX)
  478.       DATA(1,M) = T1
  479. 1050  INDEX=INDEX+J
  480.       M=M+1
  481.       GO TO 1030
  482. 1060  IF ( M .NE. 1025 ) GO TO 1020
  483. 1070  I=1
  484. 1080  L=0
  485.       M=I+K
  486. 1090  T1 = DATA(1,I) + DATA(1,M)
  487.       T2 = DATA(2,I) + DATA(2,M)
  488.       DATA(1,M) = DATA(1,I) - DATA(1,M)
  489.       DATA(2,M) = DATA(2,I) - DATA(2,M)
  490.       DATA(1,I) = T1
  491.       DATA(2,I) = T2
  492. 2000  L=L+1
  493.       I=I+1
  494.       M=M+1
  495. 2010  IF ( L .NE. K ) GO TO 1090
  496. 2020  IF ( M .EQ. 1025 ) GO TO 2040
  497. 2030  I=M
  498.       GO TO 1080
  499. 2040  IF ( K .EQ. 512 ) GO TO 2070
  500. 2050  K=K*2
  501.       J=J/2
  502.       GO TO 1010
  503. 2070  WRITE (1,2071)
  504. 2071  FORMAT (' FFT COMPLETE')
  505. 2075  WRITE (4) DATA
  506.       ENDFILE 3
  507.       ENDFILE 4
  508. 9999  END
  509.