engineeringkit.signal_processing#
Sampling, Fourier transforms, spectra, filtering and quantization.
Signals and systems from Fourier analysis to digital filtering and sampling.
- class engineeringkit.signal_processing.Spectrum(frequency, magnitude)[source]#
Bases:
object- Parameters:
frequency (ndarray)
magnitude (ndarray)
- frequency: ndarray#
- magnitude: ndarray#
- engineeringkit.signal_processing.alias_frequency(f, fs)[source]#
Alias frequency.
- Parameters:
f (Hz) – Input in the units stated above.
fs (Hz) – Input in the units stated above.
- Returns:
Hz.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.butterworth_highpass(order, cutoff, fs)[source]#
Butterworth highpass.
- Parameters:
order (integer count) – Input in the units stated above.
cutoff (Hz) – Input in the units stated above.
fs (Hz) – Input in the units stated above.
- Returns:
(numerator b, denominator a), dimensionless.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.butterworth_lowpass(order, cutoff, fs)[source]#
Butterworth lowpass.
- Parameters:
order (integer count) – Input in the units stated above.
cutoff (Hz) – Input in the units stated above.
fs (Hz) – Input in the units stated above.
- Returns:
(numerator b, denominator a), dimensionless.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.convolution(x, h, mode='full')[source]#
Convolution.
- Parameters:
x (signal amplitude units) – Input in the units stated above.
h (filter coefficient sequences (dimensionless)) – Input in the units stated above.
mode (NumPy/SciPy option string) – Input in the units stated above.
- Returns:
signal amplitude units.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.correlation(x, y, mode='full')[source]#
Correlation.
- Parameters:
x (signal amplitude units) – Input in the units stated above.
y (signal amplitude units) – Input in the units stated above.
mode (NumPy/SciPy option string) – Input in the units stated above.
- Returns:
signal amplitude units.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.db20(x)[source]#
Db20.
- Parameters:
x (signal amplitude units) – Input in the units stated above.
- Returns:
dB.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.dft(x)[source]#
Dft.
- Parameters:
x (signal amplitude units) – Input in the units stated above.
- Returns:
signal amplitude units.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.energy(x)[source]#
Energy.
- Parameters:
x (signal amplitude units) – Input in the units stated above.
- Returns:
squared amplitude units (no dt weighting).
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.fft_frequencies(n, fs)[source]#
Fft frequencies.
- Parameters:
n (integer count) – Input in the units stated above.
fs (Hz) – Input in the units stated above.
- Returns:
Hz.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.filter_signal(b, a, x)[source]#
Filter signal.
- Parameters:
b (filter coefficient sequences (dimensionless)) – Input in the units stated above.
a (filter coefficient sequences (dimensionless)) – Input in the units stated above.
x (signal amplitude units) – Input in the units stated above.
- Returns:
signal amplitude units.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.fir_lowpass(numtaps, cutoff, fs, window='hamming')[source]#
Fir lowpass.
- Parameters:
numtaps (integer count) – Input in the units stated above.
cutoff (Hz) – Input in the units stated above.
fs (Hz) – Input in the units stated above.
window (NumPy/SciPy option string) – Input in the units stated above.
- Returns:
dimensionless FIR coefficients.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.frequency_response(b, a=1, worN=512, fs=6.283185307179586)[source]#
Frequency response.
- Parameters:
b (filter coefficient sequences (dimensionless)) – Input in the units stated above.
a (filter coefficient sequences (dimensionless)) – Input in the units stated above.
worN (integer count or frequency array in fs units) – Input in the units stated above.
fs (Hz) – Input in the units stated above.
- Returns:
(frequencies in fs units, complex gain).
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.idft(X)[source]#
Idft.
- Parameters:
X (complex DFT coefficients, same amplitude units) – Input in the units stated above.
- Returns:
signal amplitude units.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.moving_average(x, n)[source]#
Moving average.
- Parameters:
x (signal amplitude units) – Input in the units stated above.
n (integer count) – Input in the units stated above.
- Returns:
signal amplitude units.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.nyquist_frequency(fs)[source]#
Nyquist frequency.
- Parameters:
fs (Hz) – Input in the units stated above.
- Returns:
Hz.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.power(x)[source]#
Power.
- Parameters:
x (signal amplitude units) – Input in the units stated above.
- Returns:
squared amplitude units (no dt weighting).
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.power_spectral_density(x, fs)[source]#
Power spectral density.
- Parameters:
x (signal amplitude units) – Input in the units stated above.
fs (Hz) – Input in the units stated above.
- Returns:
(frequency [Hz], PSD [amplitude^2/Hz]).
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.quantization_step(vmin, vmax, bits)[source]#
Step of a uniform mid-rise ADC with 2**bits bins over [vmin, vmax].
- Parameters:
vmin (V (or consistent amplitude unit)) – Input in the units stated above.
vmax (V (or consistent amplitude unit)) – Input in the units stated above.
bits (integer count) – Input in the units stated above.
- Returns:
signal amplitude units.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.quantize(x, vmin, vmax, bits)[source]#
Return mid-rise reconstruction levels, saturating outside ADC range.
There are exactly 2**bits levels located at bin centers. Inputs and output share units (typically volts). This models ideal uniform quantization.
- Parameters:
x (signal amplitude units) – Input in the units stated above.
vmin (V (or consistent amplitude unit)) – Input in the units stated above.
vmax (V (or consistent amplitude unit)) – Input in the units stated above.
bits (integer count) – Input in the units stated above.
- Returns:
signal amplitude units.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.rms(x)[source]#
Rms.
- Parameters:
x (signal amplitude units) – Input in the units stated above.
- Returns:
signal amplitude units.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.sampling_period(fs)[source]#
Sampling period.
- Parameters:
fs (Hz) – Input in the units stated above.
- Returns:
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.sinc_reconstruct(samples, fs, t)[source]#
Sinc reconstruct.
- Parameters:
samples (signal amplitude units) – Input in the units stated above.
fs (Hz) – Input in the units stated above.
t (s) – Input in the units stated above.
- Returns:
signal amplitude units.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.snr_db(signal_values, noise)[source]#
Snr db.
- Parameters:
signal_values (signal amplitude units) – Input in the units stated above.
noise (signal amplitude units) – Input in the units stated above.
- Returns:
dB.
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.
- engineeringkit.signal_processing.windowed_spectrum(x, fs, window='hann')[source]#
Windowed spectrum.
- Parameters:
x (signal amplitude units) – Input in the units stated above.
fs (Hz) – Input in the units stated above.
window (NumPy/SciPy option string) – Input in the units stated above.
- Returns:
(frequency [Hz], unnormalized FFT magnitude).
- Return type:
result
Notes
Assumptions, governing equations and validity limits are discussed in Signal processing: sampled energy, spectra and quantization. SI inputs are required; raw numbers carry no dimensional metadata.