[Tinyos-devel] Question about Noise and linkLayerModel.java in TOSSIM

Philip Levis pal at cs.stanford.edu
Fri Feb 29 13:53:42 PST 2008


Please send questions to tinyos-help. Don't spam the many lists.

Phil

On Feb 29, 2008, at 1:24 PM, EunKyung Lee wrote:

> Hello.
> We want to know how Tossim is generating LinkGain btw the nodes.
> and calculation. and trying to verify that this model is correct.
>
> Actually they are using Covariance Matrix to define Link status but  
> we can't understand following functions:
> S11 : variance of noise floor
> S12 : covariance between noise floor and output power (captures  
> correlation)
> S21 : equal to S12
> S22 : variance of output power
>
>       t11 = Math.sqrt(inVar.s11);
>       t12 = inVar.s12/Math.sqrt(inVar.s11);
>       t21 = 0;
>       t22 = Math.sqrt( (inVar.s11*inVar.s22 - Math.pow( inVar.s12,  
> 2)) / inVar.s11 );
>
> This calculation when the link is asymmetric.
> Can anybody explain about this?
>
> Any help or short comment will be appreciated..
>
> --------------------------------------The whole function is  
> following--------------
>
>   /**
>    * Obtains output power and noise floor for all nodes in the network
>    *
>    * @param inVar class that contains radio parameters
>    * @param outVar class that stores output powers and noise floors
>    * @return true if all output powers and noise floors were  
> obtained correctly
>    */
>
>   protected static boolean obtainRadioPtPn ( InputVariables  inVar,
>                                              OutputVariables outVar )
>   {
>     Random rand = new Random();
>     int i, j;
>     double t11, t12, t21, t22;
>     double rn1, rn2;
>
>     t11 = 0;
>     t12 = 0;
>     t21 = 0;
>     t22 = 0;
>
>     if ( (inVar.s11 == 0) && (inVar.s22 == 0) ) { // symmetric  
> links do nothing
>     }
>     else if ( (inVar.s11 == 0) && (inVar.s22 != 0) ) { // both S11  
> and S22 must be 0 for symmetric links
>       System.out.println("\nError: symmetric links require both,  
> S11 and S22 to be 0, not only S11.");
>       System.exit(1);
>     }
>     else {
>       if ( (inVar.s12 != inVar.s21) ) { // check that S is symmetric
>         System.out.println("\nError: S12 and S21 must have the same  
> value.");
>         System.exit(1);
>       }
>       if ( Math.abs(inVar.s12) > Math.sqrt(inVar.s11*inVar.s22) )  
> { // check that correlation is within [-1,1]
>         System.out.println("\nError: S12 (and S21) must be less  
> than sqrt(S11xS22).");
>         System.exit(1);
>       }
>       t11 = Math.sqrt(inVar.s11);
>       t12 = inVar.s12/Math.sqrt(inVar.s11);
>       t21 = 0;
>       t22 = Math.sqrt( (inVar.s11*inVar.s22 - Math.pow( inVar.s12,  
> 2)) / inVar.s11 );
>     }
>
>     for (i = 0; i < inVar.numNodes; i = i+1) {
>       rn1 = rand.nextGaussian();
>       rn2 = rand.nextGaussian();
>       outVar.noisefloor[i]  = inVar.pn + t11 * rn1;
>       outVar.outputpowervar[i] = t12 * rn1 + t22 * rn2;
>     }
>     return true;
>   }
>
>
> -- 
> Eun Kyung Lee
> Rutgers, The State University of New Jersey
> Department of Electrical and Computer Eng.(ECE)
> _______________________________________________
> Tinyos-devel mailing list
> Tinyos-devel at millennium.berkeley.edu
> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos- 
> devel



More information about the Tinyos-devel mailing list