lockin: scale output
This commit is contained in:
parent
82c8fa1a07
commit
80055076b8
|
@ -151,16 +151,14 @@ const APP: () = {
|
||||||
phase = iir_ch[1][j].update(&mut iir_state[1][j], phase);
|
phase = iir_ch[1][j].update(&mut iir_state[1][j], phase);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: IIR filter DC gain needs to be 1/(1 << 16)
|
|
||||||
|
|
||||||
// Note(unsafe): range clipping to i16 is ensured by IIR filters above.
|
// Note(unsafe): range clipping to i16 is ensured by IIR filters above.
|
||||||
// Convert to DAC data.
|
// Convert to DAC data.
|
||||||
for i in 0..dac_samples[0].len() {
|
for i in 0..dac_samples[0].len() {
|
||||||
unsafe {
|
unsafe {
|
||||||
dac_samples[0][i] =
|
dac_samples[0][i] =
|
||||||
power.to_int_unchecked::<i16>() as u16 ^ 0x8000;
|
(power.to_int_unchecked::<i32>() >> 16) as u16 ^ 0x8000;
|
||||||
dac_samples[1][i] =
|
dac_samples[1][i] =
|
||||||
phase.to_int_unchecked::<i16>() as u16 ^ 0x8000;
|
(phase.to_int_unchecked::<i32>() >> 16) as u16 ^ 0x8000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue