https://github.com/marco-congedo/fourieranalysis.jl
A Julia package for the Fourier analysis of Multivariate Data in the Frequency and Time-Frequency Domain
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
1 of 9 committers (11.1%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.0%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
A Julia package for the Fourier analysis of Multivariate Data in the Frequency and Time-Frequency Domain
Basic Info
Statistics
- Stars: 60
- Watchers: 6
- Forks: 12
- Open Issues: 2
- Releases: 10
Topics
Metadata Files
README.md
| Documentation |
|:---------------------------------------:|
| |
Related Publications Technical report

FourierAnalysis is a signal-processing Julia package for performing the analysis of real multivariate data (e.g., multivariate time series) in the frequency domain and in the time-frequency domain. It is based upon the DSP.jl, FFTW.jl and AbstractFFTs.jl packages.
In the frequency domain FourierAnalysis computes spectra, linear and non-linear cross-spectral matrices and several linear and non-linear coherence matrices using the sliding-windows Welch method.
Time-frequency representations are obtained applying a filter-bank and the Hilbert transform. This way FourierAnalysis computes the analytic signal, from which the instantaneous amplitude (envelope) and instantaneous phase are obtained, along with several popular linear and non-linear, weighted, univariate and bivariate statistics, such as - mean amplitude - mean direction - phase concentration (the non-linear version of which is the directional statistic circular mean resultant length) - comodulation - coherence (the non-linear version of which is known as phase-locking values or phase coherence).
All these measures are provided in a simple and unified fashion, following the conceptual approach previously illustrated in in the context of electroencephalography (Congedo, 2018), for which all default settings have been tailored. The package has been written with the do-it-with-one-line spirit, but without sacrificing full control over relevant options.
Installation
Execute the following command in Julia's REPL:
]add FourierAnalysis
Disclaimer
Although fully functional, this package is still in a pre-release stage. It needs throughout testing. Independent reviewers are more then welcome.
About the Author
Marco Congedo is a Research Director of CNRS (Centre National de la Recherche Scientifique), working at UGA (University of Grenoble Alpes), in Grenoble (France), the city where Jean-Baptiste Joseph Fourier has served as a Prefect:).
Contact
first name dot last name at gmail dot com
Examples
``` using FourierAnalysis, Plots
Set sampling rate (sr) and FFT window length (wl):
sr, wl = 128, 128
Generate a sinusoidal wave at 10Hz with peak amplitude 0.5 and add some white noise:
v = sinusoidal(0.5, 10, sr, wl16) + randn(wl16)
Get the power spectrum with a rectangular tapering window:
S = spectra(v, sr, wl; tapering=rectangular)
Plot the power spectrum:
plot(S; fmax=24)
The same syntax applies in the case of multivariate data (e.g., 4 time-series):
V = randn(wl*16, 4) S = spectra(V, sr, wl; tapering=hamming) plot(S)
Get the analytic amplitude in the time-Frequency domain:
A = TFamplitude(v, sr, wl; fmax=24)
plot the analytic amplitude:
heatmap(A.y)
```
| Documentation |
|:---------------------------------------:|
| |
Owner
- Name: Marco Congedo
- Login: Marco-Congedo
- Kind: user
- Location: Grenoble
- Company: CNRS
- Website: https://sites.google.com/site/marcocongedo/science
- Twitter: MarcoCongedo4
- Repositories: 4
- Profile: https://github.com/Marco-Congedo
Research Director at the 'Centre National de la Recherche Scientifique' (CNRS), working at Grenoble Alpes University.
GitHub Events
Total
- Create event: 3
- Issues event: 2
- Release event: 2
- Watch event: 4
- Delete event: 2
- Issue comment event: 6
- Push event: 24
- Pull request event: 7
Last Year
- Create event: 3
- Issues event: 2
- Release event: 2
- Watch event: 4
- Delete event: 2
- Issue comment event: 6
- Push event: 24
- Pull request event: 7
Committers
Last synced: almost 3 years ago
All Time
- Total Commits: 123
- Total Committers: 9
- Avg Commits per committer: 13.667
- Development Distribution Score (DDS): 0.447
Top Committers
| Name | Commits | |
|---|---|---|
| Marco-Congedo | m****o@g****m | 68 |
| Marco Congedo | 4****o@u****m | 33 |
| marco congedo | m****o@g****m | 12 |
| CompatHelper Julia | c****y@j****g | 4 |
| Páll Haraldsson | P****n@g****m | 2 |
| Ben Arthur | b****0@g****m | 1 |
| Grigory Starkov | 3****q@u****m | 1 |
| Hongyang Zhou | h****u@u****u | 1 |
| Julia TagBot | 5****t@u****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 15
- Total pull requests: 64
- Average time to close issues: 3 months
- Average time to close pull requests: 9 days
- Total issue authors: 10
- Total pull request authors: 9
- Average comments per issue: 3.27
- Average comments per pull request: 0.08
- Merged pull requests: 60
- Bot issues: 0
- Bot pull requests: 6
Past Year
- Issues: 3
- Pull requests: 4
- Average time to close issues: about 15 hours
- Average time to close pull requests: 3 days
- Issue authors: 2
- Pull request authors: 2
- Average comments per issue: 1.67
- Average comments per pull request: 0.25
- Merged pull requests: 3
- Bot issues: 0
- Bot pull requests: 1
Top Authors
Issue Authors
- Marco-Congedo (4)
- henry2004y (3)
- johtok (1)
- olaayeko (1)
- rafael-guerra-www (1)
- Roh-codeur (1)
- bjarthur (1)
- SeverinBang (1)
- Mattriks (1)
- JuliaTagBot (1)
Pull Request Authors
- Marco-Congedo (54)
- github-actions[bot] (6)
- dependabot[bot] (2)
- laborg (1)
- Gregstrq (1)
- henry2004y (1)
- bjarthur (1)
- PallHaraldsson (1)
- JuliaTagBot (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- julia 41 total
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 11
juliahub.com: FourierAnalysis
A Julia package for the Fourier analysis of Multivariate Data in the Frequency and Time-Frequency Domain
- Documentation: https://docs.juliahub.com/General/FourierAnalysis/stable/
- License: MIT
-
Latest release: 1.2.5
published 8 months ago
Rankings
Dependencies
- julia-actions/setup-julia v1 composite
- JuliaRegistries/TagBot v1 composite