1 2 3diagram { 4 5Scheduler; 6SpectrumChannel; 7 8Scheduler => SpectrumChannel [label="at 0.001s: StartRx(signal1)"] { 9 SpectrumChannel => LteSpectrumPhy [label="StartRx(interferer)"] { 10 LteSpectrumPhy => LteInterference [label="AddSignal()"]; 11 } 12} 13 14Scheduler => SpectrumChannel [label="at 0.001s: StartRx(signal2)"] { 15 SpectrumChannel => LteSpectrumPhy [label="at 0.001s: StartRx(signal2)"] { 16 LteSpectrumPhy => LteInterference [label="AddSignal(signal2)"]; 17 LteSpectrumPhy => LteInterference [label="StartRx(signal2)"]; 18 LteSpectrumPhy => Scheduler [label="Schedule (EndRx)"]; 19 } 20} 21 22Scheduler => SpectrumChannel [label="at 0.001s: StartRx(signal3)"] { 23 SpectrumChannel => LteSpectrumPhy [label="StartRx(signal3)"] { 24 LteSpectrumPhy => LteInterference [label="AddSignal(signal3)"]; 25 } 26} 27 28Scheduler => LteSpectrumPhy [label="at 0.002s: EndRx()"] { 29 LteSpectrumPhy => LteInterference [label="EndRx()"] { 30 LteInterference => LteCqiSinrChunkProcessor [label="EvaluateSinrChunk()"]; 31 LteInterference => LteCqiSinrChunkProcessor [label="End()"] { 32 LteCqiSinrChunkProcessor => LtePhy [label="GenerateCqiFeedback(SINR of signal2)"] 33 } 34 } 35} 36 37}