Signal processing tools
Project description
SignalProcessingTools
A comprehensive Python package for time and space domain signal processing operations with a focus on vibration analysis and frequency-domain transformations. The space domain operations focus on railway applications, while the time domain operations are more general.
Overview
SignalProcessingTools provides a suite of tools for analyzing, transforming, and processing data.
Time domain operations:
- Fast Fourier Transforms (FFT) and inverse FFT
- Signal filtering
- Integration
- Power Spectral Density (PSD) using Welch's method
- Spectrogram generation
- Effective velocity calculations using SBR method
- 1/3 octave band analysis
- Windowing functions (Hann, Hamming, Blackman, etc.)
Space domain operations:
- D0, D1, D2, and D3 track longitudinal levels, following EN 13848-1:2006.
- Hmax and Hrms according to Zandberg et al. (2022).
Installation
Install from PyPI
You can install the package directly from PyPI using pip:
pip install SignalProcessingTools
Install from Source
To install the package from the source, clone the repository and run the following commands:
git clone https://github.com/PlatypusBytes/SignalProcessing.git
cd SignalProcessing
pip install -e .
Usage
Basic Example of Time Domain Operations
FFT and signal integration
import numpy as np
from SignalProcessingTools.time_signal import SignalProcessing, Windows
# Create a test signal
t = np.linspace(0, 10, 5001)
y = 1.75 * np.sin(2 * np.pi * 6 * t)
# Initialize the signal processor
sig = SignalProcessing(t, y)
# Perform FFT
sig.fft()
# Integrate the signal
sig.integrate(baseline=True, hp=True, fpass=1, n=6)
Windowed Processing and PSD and spectrogram
# Create a signal processor with Hamming window
sig = SignalProcessing(t, y, window=Windows.HAMMING, window_size=4096)
# Calculate Power Spectral Density
sig.psd()
# Generate a spectrogram
sig.spectrogram()
Signal Filtering
# Apply a low-pass filter to remove high frequency noise
sig.filter(10, 4, type_filter="lowpass")
Effective Velocity Calculation (SBR-B Method)
# Calculate effective velocity using SBR method
sig.v_eff_SBR()
Basic Example of Spatial Domain Operations
D0, D1, D2, and D3 Calculation
import numpy as np
from SignalProcessingTools.space_signal import SpatialSignal
from SignalProcessingTools.space_signal import EN13848
# Create test data
x = np.linspace(0, 100, 50001)
omega = 2 * np.pi * 6
y = 1.75 * np.sin(omega * x)
y_noise = y + 0.01 * np.sin(120 * x)
sig = SpaceSignalProcessing(x, y_noise)
# Compute track longitudinal levels
sig.compute_track_longitudinal_levels()
Hmax and Hrms Calculation
x_track = np.linspace(0, 500, 25001)
track_irregularity = (
0.002 * np.sin(2 * np.pi * 0.1 * x_track) +
0.001 * np.sin(2 * np.pi * 0.2 * x_track) +
0.0005 * np.sin(2 * np.pi * 0.4 * x_track) +
0.0002 * np.random.randn(len(x_track))
)
sig_hmax = SpaceSignalProcessing(x_track, track_irregularity)
# Compute Hmax parameters
sig_hmax.compute_Hmax(convert_m2mm=True)
Example Files
A comprehensive example demonstrating all features is provided for the time signal and space signal.
License
This project is licensed under the MIT License - see the License file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file signalprocessingtools-1.2.1.tar.gz.
File metadata
- Download URL: signalprocessingtools-1.2.1.tar.gz
- Upload date:
- Size: 15.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77b137f6bb0085f3a86513fde4da0b1aacc44f5082705a2da723bcea9b4ca164
|
|
| MD5 |
b50310cf75858e00cd58f6d67f301155
|
|
| BLAKE2b-256 |
661700d4c3d4318ed8796ddad630d91aeac6fda7088edbee546ee05068a8ff78
|
File details
Details for the file signalprocessingtools-1.2.1-py3-none-any.whl.
File metadata
- Download URL: signalprocessingtools-1.2.1-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
256350a42a49045bb63da42afa40c9587858ce499bec13b052a847f360a91693
|
|
| MD5 |
b0959bbc1ea101dc415e962a0307fdd7
|
|
| BLAKE2b-256 |
799ed3a9e3315d82ed0db6d559d3a3f48f7a3f35e5c5d166b1ecc0d97d05a3d8
|