diff options
| author | Quentin Smith <[email protected]> | 2022-08-21 01:44:04 -0400 |
|---|---|---|
| committer | Quentin Smith <[email protected]> | 2022-08-21 01:44:04 -0400 |
| commit | 3d26573c6b36c670a170279db49e7adc5e37466b (patch) | |
| tree | b7d47c1f1012afe46cc1dc3d35fcb35929c1fbc0 /examples | |
| parent | 0963b5f92c9588ab00f556a6c521fad059eac72e (diff) | |
Discard the first N samples due to transients
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/nrf/src/bin/pdm.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/examples/nrf/src/bin/pdm.rs b/examples/nrf/src/bin/pdm.rs index 85a59a529..605eca59e 100644 --- a/examples/nrf/src/bin/pdm.rs +++ b/examples/nrf/src/bin/pdm.rs | |||
| @@ -26,14 +26,16 @@ async fn main(_p: Spawner) { | |||
| 26 | info!("Gain = {} dB", defmt::Debug2Format(&gain)); | 26 | info!("Gain = {} dB", defmt::Debug2Format(&gain)); |
| 27 | for _ in 0..10 { | 27 | for _ in 0..10 { |
| 28 | let mut buf = [0; 1500]; | 28 | let mut buf = [0; 1500]; |
| 29 | pdm.sample(&mut buf).await; | 29 | pdm.sample(5, &mut buf).await; |
| 30 | let mean = (buf.iter().map(|v| i32::from(*v)).sum::<i32>() / buf.len() as i32) as i16; | ||
| 30 | info!( | 31 | info!( |
| 31 | "{} samples, min {=i16}, max {=i16}, RMS {=i16}", | 32 | "{} samples, min {=i16}, max {=i16}, mean {=i16}, AC RMS {=i16}", |
| 32 | buf.len(), | 33 | buf.len(), |
| 33 | buf.iter().min().unwrap(), | 34 | buf.iter().min().unwrap(), |
| 34 | buf.iter().max().unwrap(), | 35 | buf.iter().max().unwrap(), |
| 36 | mean, | ||
| 35 | ( | 37 | ( |
| 36 | buf.iter().map(|v| i32::from(*v).pow(2)).fold(0i32, |a,b| a.saturating_add(b)) | 38 | buf.iter().map(|v| i32::from(*v - mean).pow(2)).fold(0i32, |a,b| a.saturating_add(b)) |
| 37 | / buf.len() as i32).sqrt() as i16, | 39 | / buf.len() as i32).sqrt() as i16, |
| 38 | ); | 40 | ); |
| 39 | info!("samples = {}", &buf); | 41 | info!("samples = {}", &buf); |
