Skip to main content

Signal processing tools

Project description

SignalProcessingTools

Tests PyPI version Python versions

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

signalprocessingtools-1.2.2.tar.gz (15.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

signalprocessingtools-1.2.2-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file signalprocessingtools-1.2.2.tar.gz.

File metadata

  • Download URL: signalprocessingtools-1.2.2.tar.gz
  • Upload date:
  • Size: 15.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for signalprocessingtools-1.2.2.tar.gz
Algorithm Hash digest
SHA256 13aa9da1ea71f25740e6608fc70d8bdf70b28ce25eab94b4bb7cc3c6ffc38d82
MD5 3b18a47e161f94645914c232da3eca1e
BLAKE2b-256 5e0a3a3316cf5bcec9fe87955ab37df5d5218ccd37b34b4a3fac8275b7805f5f

See more details on using hashes here.

File details

Details for the file signalprocessingtools-1.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for signalprocessingtools-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d4920115507d3dd2f8a4ad6cd24f2f0b070655f7f9d41b603c718628b4dea297
MD5 592f3f801e8c019ff24011b2051f6935
BLAKE2b-256 b17e7c3073a3b99ae5f97181ea4a9224ae02cdba31c6e54705fb1b4e3f792fd9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page