Module quantum_inferno.styx_fft

This module calculates spectra: STFT, FFT

Functions

def butter_bandpass(sig_wf: numpy.ndarray, frequency_sample_rate_hz: float, frequency_cut_low_hz, frequency_cut_high_hz, filter_order: int = 4, tukey_alpha: float = 0.5) ‑> numpy.ndarray

Butterworth bandpass filter

:param sig_wf: signal waveform as numpy array :param frequency_sample_rate_hz: frequency sample rate in Hz :param frequency_cut_low_hz: frequency low value :param frequency_cut_high_hz: frequency high value :param filter_order: filter order :param tukey_alpha: Tukey window alpha :return: filtered signal waveform as numpy array

def butter_highpass(sig_wf: numpy.ndarray, frequency_sample_rate_hz: float, frequency_cut_low_hz: Union[float, int], filter_order: int = 4, tukey_alpha: float = 0.5) ‑> numpy.ndarray

Butterworth bandpass filter

:param sig_wf: signal waveform as numpy array :param frequency_sample_rate_hz: frequency sample rate in Hz :param frequency_cut_low_hz: frequency low value :param filter_order: filter order :param tukey_alpha: Tukey window alpha :return: filtered signal waveform as numpy array

def butter_lowpass(sig_wf: numpy.ndarray, frequency_sample_rate_hz: float, frequency_cut_high_hz: Union[float, int], filter_order: int = 4, tukey_alpha: float = 0.5) ‑> numpy.ndarray

Butterworth bandpass filter

:param sig_wf: signal waveform as numpy array :param frequency_sample_rate_hz: frequency sample rate in Hz :param frequency_cut_high_hz: frequency low value :param filter_order: filter order :param tukey_alpha: Tukey window alpha :return: filtered signal waveform as numpy array

def gtx_complex_pow2(sig_wf: numpy.ndarray, frequency_sample_rate_hz: float, segment_points: int, gaussian_sigma: int = None, overlap_points: int = None, nfft_points: int = None) ‑> Tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray]

Gaussian taper with 50% overlap and built-in defaults

:param sig_wf: signal waveform as numpy array :param frequency_sample_rate_hz: frequency sample rate in Hz :param segment_points: number of points in a segment :param gaussian_sigma: gaussian window variance :param overlap_points: number of points in overlap :param nfft_points: length of FFT :return: frequency_stft_hz, time_stft_s, stft_complex

def stft_complex_pow2(sig_wf: numpy.ndarray, frequency_sample_rate_hz: float, segment_points: int, overlap_points: int = None, nfft_points: int = None, alpha: float = 0.25) ‑> Tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray]

Simplest, with 50% overlap and built-in defaults

:param sig_wf: signal waveform as numpy array :param frequency_sample_rate_hz: frequency sample rate in Hz :param segment_points: number of points in a segment :param overlap_points: number of points in overlap :param nfft_points: length of FFT :param alpha: Tukey window alpha :return: frequency_stft_hz, time_stft_s, stft_complex

def welch_power_pow2(sig_wf: numpy.ndarray, frequency_sample_rate_hz: float, segment_points: int, nfft_points: int = None, overlap_points: int = None, alpha: float = 0.25) ‑> Tuple[numpy.ndarray, numpy.ndarray]

Simplest, with 50% overlap and built-in defaults

:param sig_wf: signal waveform as numpy array :param frequency_sample_rate_hz: frequency sample rate in Hz :param segment_points: number of points in a segment :param overlap_points: number of points in overlap :param nfft_points: length of FFT :param alpha: Tukey window alpha :return: frequency_welch_hz, welch_power