Expand description
ยงSciRS2 Signal - Digital Signal Processing
scirs2-signal provides comprehensive signal processing capabilities modeled after SciPyโs
signal module, offering filtering, spectral analysis, wavelet transforms, system identification,
and time-frequency analysis with SIMD acceleration and parallel processing.
ยง๐ฏ Key Features
- SciPy Compatibility: Drop-in replacement for
scipy.signalfunctions - Digital Filters: FIR, IIR, Butterworth, Chebyshev, elliptic, Bessel
- Spectral Analysis: FFT-based PSD, spectrograms, Lomb-Scargle periodograms
- Wavelet Transforms: DWT, CWT, dual-tree complex wavelets, 2D transforms
- Convolution: Fast 1D/2D convolution with SIMD and parallel support
- LTI Systems: Transfer functions, state-space, frequency response
- Advanced Methods: EMD, Hilbert transform, system identification
ยง๐ฆ Module Overview
| SciRS2 Module | SciPy Equivalent | Description |
|---|---|---|
filter | scipy.signal.butter, cheby1 | Digital filter design (FIR/IIR) |
convolve | scipy.signal.convolve | 1D/2D convolution and correlation |
spectral | scipy.signal.periodogram | Power spectral density, spectrograms |
dwt | pywt.dwt | Discrete wavelet transform |
wavelets | pywt.cwt | Continuous wavelet transform |
window | scipy.signal.get_window | Window functions (Hann, Hamming, etc.) |
lti | scipy.signal.TransferFunction | LTI system representation |
lombscargle | scipy.signal.lombscargle | Lomb-Scargle periodogram |
ยง๐ Quick Start
[dependencies]
scirs2-signal = "0.1.5"use scirs2_signal::{convolve, filter, spectral};
// Convolution
let signal = vec![1.0, 2.0, 3.0];
let kernel = vec![0.25, 0.5, 0.25];
let filtered = convolve(&signal, &kernel, "same").expect("operation should succeed");ยง๐ Version: 0.2.0 (February 8, 2026)
Re-exportsยง
pub use error::SignalError;pub use error::SignalResult;pub use convolve::convolve;pub use convolve::convolve_simd_ultra;pub use convolve::correlate;pub use convolve_parallel::parallel_convolve1d;pub use convolve_parallel::parallel_convolve_simd_ultra;pub use measurements::peak_to_peak;pub use measurements::peak_to_rms;pub use measurements::rms;pub use measurements::snr;pub use measurements::thd;pub use filter::analyze_filter;pub use filter::butter;pub use filter::filtfilt;pub use filter::firwin;pub use filter::FilterType;pub use lti::design_tf;pub use lti::impulse_response;pub use lti::lsim;pub use lti::step_response;pub use lti::TransferFunction;pub use spectral::get_window_simd_ultra;pub use spectral::periodogram;pub use spectral::spectrogram;pub use spectral::stft;pub use spectral::welch;pub use dwt::dwt_decompose;pub use dwt::dwt_reconstruct;pub use dwt::wavedec;pub use dwt::waverec;pub use dwt::DecompositionResult;pub use dwt::Wavelet;pub use dwt::WaveletFilters;pub use wavelets::complex_morlet;pub use wavelets::cwt;pub use wavelets::morlet;pub use wavelets::ricker;pub use wavelets::scalogram;pub use parametric::ar_spectrum;pub use parametric::burg_method;pub use parametric::yule_walker;pub use parametric_advanced_enhanced::adaptive_ar_spectral_estimation;pub use parametric_advanced_enhanced::advanced_enhanced_arma;pub use parametric_advanced_enhanced::high_resolution_spectral_estimation;pub use parametric_advanced_enhanced::multitaper_parametric_estimation;pub use parametric_advanced_enhanced::robust_parametric_spectral_estimation;pub use parametric_advanced_enhanced::AdaptiveARConfig;pub use parametric_advanced_enhanced::AdvancedEnhancedConfig;pub use parametric_advanced_enhanced::HighResolutionConfig;pub use parametric_advanced_enhanced::MultitaperParametricConfig;pub use parametric_advanced_enhanced::RobustParametricConfig;pub use swt::iswt;pub use swt::swt;pub use swt::swt_decompose_simd_pipelined;pub use tv::tv_denoise_1d;pub use tv::tv_denoise_2d;pub use waveforms::chirp;pub use waveforms::sawtooth;pub use waveforms::square;pub use dwt2d_advanced::denoise_2d;pub use dwt2d_advanced::dwt2d_decompose;pub use dwt2d_advanced::dwt2d_reconstruct;pub use dwt2d_advanced::wavedec2;pub use dwt2d_advanced::waverec2;pub use dwt2d_advanced::Dwt2DCoeffs;pub use dwt2d_advanced::EdgeMode2D;pub use dwt2d_advanced::MultilevelDwt2D;pub use wavelet_advanced::advanced_denoise_1d;pub use wavelet_advanced::block_denoise_1d;pub use wavelet_advanced::select_best_basis;pub use wavelet_advanced::BestBasisResult;pub use wavelet_advanced::CostFunction as WaveletCostFunction;pub use wavelet_advanced::DenoisingConfig;pub use wavelet_advanced::ThresholdMode;pub use wavelet_advanced::ThresholdRule;pub use wpt_enhanced::best_basis_analysis;pub use wpt_enhanced::wpt_denoise;pub use wpt_enhanced::CostFunction as WptCostFunction;pub use wpt_enhanced::WaveletPacketTree;pub use wpt_enhanced::WptNode;pub use wpt_enhanced::WptValidationResult;pub use advanced_spectral_v2::ar_spectral_estimation;pub use advanced_spectral_v2::arma_spectral_estimation;pub use advanced_spectral_v2::memory_optimized_ar_spectral;pub use advanced_spectral_v2::ARMASpectralConfig;pub use advanced_spectral_v2::ARMASpectralMethod;pub use advanced_spectral_v2::ARMASpectralResult;pub use advanced_spectral_v2::ARSpectralConfig;pub use advanced_spectral_v2::ARSpectralMethod;pub use advanced_spectral_v2::ARSpectralResult;pub use advanced_spectral_v2::MemoryOptimizedSpectralConfig;pub use advanced_spectral_v2::ParallelSpectralConfigV2;pub use advanced_spectral_v2::StreamingSpectralEstimator;pub use parallel_filtering_v2::batch_fir_filter;pub use parallel_filtering_v2::batch_iir_filter;pub use parallel_filtering_v2::parallel_fir_filter;pub use parallel_filtering_v2::parallel_iir_filter;pub use parallel_filtering_v2::parallel_median_filter;pub use parallel_filtering_v2::parallel_moving_average;pub use parallel_filtering_v2::parallel_savgol_filter;pub use parallel_filtering_v2::BatchFilterConfig;pub use parallel_filtering_v2::FIRFilterMethod;pub use parallel_filtering_v2::PaddingMode;pub use parallel_filtering_v2::ParallelFIRConfig;pub use parallel_filtering_v2::ParallelIIRConfig;pub use parallel_filtering_v2::StreamingFIRFilter;pub use parallel_filtering_v2::StreamingIIRFilter;pub use spectral_scipy_validation_v2::generate_validation_report;pub use spectral_scipy_validation_v2::run_comprehensive_validation;pub use spectral_scipy_validation_v2::ValidationResult;pub use spectral_scipy_validation_v2::ValidationSuite;pub use adaptive::AdaptiveFilter;pub use adaptive::AdaptiveFilterConfig;pub use adaptive::AdaptiveMethod;pub use adaptive::ApaFilter;pub use adaptive::FdlmsFilter;pub use adaptive::LmfFilter;pub use adaptive::LmsFilter;pub use adaptive::NlmsFilter;pub use adaptive::RlsFilter;pub use adaptive::SmLmsFilter;pub use adaptive::VsLmsFilter;pub use cepstral::complex_cepstrum;pub use cepstral::compute_deltas;pub use cepstral::mel_filter_bank;pub use cepstral::mfcc;pub use cepstral::mfcc_extract;pub use cepstral::mfcc_frame;pub use cepstral::real_cepstrum;pub use cepstral::MelFilterBankConfig;pub use cepstral::MfccConfig;pub use modulation::am_demodulate;pub use modulation::am_modulate;pub use modulation::demodulate;pub use modulation::fm_demodulate;pub use modulation::fm_modulate;pub use modulation::modulate;pub use modulation::qam_constellation;pub use modulation::qam_demodulate_bits;pub use modulation::qam_modulate_bits;pub use modulation::qam_modulate_passband;pub use modulation::AmMode;pub use modulation::ModulationMethod;pub use modulation::QamOrder;pub use modulation::QamSymbol;pub use beamforming::beamform;pub use beamforming::delay_and_sum_filter;pub use beamforming::delay_and_sum_power;pub use beamforming::estimate_covariance;pub use beamforming::estimate_covariance_real;pub use beamforming::mvdr_power;pub use beamforming::mvdr_weights;pub use beamforming::scan_angles_degrees;pub use beamforming::steering_vector_ula;pub use beamforming::steering_vectors_ula;pub use beamforming::BeamformMethod;pub use system_identification::armax_estimate;pub use system_identification::arx_estimate;pub use system_identification::n4sid_estimate;pub use system_identification::oe_estimate;pub use system_identification::pem_estimate;pub use system_identification::rls_batch;pub use system_identification::ArmaxConfig;pub use system_identification::ArxConfig;pub use system_identification::N4sidConfig;pub use system_identification::OeConfig;pub use system_identification::PemConfig;pub use system_identification::RlsConfig;pub use system_identification::RlsEstimator;pub use system_identification::SubspaceIdResult;pub use system_identification::SysIdResult;pub use tf_analysis::nichols_chart;pub use tf_analysis::nyquist_diagram;pub use tf_analysis::pole_zero_analysis;pub use tf_analysis::root_locus;pub use tf_analysis::sensitivity_functions;pub use tf_analysis::stability_margins;pub use tf_analysis::NicholsResult;pub use tf_analysis::NyquistResult;pub use tf_analysis::PoleZeroResult;pub use tf_analysis::RootLocusResult;pub use tf_analysis::SensitivityResult;pub use tf_analysis::StabilityMargins;pub use state_space_ops::balanced_realization;pub use state_space_ops::balanced_truncation;pub use state_space_ops::compute_gramians;pub use state_space_ops::hankel_norm_reduction;pub use state_space_ops::minimal_realization;pub use state_space_ops::ss_feedback;pub use state_space_ops::ss_parallel;pub use state_space_ops::ss_series;pub use state_space_ops::ss_to_tf;pub use state_space_ops::tf_to_ss_controllable;pub use state_space_ops::tf_to_ss_observable;pub use state_space_ops::BalancedRealization;pub use state_space_ops::GramianResult;pub use state_space_ops::MinimalRealization;pub use state_space_ops::ReducedModel;pub use spectral_advanced::burg_spectral;pub use spectral_advanced::esprit_spectral;pub use spectral_advanced::false_alarm_level;pub use spectral_advanced::false_alarm_probability;pub use spectral_advanced::lomb_scargle_periodogram;pub use spectral_advanced::multitaper_ftest_line_detection;pub use spectral_advanced::multitaper_psd;pub use spectral_advanced::music_spectral;pub use spectral_advanced::yule_walker_spectral;pub use spectral_advanced::BurgConfig;pub use spectral_advanced::BurgResult;pub use spectral_advanced::EspritConfig;pub use spectral_advanced::EspritResult;pub use spectral_advanced::FTestResult as MultitaperFTestResult;pub use spectral_advanced::FalseAlarmResult;pub use spectral_advanced::FapMethod;pub use spectral_advanced::LombScargleConfig;pub use spectral_advanced::LombScargleNormalization;pub use spectral_advanced::LombScargleResult;pub use spectral_advanced::MultitaperConfig;pub use spectral_advanced::MultitaperResult;pub use spectral_advanced::MusicConfig;pub use spectral_advanced::MusicResult;pub use spectral_advanced::YuleWalkerConfig;pub use spectral_advanced::YuleWalkerResult;pub use multichannel::apply_mixing_matrix;pub use multichannel::cross_channel_correlation;pub use multichannel::cross_correlation_lag;pub use multichannel::csp;pub use multichannel::csp_apply;pub use multichannel::fastica;pub use multichannel::mix_to_mono;pub use multichannel::mono_to_multichannel;pub use multichannel::reorder_channels;pub use multichannel::select_channels;pub use multichannel::CspConfig;pub use multichannel::CspResult;pub use multichannel::FastIcaConfig;pub use multichannel::FastIcaResult;pub use multichannel::MixMode;pub use multichannel::MultiChannelSignal;pub use time_frequency::choi_williams;pub use time_frequency::cohens_class;pub use time_frequency::gaussian_window as tf_gaussian_window;pub use time_frequency::hann_window as tf_hann_window;pub use time_frequency::instantaneous_amplitude;pub use time_frequency::instantaneous_frequency;pub use time_frequency::kernel_born_jordan;pub use time_frequency::kernel_wigner_ville;pub use time_frequency::pseudo_wigner_ville;pub use time_frequency::reassigned_spectrogram;pub use time_frequency::smoothed_pseudo_wigner_ville;pub use time_frequency::wigner_ville;pub use time_frequency::CohenKernelFn;pub use time_frequency::ReassignedTfDistribution;pub use time_frequency::TfDistribution;pub use signal_quality::crest_factor as signal_crest_factor;pub use signal_quality::crest_factor_db;pub use signal_quality::dynamic_range;pub use signal_quality::enob;pub use signal_quality::perceptual_quality;pub use signal_quality::segmental_snr;pub use signal_quality::si_sdr;pub use signal_quality::sinad;pub use signal_quality::snr_blind;pub use signal_quality::snr_from_noise_floor;pub use signal_quality::snr_reference;pub use signal_quality::spectral_flatness;pub use signal_quality::spectral_flatness_frames;pub use signal_quality::zero_crossing_rate;pub use signal_quality::zero_crossing_rate_frames;pub use signal_quality::BlindSnrConfig;pub use signal_quality::DynamicRangeResult;pub use signal_quality::PerceptualQualityResult;pub use resampling::decimate;pub use resampling::design_anti_alias_filter;pub use resampling::downsample;pub use resampling::fractional_delay;pub use resampling::interpolate;pub use resampling::lagrange_delay_filter;pub use resampling::resample;pub use resampling::resample_poly;pub use resampling::resample_to_length;pub use resampling::sinc_delay_filter;pub use resampling::upsample;pub use resampling::ResamplingConfig;pub use resampling::ResamplingQuality;pub use resampling::WindowType as ResamplingWindowType;
Modulesยง
- adaptive
- advanced_
spectral_ v2 - Advanced Spectral Analysis for v0.2.0
- beamforming
- Beamforming module for array signal processing
- cepstral
- Cepstral analysis module for signal processing
- convolve
- convolve_
parallel - denoise_
enhanced - Enhanced wavelet denoising with advanced thresholding methods
- dwt
- dwt2d_
advanced - Advanced 2D Discrete Wavelet Transform Module
- dwt2d_
enhanced - Enhanced 2D Discrete Wavelet Transform (DWT) Module
- dwt2d_
super_ refined - Advanced-refined 2D wavelet transforms with memory efficiency and adaptive basis selection
- emd
- error
- filter
- hilbert
- lombscargle
- lombscargle_
enhanced - lombscargle_
scipy_ validation - Comprehensive Lomb-Scargle validation against SciPy reference implementation
- lti
- measurements
- median
- memory_
optimized - modulation
- Modulation and demodulation module for signal processing
- multichannel
- Multi-channel signal processing
- multitaper
- parallel_
filtering_ v2 - Enhanced Parallel Filtering Operations for v0.2.0
- parallel_
spectral - parametric
- Parametric spectral estimation methods
- parametric_
advanced - parametric_
advanced_ enhanced - Advanced-enhanced parametric spectral estimation with SIMD acceleration
- resampling
- Signal Resampling
- signal_
quality - Signal Quality Metrics
- simd_
advanced - Advanced SIMD-optimized signal processing operations
- spectral
- Advanced Spectral Analysis Methods
- spectral_
advanced - Enhanced spectral analysis methods
- spectral_
scipy_ validation_ v2 - SciPy Comparison Validation Tests for Advanced Spectral Analysis v0.2.0
- spline
- state_
space_ ops - State Space Operations
- streaming
- Real-time / streaming signal processing module.
- swt
- sysid
- system_
identification - System Identification Module
- tf_
analysis - Enhanced Transfer Function Analysis
- time_
frequency - Time-Frequency Analysis
- tv
- utils
- waveforms
- wavelet_
advanced - Advanced Wavelet Features Module
- wavelets
- window
- Window Functions for Signal Processing
- wpt_
enhanced - Enhanced Wavelet Packet Transform Module