preprocess
A preprocess modifies channel data before beamforming.
channel_data → Output: channel_data- class demodulation
DEMODULATION IQ demodulation via band-pass, down-mix, low-pass, and decimation
Converts RF channel data to IQ (complex) channel data using band-pass filtering, down-mixing to baseband, low-pass filtering, and decimation. Preprocess modifies channel data before beamforming.
Input: uff.channel_data -> Output: uff.channel_data
- Properties:
plot_on plot intermediate graphs modulation_frequency modulation frequency [Hz] downsample_frequency sampling frequency after downsampling [Hz] bandpass_frequency_vector band-pass filter transition band [multiple of modulation frequency] lowpass_frequency_vector low-pass filter transition band [multiple of modulation frequency] blp low-pass FIR filter coefficients (dependent) bbp band-pass FIR filter coefficients (dependent)
- Example:
obj = preprocess.demodulation();
See also PREPROCESS, FAST_DEMODULATION, HILBERT_TRANSFORM_DEMODULATION, NYQUIST_LIMIT_DEMODULATION
- implementers: Alfonso Rodriguez-Molares <alfonso.r.molares@ntnu.no>
Stefano Fiorentini <stefano.fiorentini@ntnu.no>
- Property Summary
- bbp
Band-pass FIR filter coefficients
- blp
Low-pass FIR filter coefficients
- downsample_frequency
sampling frequency after downsampling [Hz]
- lowpass_frequency_vector
start and end of the transition band, defined
- modulation_frequency
modulation frequency [Hz]
- plot_on
plot intermediate graphs
- Method Summary
- go(h)
Check if we can skip calculation
- class fast_demodulation
FAST_DEMODULATION Faster IQ demodulation via down-mix, low-pass, and decimation
Converts RF channel data to IQ (complex) channel data using down-mixing to baseband, low-pass filtering, and decimation. Skips band-pass filtering for speed. Preprocess modifies channel data before beamforming.
Input: uff.channel_data -> Output: uff.channel_data
- Properties:
plot_on plot intermediate graphs modulation_frequency modulation frequency [Hz] downsample_frequency sampling frequency after downsampling [Hz] lowpass_frequency_vector low-pass filter transition band [multiple of modulation frequency] b low-pass FIR filter coefficients (dependent)
- Example:
obj = preprocess.fast_demodulation();
See also PREPROCESS, DEMODULATION
- implementers: Alfonso Rodriguez-Molares <alfonso.r.molares@ntnu.no>
Stefano Fiorentini <stefano.fiorentini@ntnu.no>
- Property Summary
- b
Low-pass FIR filter coefficients
- downsample_frequency
sampling frequency after downsampling [Hz]
- lowpass_frequency_vector
start and end of the transition band, defined
- modulation_frequency
modulation frequency [Hz]
- plot_on
plot intermediate graphs
- Method Summary
- go(h)
Check if we can skip calculation
- class hilbert_transform_demodulation
HILBERT_TRANSFORM_DEMODULATION IQ demodulation via Hilbert transform and down-mix
Converts RF channel data to IQ (complex) channel data using the Hilbert transform to obtain the analytic signal, then down-mixing and decimation. Preprocess modifies channel data before beamforming.
Input: uff.channel_data -> Output: uff.channel_data
- Properties:
plot_on plot intermediate graphs modulation_frequency modulation frequency [Hz] downsample_frequency sampling frequency after downsampling [Hz]
- Example:
obj = preprocess.hilbert_transform_demodulation();
See also PREPROCESS, DEMODULATION
- implementers: Bastien Denaire
Stefano Fiorentini <stefano.fiorentini@ntnu.no>
- class nyquist_limit_demodulation
NYQUIST_LIMIT_DEMODULATION IQ demodulation at 2 samples per wavelength
Converts RF channel data to IQ (complex) channel data using a minimal demodulation scheme at the Nyquist limit (Fs/4). Assumes 4 samples per wavelength. Preprocess modifies channel data before beamforming.
Input: uff.channel_data -> Output: uff.channel_data
- Properties:
plot_on plot intermediate graphs
- Example:
obj = preprocess.nyquist_limit_demodulation();
See also PREPROCESS, DEMODULATION
implementers: Alfonso Rodriguez-Molares <alfonso.r.molares@ntnu.no>
- class refocus
REFOCUS Decode multistatic channel data using REFoCUS
Decodes focused multistatic transmit beams into synthetic single-element transmit data using the REFoCUS algorithm. Requires RF channel data. Preprocess modifies channel data before beamforming.
Input: uff.channel_data -> Output: uff.channel_data
- Properties:
post_pad_samples samples to pad after data [samples] use_filter enable passband filtering filter_N filter order filter_Wn filter normalized frequency band regularization inverse function handle (e.g. @Hinv_adjoint) decode_parameter parameter for regularization function
- Example:
obj = preprocess.refocus();
See also PREPROCESS, CHANNEL_DATA
- References:
Ali, R., Herickhoff, C. D., Hyun, D., Dahl, J. J., & Bottenus, N. (2020). “Extending Retrospective Encoding for Robust Recovery of the Multistatic Data Set.” IEEE TUFFC, 67(5), 943-956. https://doi.org/10.1109/TUFFC.2019.2961875
Original REFoCUS code: https://github.com/nbottenus/REFoCUS
- implementers: Anders E. Vralstad <anders.e.vralstad@ntnu.no>
Nick Bottenus <Nick.Bottenus@colorado.edu> Rehman Ali Ole Marius Hoel Rindal <omrindal@ifi.uio.no> Nazli Javadi Eshkalak <nazli.javadieshkalak@colorado.edu>
- Method Summary
- H_model_matrix(h, delays, f, apod)
Model Matrix with Delay, Frequency, and Apodization
- Hinv_adjoint(h, delays, f, apod, param)
Forward Model Matrix
- Hinv_rsvd(h, delays, f, apod, param)
Forward Model Matrix
- Hinv_tikhonov(h, delays, f, apod, param)
Forward Model Matrix
- Hinv_tsvd(h, delays, f, apod, param)
Forward Model Matrix