pub fn cascade_vector_return_vector(
input: Input,
blocks: Vec<Block>,
) -> Vec<SignalNode>Expand description
Cascade a vector of blocks and return a SignalNode for each stage output.
ยงExamples
use gainlineup::{Input, Block, cascade_vector_return_vector};
let input = Input::new(1.0e9, 1.0e6, -30.0, Some(270.0));
let blocks = vec![
Block {
name: "LNA".to_string(),
gain_db: 30.0,
noise_figure_db: 1.5,
output_p1db_dbm: None,
output_ip3_dbm: None,
},
Block {
name: "Filter".to_string(),
gain_db: -3.0,
noise_figure_db: 3.0,
output_p1db_dbm: None,
output_ip3_dbm: None,
},
];
let nodes = cascade_vector_return_vector(input, blocks);
assert_eq!(nodes.len(), 2);
assert_eq!(nodes[0].signal_power_dbm, 0.0); // after LNA
assert_eq!(nodes[1].signal_power_dbm, -3.0); // after filter