{"id":17239737,"url":"https://github.com/jjgoings/pade","last_synced_at":"2025-04-14T03:11:33.537Z","repository":{"id":54441103,"uuid":"114030049","full_name":"jjgoings/pade","owner":"jjgoings","description":"do the Fourier transform using the method of Padé approximants","archived":false,"fork":false,"pushed_at":"2024-11-04T00:46:58.000Z","size":245,"stargazers_count":21,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-27T17:11:32.592Z","etag":null,"topics":["fourier","fourier-transform","frequency","pade","pade-approximant","signal","time"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jjgoings.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-12T19:22:15.000Z","updated_at":"2025-01-21T17:36:05.000Z","dependencies_parsed_at":"2022-08-13T15:50:13.726Z","dependency_job_id":null,"html_url":"https://github.com/jjgoings/pade","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjgoings%2Fpade","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjgoings%2Fpade/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjgoings%2Fpade/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjgoings%2Fpade/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jjgoings","download_url":"https://codeload.github.com/jjgoings/pade/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248813796,"owners_count":21165634,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fourier","fourier-transform","frequency","pade","pade-approximant","signal","time"],"created_at":"2024-10-15T05:49:40.381Z","updated_at":"2025-04-14T03:11:33.516Z","avatar_url":"https://github.com/jjgoings.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Python package](https://github.com/jjgoings/pade/actions/workflows/pythonpackage.yml/badge.svg)\n\nHere is a small Python implementation of the Fourier transform via Pade approximants found in this paper\n\n\u003eBruner, Adam, Daniel LaMaster, and Kenneth Lopata. \"Accelerated broadband spectra using transition dipole decomposition and Padé approximants.\" Journal of chemical theory and computation 12.8 (2016): 3741-3750.\n\n## Installation\n\n```\npip install -r requirements.txt\npip install -e .\n```\n\n## Example\n\nUsage is very simple. Here is an example:\n\nFirst, let's make a time series \n\n```\nimport numpy as np\nfrom pade import pade\n\nw  = 2.0\ndt = 0.02\nN  = 5000\nt  = np.linspace(0,dt*N, N, endpoint=False)\nsignal = np.sin(2*t) + np.sin(4*t) + np.sin(8*t)\n```\n\nWhich looks like this\n\n![Time-series signal](signal.png)\n\nThen we do the Pade\n\n```\nfw, frequency = pade(t,signal)\n```\n\nwhich, when we plot the imaginary component, looks like this\n\n![Transformed signal](fsignal.png)\n\nWhich is what we expect, since our sinusoidal signal had frequencies at 2, 4 and 8. Note the agreement between FFT implementation from SciPy overlaid in the above figure.\n\nYou can look at the arguments in `pade.py` for more options, most relating to what frequencies you ultimately want to evaluate the transformed signal over. (The Pade-approximant method actually yields a rational function, so it's up to the user to choose the domain.)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjgoings%2Fpade","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjjgoings%2Fpade","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjgoings%2Fpade/lists"}