pub struct DynamicRange {
pub linear_dr_db: f64,
pub sfdr_db: Option<f64>,
pub mds_dbm: f64,
pub max_input_dbm: f64,
}Expand description
Summary of dynamic range metrics at a given node in the cascade.
§Examples
use gainlineup::{Input, Block, SignalNode};
let input = Input::new(1.0e9, 1.0e6, -30.0, Some(270.0));
let lna = Block {
name: "LNA".to_string(),
gain_db: 20.0,
noise_figure_db: 2.0,
output_p1db_dbm: Some(10.0),
output_ip3_dbm: Some(25.0),
};
let node = input.cascade_block(&lna);
let dr = node.dynamic_range_summary().unwrap();
assert!(dr.linear_dr_db > 90.0);Fields§
§linear_dr_db: f64Linear dynamic range: output P1dB minus noise floor (dB).
sfdr_db: Option<f64>Spur-free dynamic range (dB), from existing SFDR calculation.
mds_dbm: f64Minimum detectable signal: noise floor at this node (dBm).
max_input_dbm: f64Maximum input power before compression: input P1dB = output P1dB − cumulative gain (dBm).
Trait Implementations§
Source§impl Clone for DynamicRange
impl Clone for DynamicRange
Source§fn clone(&self) -> DynamicRange
fn clone(&self) -> DynamicRange
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DynamicRange
impl Debug for DynamicRange
Auto Trait Implementations§
impl Freeze for DynamicRange
impl RefUnwindSafe for DynamicRange
impl Send for DynamicRange
impl Sync for DynamicRange
impl Unpin for DynamicRange
impl UnsafeUnpin for DynamicRange
impl UnwindSafe for DynamicRange
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more