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