Skip to main content

Filtering digital signals using a front end to scipy filters

Project description

A collection of digital signal filter front end for SciPy

A collection of signal processing tools, utilities and class for signal processing

Description

The signal processing tool box has the following topics

  1. filters: Definition of three digital signal filters (all with low, high, -band-pass mode)
    • Ideal block filter

    • Butterworth filter

    • Kaiser filter

    • Phase shift removal

  2. utils: Classes and function to support signal processing
    • SignalGenerator: class to generated signal with multiple harmonic components and noise for testing purposes

    • get_peaks: Extract the peaks from a power spectral density

Installation

SignalFilters can be installed via pip from PyPi

pip install SignalFilters

Examples

Using digital filters is easy. In two steps we do:

  1. Define a noisy sine wave

from  numpy import linspace, sin, random, pi
from signal_filters.filters import filter_signal


A_peak = 1.0            # Amplitude at 10 m
a_noise = 0.2 * A       # Noise rms at 0.2 m
T_peak = 10             # period of 10 seconds
f_peak = 1 / T_peak     # peak frequency at 0.1 Hz
total_time = 1000       # total sampling time of 1000 seconds
f_sample = 10           # sample frequency at 10 Hz
n_points = total_time * f_sample

time = linspace(0, total_time, num=n_points, endpoint=False)
y_original = sin(2 * pi * time / T_peak)
y_noise = random.normal(scale=a_noise, size=y_original.size)
y_total = y_original + y_noise
  1. Filter the noisy sine wave with a band pass filter with low and high cut-off frequency at 0.08 Hz and 0.12 Hz, respectively:

y_sine_filtered = filter_signal(y_total,
                                f_cut_low=0.08,
                                f_cut_high=.12,
                                f_sampling=f_sample)

More examples can be found at example_filtering and example_filtering_rtd.

Notes

  • The SciPy packages provides most signal processing tool, such as as a Power Spectral Density (PSF) estimator.

  • The filters defined in this package are a front end to the Scipy filters, making it easier to use digital filters in your code.

  • For peak finding either the PeakUtils or the PyWafo package is recommended.

  • The function get_peaks is a front end to the peakutils.peaks function

  • This project has been set up using PyScaffold 4.5.0. For details and usage information on PyScaffold see http://pyscaffold.readthedocs.org/.

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

signalfilters-0.0.8.tar.gz (15.8 MB view details)

Uploaded Source

Built Distribution

SignalFilters-0.0.8-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

Details for the file signalfilters-0.0.8.tar.gz.

File metadata

  • Download URL: signalfilters-0.0.8.tar.gz
  • Upload date:
  • Size: 15.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.7

File hashes

Hashes for signalfilters-0.0.8.tar.gz
Algorithm Hash digest
SHA256 e670ac22224876ee9f12bbffc54eacf2b753445ac436b1d638feca097d9c87dd
MD5 de8b5cdf2263013c035c3244ca5f5dbf
BLAKE2b-256 00d5f5aea3e5c12e8cf9396a25bdf74cb9eda3a5e1b921736588b98b81d71203

See more details on using hashes here.

File details

Details for the file SignalFilters-0.0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for SignalFilters-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 e5985b86d6a545637fa0ee425ba1fb24fe2caceab5771c13c5aef2f9019a1842
MD5 f04dc1eea729d80a9bf79463b88a9cbe
BLAKE2b-256 eae8678eb2375b815f20237a135c4ef38e328bd97d49a2a884e2fe3f3f57dc45

See more details on using hashes here.

Supported by

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