short : Simple FFT DEMO using ARexx. author : (Barry Walker) uploader : LAG. (Lincs AMIGA Group) type : dev/src version : 1.00.00 architecture : generic Filetype : text/plain Size : 1.92K Date : 7-Sep-18 Download : 💾
Distribution: GPL2. ============================================================================ Architectures: Classic AMIGAs, WinUAE, FS-UAE, (Windows? Linux?). ----------------------------------------------------------------- MINIMUM Requirements Are:- -------------------------- Amiga environment:- Stock AMIGA 1200 only. (Extra memory and/or HDD/FDD is always useful, but not needed; it will run faster however with FASTRAM). WinUAE 1.5.3, minimum on Windows. FS-UAE on OSX 10.13.6 and Linux Mint 19. Standard default AMIGA OS_3.0.x install or better. A dependency of rexxmathlib.library is needed. ( ) ---------------------------------------------------------------------------- History:- --------- 06-09-2018. ----------- Version 1.00.00. Probably the one and only upload for this archive. ---------------------------------------------------------------------------- General:- --------- (Apologies for any typos, etc...) 'Simple_FFT_DEMO.rexx.txt' -------------------------- !!!Yep, that's right, slow FFT for ARexx using rexxmathlib.library!!! This MIGHT be the simplest implementation of a basic FFT function for the Classic AMIGA - period! It uses a dl from AMINET, 'rexxmathlib.library'. 1) Is this an exercise in futility? Probably YES! 2) Can rexxmathlib.library be omitted? Probably YES too. I have already done a simple SIN subroutine here: ...but would need modifying, so COS would also easily be possible. Absolute complex values are created using a simple subroutine inside the code, so this is not needed from the dl'd library. 3) Was it difficult? Well YES and NO. YES, I hadn't coded in ARexx properly for years and it was a learning curve for me. ARexx certainly has its foibles. The basic coding was easy but the arithmetic was so convoluted to what we are now used to. NO, this was ported from MY ksh93 and awk UNIX shell script here: this was relatively difficult! 4) Why did I attempt it? I love doing something that has never been tried before hence this version and the ksh93 + awk version. 5) Is it of any use in the real word? Probably NOT, but someone will dl it and make it faster and better now that the building block exists. 6) What was the basic requirement needed? Both for the UNIX shell script and this script it was the ability to do basic floating point maths. sadly ARexx's FP accuracy is not as good as current technology on current machines. 7) Did I enjoy it? Absolutely. Someone who visits AMINET emailed me quoting, (paraphrasing), "it would be better to see the FFT done in ARexx", instead of Python2.0.x with reference to this, also mine: (If that guy is reading this, does this convoluted piece of code satisfy your requirements?) 8) Am I going to do a similar DEMO to the one in part 7)? NO! I am looking at AMIGABasic next for Workbench_1.3.x for a stock A500. 9) And finally, was it fun to do? Short answer - YES! Just dl both the code and the library and install as required. Rename 'Simple_FFT_DEMO.rexx.txt' to something shorter, say 'FFT.rexx'. With RexxMast running, execute the script using RX in the usual way. ***** I WOULD REALLY LIKE THE PERSON WHO EMAILED ME TO DO SO AGAIN! ***** Does this satisfy your requirements? NOTES:- ------- 1) Floating point 'REAL_ARRAY', (term used loosely), values, must be 0.0 to a positive value. 1.0 is chosen for the upper limit in this DEMO as this is the standard test for: 2) The total REAL DATA length MUST be a power of 2! IF NOT THEN: 3) 2 lots of DATA lengths ARE needed, one for the REAL values and an internally generated IMAGINARY one of the same length of value 0.0. 4) CROP or PAD to the nearest power of 2 elements. Use a MIDPOINT value between the maximum value that you use and 0.0. As the maximum is 1.0 and minimum is 0.0 in the DEMO then a value of 0.5 would be used for any PADDING required to make the DATA length to a power of 2 in size. I usually PAD at the end. Google is your friend here! 5) And finally...... READ THE CODE FOR MORE INFORMATION! ADDENDUM:- ---------- This might just work on a stock A600 as I think the library was writte for a 68000 CPU. Enjoy... Bazza... ---------------------------------------------------------------------------- IMPORTANT:- ----------- The Legal Stuff:- ----------------- The authors are not responsible for any damage to, or loss of, or failure of equipment or data caused in any way by the use of this code. There is NO warranty with the use of this software release and YOU USE IT AT YOUR OWN RISK. ---------------------------------------------------------------------------- Testing Evaluation:- -------------------- All WinUAE, FS-UAE and Classic AMIGA test conditions were/are running standard OS 3.0.x and using standard ~topaz 8~ fonts throughout. The minimum hardware requirements ARE needed however. I have no idea what strange configuration setups will create so refer to the ~The Legal Stuff~ above. ---------------------------------------------------------------------------- Barry Walker, G0LCU. ---------------------------------------------------------------------------- A very useful HardWare related site, (C) Anthony Hoffman, for modifications, schematics, repairs and the like is:- ============================================================================
Zum Live Linux: