Esempio n. 1
0
        public void Execute(int index)
        {
            int4        k      = pairs[index];
            CNInfo      rxNode = nodes[k.y];
            AntennaData tx     = antennas[k.z];
            AntennaData rx     = antennas[k.w];

            rxPrecalcNoise[index]  = antennaNoise[k.w];
            rxSurfaceNormal[index] = rx.isHome ? rxNode.surfaceNormal : double3.zero;

            txPower[index]     = tx.txPower;
            txFreq[index]      = tx.freq;
            txGain[index]      = tx.gain;
            txBeamwidth[index] = tx.beamwidth;
            txHome[index]      = tx.isHome;
            txPos[index]       = tx.position;
            txDir[index]       = tx.isHome ? (float3)(rx.position - tx.position) : tx.dir;

            rxFreq[index]      = rx.freq;
            rxGain[index]      = rx.gain;
            rxBeamwidth[index] = rx.beamwidth;
            rxHome[index]      = rx.isHome;
            rxPos[index]       = rx.position;
            rxDir[index]       = rx.isHome ? (float3)(tx.position - rx.position) : rx.dir;
            rxAMW[index]       = rx.AMW;
        }
Esempio n. 2
0
        public void Execute(int index)
        {
            AntennaData tx = antennas[pairs[index].z];
            AntennaData rx = antennas[pairs[index].w];

            encoder[index] = tx.encoder.BestMatching(rx.encoder);
        }
Esempio n. 3
0
        public void Execute(int index)
        {
            AntennaData tx   = antennas[pairs[index].z];
            AntennaData rx   = antennas[pairs[index].w];
            float       max  = math.min(tx.maxSymbolRate, rx.maxSymbolRate);
            float       min  = math.max(tx.minSymbolRate, rx.minSymbolRate);
            int         bits = math.min(tx.modulationBits, rx.modulationBits);

            if (min > max)
            {
                min = 0;
                max = 0;
            }
            float maxData = max * encoder[index].CodingRate * (1 << (bits - 1));
            float minData = min * encoder[index].CodingRate;

            maxSymbolRate[index]     = max;
            minSymbolRate[index]     = min;
            maxModulationBits[index] = bits;
            maxDataRate[index]       = maxData;
            minDataRate[index]       = minData;
            maxSteps[index]          = minData > 0 ? (int)math.floor(math.log2(maxData / minData)) : 0;
        }
Esempio n. 4
0
        public void Execute(int index)
        {
            AntennaData ant = antennas[index];

            noiseTemp[index] = ant.isHome ? 0 : Precompute.NoiseFromOccluders(ant, occluders);
        }