Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/feromond/fft_rust
Small project to help me learn Rust and develop skills
https://github.com/feromond/fft_rust
fft learning rust scientific-computing scientific-visualization signal-processing
Last synced: about 8 hours ago
JSON representation
Small project to help me learn Rust and develop skills
- Host: GitHub
- URL: https://github.com/feromond/fft_rust
- Owner: Feromond
- License: mit
- Created: 2023-04-06T20:33:41.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-08-11T06:46:42.000Z (3 months ago)
- Last Synced: 2024-08-11T07:43:52.688Z (3 months ago)
- Topics: fft, learning, rust, scientific-computing, scientific-visualization, signal-processing
- Language: Rust
- Homepage:
- Size: 1.92 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FFT_Rust
## Hobby Project By: _Jacob Mish_
Table of Contents
## About The Project
This project aims to create a dynamic fast fourier transform tool which can plot any raw signal and the associated amplitude spectrum after FFT.
To install all required python packages run:
`python -m pip install -r requirements.txt`
Then to run the front end GUI version with this python setup, run:
`streamlit run FileLoader.py`## Release Notes:
#### Pre-release v1:
- Created a base simple version of the program with static initial inputs to test and validate the program functions.
- Plotting functionality is able to dynamically adjust plot x and y dimensions based on the input data, sampling rates, and number of points.- Future implementation will begin to add forms of user input or potential implement basic file reading to process more interesting data.
#### Pre-release v2:
- Updated project to dynamically update plot windows and axis based on input data.
- Changed the signal from a simple pre-configured sinusoid to instead be read in from a file containing some complex raw signal.
- Adjusted all static parameters to dynamically compute based on the input raw signal file.- Future implementations will start to work with the users inputs and will also handle more filetypes better.
- Theoretical future implementation will be to work on handling errors and exceptions better, as well as overall code optimization and redundancy reduction.#### Alpha-release v1:
- Utilized python streamlit for the front-end of the application to allow for file uploading and displaying of the results
- Currently do not have much error handling for invalid data structures within files.
- Columns must still be in specific order for the data to plot correctly, hopefully in a future version I will add a way to self identify which column is most likely to be the "time" and which is the measured amplitudes.
- Added argument handling so when running the binary, a specific file can be referenced and it will process it. Still defaults to "sample_dataset/sample_data.txt" if there is no argument provided. Will not run without that file in the correct directory.**Run the Streamlit Front-End Version**: Clone this repo locally and then ensure you have a python version with streamlit installed. Then within the project directory write
```
streamlit run FileLoader.py
```If there is some error occuring, a temporary solution could be to recompile the rust binary release locally. This can be done within the project directory using
```
cargo build --release
```### References
[Rustfft](https://docs.rs/rustfft/latest/rustfft/)