Sponsored Content
Operating Systems OS X (Apple) FFT for Python 2.0.x to 3.7.0. Post 303021904 by wisecracker on Monday 20th of August 2018 09:54:44 AM
Old 08-20-2018
FFT for Python 2.0.x to 3.7.0.

Hi guys...
This is code that was originally designed to work on an upgraded AMIGA A1200 using Python 2.0.x.
Unfortunately it broke inside much later versions, NOT because of the print statement/function but other minor subtleties. So this is the final result tested on various machines including the desired one.
The print(FFT) function also acts correctly, (even in Python 1.4.0 believe it or not), so there is no need to alter it for any Python version from 2.0.x to the current 3.7.0; just delete it as it is only there for this DEMO...
More information inside the code and as can be seen tested on various platforms and machines.
Code:
#
# SIMPLE_FFT.py
# For Python Version(s) 2.0.x to 3.7.0...
# 20 August 2018, CC0, Public Domain Licence.
#
# TESTED ON:
#
# Python 2.0 (#1, Oct 29 2000, 23:53:20)  (SAS/C 6.x] on amiga
#
# Python 2.7.10 (default, Oct  6 2017, 22:29:07)
# [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin
#
# Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25)
# [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
#
# Python 3.7.0 (v7.7.0:1bf9cc5093, Jun 27 2018,04:59:51) [MSC v.1914 64 bit
# (AMD64)] on win32
#
# Python 2.7.15rc1 (default, Apr 15 2018, 21:51:34)
# [GCC 7.3.0] on linux2

# This is a builtin, no external libraries required.
import cmath

def fft(DATA):
	N=len(DATA)
	if N<=1: return DATA
	EVEN=fft([DATA[K] for K in range(0,N,2)])
	ODD=fft([DATA[K] for K in range(1,N,2)])
	L=[EVEN[K]+cmath.exp(-2j*cmath.pi*K/N)*ODD[K] for K in range(int(N/2))]
	R=[EVEN[K]-cmath.exp(-2j*cmath.pi*K/N)*ODD[K] for K in range(int(N/2))]
	return L+R

# NOTE: Although not necessary, for best results, DATA sizes be in powers of 2.
# http://www.bitweenie.com/listings/fft-zero-padding/
# Single cycle square wave, 8 samples.
FFT_LIST=[1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0]

FFT=fft(FFT_LIST)
print(FFT)

# Correct results, within limits of floating point accuracy, should read:
# -----------------------------------------------------------------------
#
# [(4+0j), (1-2.414213562373095j), 0j, (1-0.4142135623730949j), 0j,
# (0.9999999999999999+0.4142135623730949j), 0j,
# (0.9999999999999997+2.414213562373095j)]

 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

what is python?

I heard that its a new programming language but ill like to get a deeper explaination of it. (1 Reply)
Discussion started by: kprescod4158
1 Replies

2. Programming

Python: bash-shell-like less functionality in the python shell

Hello, Is there some type of functional way to read things in the Python shell interpreter similar to less or more in the bash (and other) command line shells? Example: >>> import subprocess >>> help(subprocess) ... ... I'm hoping so as I hate scrolling and love how less works with... (0 Replies)
Discussion started by: Narnie
0 Replies

3. Ubuntu

Python 3.1 vs 2.6?

i just found python 3.1 in the Ubuntu Software Center today... yes i know, i've probably been under a rock... but my question is, would installing 3.1 cause any conflicts with the 2.6 installation in terms of retro compatibility with python based apps? i don't know if 3.1 is supposed to replace... (0 Replies)
Discussion started by: Sterist
0 Replies

4. SuSE

"ssh suse-server 'python -V' > python-version.out" not redirecting

Okay, so I have had this problem on openSUSE, and Debian systems now and I am hoping for a little help. I think it has something to do with Python but I couldn't find a proper Python area here. I am trying to redirect the output of "ssh suse-server 'python -V'" to a file. It seems that no matter... (3 Replies)
Discussion started by: Druonysus
3 Replies

5. Shell Programming and Scripting

**python** unable to read the background color in python

I am working on requirement on spreadsheet in python scripting. I have a spreadsheet containing cell values and with background color. I am able to read the value value but unable to get the background color of that particular cell. Actually my requirement is to read the cell value along... (1 Reply)
Discussion started by: giridhar276
1 Replies

6. OS X (Apple)

FFT for the AMIGA through ksh88 shell.

I don't know if anyone is interested but I have been meddling with FFT for the AMIGA. (Sadly we AMIGAns don't have these luxuries through any scripting language. Below is a Python snippet that uses the builtin 'cmath' module to work with the lowly Python 2.0.1 for the AMIGA. It is part of a... (0 Replies)
Discussion started by: wisecracker
0 Replies

7. OS X (Apple)

Slow FFT in ksh93 and awk.

Well i set myself a challenge to have an FFT function using nothing but ksh93 and awk. It took some serious jiggery pokery and concentration with all the brackets and '$' characters but here is the result. It is RADIX 2 only, but hey, show me another UNIX shell script that does it. It IS SLOW but... (17 Replies)
Discussion started by: wisecracker
17 Replies

8. Windows & DOS: Issues & Discussions

How to execute python script on remote with python way..?

Hi all, I am trying to run below python code for connecting remote windows machine from unix to run an python file exist on that remote windows machine.. Below is the code I am trying: #!/usr/bin/env python import wmi c = wmi.WMI("xxxxx", user="xxxx", password="xxxxxxx")... (1 Reply)
Discussion started by: onenessboy
1 Replies

9. Programming

Create a C source and compile inside Python 1.4.0 to 3.7.0 in Python for ALL? platforms...

Hi all... As you know I like making code backwards compatible for as many platforms as possible. This Python script was in fact dedicated for the AMIGA A1200 using Pythons 1.4.0, 1.5.2, 1.6.0, 2.0.1, and 2.4.6 as that is all we have for varying levels of upgrades from a HDD and 4MB FastRam... (1 Reply)
Discussion started by: wisecracker
1 Replies
DH_PYCENTRAL(1) 						     Debhelper							   DH_PYCENTRAL(1)

NAME
dh_pycentral - use the python-central framework to handle Python modules and extensions SYNOPSIS
dh_pycentral [debhelper options] [-n] [-Xitem] [-V version] [module dirs ...] DESCRIPTION
dh_pycentral is a debhelper program that will scan your package, detect public Python modules and move them in /usr/share/pycentral so that python-central can byte-compile those for all supported Python versions. Extensions are kept into the original installation location. Moving the files to the pycentral location and adding symbolic links to /usr/lib/pythonX.Y/*-packages can be done by setting the environment varibale DH_PYCENTRAL to a string containing the string include-links. Moving the files to the pycentral location can be disabled by setting the environment varibale DH_PYCENTRAL to a string containing the string nomove. The functionality to shorten the time of unavailabilty of files during unpack and configure has been removed (symlinking files in the preinst and not removing the symlinked files on upgrade) in version 0.6.9. You must have filled the XS-Python-Version header to indicate the set of python versions that are going to be supported. dh_pycentral expects the XB-Python-Version for each binary package it is supposed to work on. dh_pycentral will also generate substitution variables: the ${python:Provides} variable will contain versioned provides of the package (if the package's name starts with "python-"). A python-foo package could provide "python2.3-foo" and "python2.4-foo" at the same time. Python extensions have to provide those whereas it's only option for pure python modules. The ${python:Versions} variable should be used to provide the required XB-Python-Version field listing the python versions supported by the package. OPTIONS
module dirs If your package installs python modules in non-standard directories, you can make dh_pycentral check those directories by passing their names on the command line. By default, it will check /usr/lib/$PACKAGE, /usr/share/$PACKAGE, /usr/lib/games/$PACKAGE, /usr/share/games/$PACKAGE, /usr/lib/python?.?/site-packages and /usr/lib/python?.?/dist-packages. Note: only /usr/lib/python?.?/site-packages and the extra names on the command line are searched for binary (.so) modules. -V version If the .py files your package ships are meant to be used by a specific pythonX.Y version, you can use this option to specify the desired version, such as 2.3. Do not use if you ship modules in /usr/lib/site-python. With the new policy, this option is mostly deprecated. Use the XS-Python-Field to indicate that you're using a specific python version. -n, --noscripts Do not modify postinst/postrm scripts. -Xitem, --exclude=item Exclude files that contain "item" anywhere in their filename from being taken into account to generate the python dependency. You may use this option multiple times to build up a list of things to exclude. CONFORMS TO
Python policy, version 0.4.1 (2006-06-20) SEE ALSO
debhelper(7) This program is a part of python-central but is made to work with debhelper. AUTHORS
Raphael Hertzog <hertzog@debian.org> Also includes bits of the old dh_python written by Josselin Mouette <joss@debian.org> who used many ideas from Brendan O'Dea <bod@debian.org>. 2011-04-14 DH_PYCENTRAL(1)
All times are GMT -4. The time now is 08:11 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy