Function hackrfone::iq_to_cplx_f32 [−][src]
pub fn iq_to_cplx_f32(i: u8, q: u8) -> Complex<f32>
This is supported on crate feature
num-complex
only.Expand description
Convert an IQ sample pair to a floating point complex number.
Generally you will want to use iq_to_cplx_i8
for storing or transfering
data because the samples are 2-bytes in the native i8, vs 8-bytes in f32.
Floats are easier to work with for running samples through digital signal processing algorithms (e.g. discrete fourier transform) where the i8 can easily saturate.
Example
Post-processing sample data.
use hackrfone::{iq_to_cplx_f32, HackRfOne, RxMode, UnknownMode}; let mut radio: HackRfOne<UnknownMode> = HackRfOne::new().unwrap(); let mut radio: HackRfOne<RxMode> = radio.into_rx_mode()?; let data: Vec<u8> = radio.rx()?; radio.stop_rx()?; for iq in data.chunks_exact(2) { let cplx: num_complex::Complex<f32> = iq_to_cplx_f32(iq[0], iq[1]); // .. do whatever you want with cplx here }
Guide level explanation.
use hackrfone::iq_to_cplx_f32; use num_complex::Complex; assert_eq!(iq_to_cplx_f32(255, 1), Complex::new(-1.0, 1.0));