Skip to main content

cascade_vector_return_vector

Function cascade_vector_return_vector 

Source
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