gw_signal

Crates.iogw_signal
lib.rsgw_signal
version0.1.10-alpha.2
sourcesrc
created_at2024-03-09 13:01:03.593097
updated_at2024-04-28 22:16:15.326206
descriptionPackage with signal processing tools for graviational waves studies
homepage
repository
max_upload_size
id1167801
size116,915
(PaulLagabbe)

documentation

README

I started this project to train myself on the rust programming language. This library provides tools for signal processing and analysis. It is composed by four classes:

TimeSeries

The TimeSeries object describes time series data, which consists in time indexed vector.

Attributes

  • fs: sampling frequency
  • t0: time of the first sample
  • data: data vector

Methods

Constructor methods

  • white_noise: generates a white noise signal with a given amplitude
  • constant: generates a constant signal at a given value
  • wave: generates a sinusoidal signal withe the given frequency, amplitude and phase at t0
  • from_vector: transform a data vector into a TimeSeries object

Methods for spectral analysis.

These methods create a FrequencySeries object.

  • csd: cross spectral density
  • psd: power spectral density
  • asd: amplitude spectral density
  • tf: transfer function
  • cohe: coherence

Getter methods

  • get_fs: get sampling frequency
  • get_t0: get start time
  • get_size: get data vector size
  • get_data: get data vector

Math methods

  • abs: computes modulus of the data
  • sqrt: computes the square root of the data
  • inv: computes the inverse of the data

Operator overloading

  • (+) add
  • (-) subtract
  • (*) multiply
  • (/) divide
  • ([]) index

Others

  • apply_filter: apply the Filter object to the time series

  • print: print the chosen elements (debug function)

  • write: wrte time and data vectors into an ascii file

FrequencySeries

The FrequencySeries object describes the frequency indexed data. The vector contains complex data type.

Attributes

  • f_max: sampling frequency
  • data: data vector

Methods

Constructor methods

  • from_vector: transform a data vector into a FrequencySeries object.

Getter methods

  • get_f_max: get maximum frequency
  • get_size: get data vector size
  • get_data: get data vector

Math methods

  • re: computes real part of the data
  • im: computes imaginary part of the data
  • abs: computes modulus of the data
  • abs2: computes the square modulus of the data
  • conj: computes the complex conjugates of the data
  • sqrt: computes the square root of the data
  • inv: computes the inverse of the data

Operator overloading

  • (+) add
  • (-) subtract
  • (*) multiply
  • (/) divide
  • ([]) index

Others

  • print: print the chosen elements (debug function)

  • write: wrte time and data vectors into an ascii file

Window

Attributes

  • overlap: number of samples two successives windows overlap over
  • vector: window vector

Methods

Constructors

  • rectangle
  • hann

Other

  • nb_fft: computes the number of windows

  • get_size: return window size

  • get_windowed_data: compute the window data

  • get_norm_factor; computes the integral of the squared window

Filter

Attributes

  • gain: gain of the filter
  • poles: pole frequencies list
  • zeros: zero frequencies list
  • fs: sampling frequency

Methods

filter application methods

  • bilinear_transform
  • adapt_frequencies
  • polezero_to_coef

Generic filter constructor

  • butterworth
  • chebyshev_type1
  • chebyshev_type2

Custom filter contructor

  • init_filter
  • gain_factor
  • add_pole_1
  • add_pole_2
  • add_zero_1
  • add_zero_2
  • add_integrator
  • add_derivator

getter function

  • get_poles
  • get_zeros
  • get_gain
  • get_fs

Other

  • frequency_response
Commit count: 0

cargo fmt