cds2.signals
Signal processing on scipy.signal and numpy.fft.
Signal processing — convenience re-export of scipy.signal/numpy.fft with uniform result types; see cds2.wavelets/cds2.spectral for CDS-native.
Spectrum
dataclass
Power spectral density estimate.
Source code in src/cds2/signals.py
38 39 40 41 42 43 | |
SpectrogramResult
dataclass
Short-time Fourier transform magnitude spectrogram.
Source code in src/cds2/signals.py
46 47 48 49 50 51 52 | |
PeakResult
dataclass
Indices and amplitudes of detected peaks.
Source code in src/cds2/signals.py
55 56 57 58 59 60 | |
fft(x)
Full complex discrete Fourier transform.
Source code in src/cds2/signals.py
63 64 65 | |
ifft(x)
Inverse discrete Fourier transform.
Source code in src/cds2/signals.py
68 69 70 | |
rfft(x)
Real-input FFT returning the non-negative frequency half.
Source code in src/cds2/signals.py
73 74 75 | |
irfft(x, n=None)
Inverse real FFT back to a time-domain signal.
Source code in src/cds2/signals.py
78 79 80 | |
fftfreq(n, dt=1.0)
FFT sample frequencies for a window of n samples with spacing dt.
Source code in src/cds2/signals.py
83 84 85 | |
power_spectrum(x, fs)
Periodogram-based power spectral density of a uniformly sampled signal.
Source code in src/cds2/signals.py
88 89 90 91 | |
welch_spectrum(x, fs, nperseg=256)
Welch-averaged power spectral density (lower variance than periodogram).
Source code in src/cds2/signals.py
94 95 96 97 98 | |
spectrogram(x, fs, nperseg=256)
STFT magnitude squared over sliding windows.
Source code in src/cds2/signals.py
101 102 103 104 105 106 107 | |
butter_lowpass(cutoff, fs, order=5)
Second-order-section coefficients of a Butterworth low-pass filter.
Source code in src/cds2/signals.py
110 111 112 113 114 | |
butter_highpass(cutoff, fs, order=5)
Second-order-section coefficients of a Butterworth high-pass filter.
Source code in src/cds2/signals.py
117 118 119 120 121 | |
butter_bandpass(low, high, fs, order=5)
Second-order-section coefficients of a Butterworth band-pass filter.
Source code in src/cds2/signals.py
124 125 126 127 128 | |
filter_signal(x, sos)
Zero-phase forward-backward filtering with second-order sections.
Source code in src/cds2/signals.py
131 132 133 134 | |
moving_average(x, window)
Centered moving average with edge-preserving 'same' convolution.
Source code in src/cds2/signals.py
137 138 139 140 141 142 143 | |
convolve_signals(a, b, mode='same')
Linear convolution of two sequences.
Source code in src/cds2/signals.py
146 147 148 149 150 | |
correlate_signals(a, b, mode='same')
Cross-correlation of two sequences.
Source code in src/cds2/signals.py
153 154 155 156 157 | |
find_peaks(x, height=None, distance=None, prominence=None)
Local maxima detection with optional height/distance/prominence filters.
Source code in src/cds2/signals.py
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | |
envelope(x)
Analytic-signal amplitude envelope via the Hilbert transform.
Source code in src/cds2/signals.py
180 181 182 183 | |
resample_signal(x, num)
Fourier-method resampling to exactly num samples.
Source code in src/cds2/signals.py
186 187 188 189 | |
detrend_signal(x)
Remove the best-fit linear trend from a signal.
Source code in src/cds2/signals.py
192 193 194 195 | |
stft(x, fs, nperseg=256)
Short-time Fourier transform returning (times, frequencies, complex Zxx).
Source code in src/cds2/signals.py
198 199 200 201 | |
coherence(x, y, fs, nperseg=256)
Magnitude-squared coherence between two signals.
Source code in src/cds2/signals.py
204 205 206 207 208 209 | |