Example #1
0
    def HDFOptimizer(self, P, RN_RSS, RN_ToA, RN_TDoA, RN_TDoA2, ToA, ToAStd, TDoA, TDoAStd, PL0, d0, RSS, RSSnp, RSSStd, Rest):
        """
        This applies LS approximation to get position P.
        Return P
        """

        RSSL=RSSLocation(RN_RSS)
        TOAL=ToALocation(RN_ToA)
        TDOAL=TDoALocation(RN_TDoA)


        if RN_RSS==None:
            shRN_TDoA    = shape(RN_TDoA)
            RNnum_TDoA   = shRN_TDoA[1]
            #RN_TDoA2= RN_ToA[:,0:1]*ones((1,RNnum_TDoA))
            fopt=TOAL.ToAOptimizer(P, RN_ToA, ToA, ToAStd) + TDOAL.TDoAOptimizer(P, RN_TDoA, RN_TDoA2, TDoA, TDoAStd)
            return fopt

        elif RN_ToA==None:
            shRN_TDoA    = shape(RN_TDoA)
            RNnum_TDoA   = shRN_TDoA[1]
            #RN_TDoA2= RN_RSS[:,0:1]*ones((1,RNnum_TDoA))
            fopt=RSSL.DRSSOptimizer(P, RN_RSS, PL0, d0, RSS, RSSnp, RSSStd) + TDOAL.TDoAOptimizer(P, RN_TDoA, RN_TDoA2, TDoA, TDoAStd)
            return fopt

        elif RN_TDoA==None:
            fopt=RSSL.DRSSOptimizer(P, RN_RSS, PL0, d0, RSS, RSSnp, RSSStd) + TOAL.ToAOptimizer(P, RN_ToA, ToA, ToAStd)
            return fopt

        else:
            shRN_TDoA    = shape(RN_TDoA)
            RNnum_TDoA   = shRN_TDoA[1]
            #RN_TDoA2= RN_TDoA[:,0:1]*ones((1,RNnum_TDoA))
            fopt=RSSL.DRSSOptimizer(P, RN_RSS, PL0, d0, RSS, RSSnp, RSSStd) + TOAL.ToAOptimizer(P, RN_ToA, ToA, ToAStd) + TDOAL.TDoAOptimizer(P, RN_TDoA, RN_TDoA2, TDoA, TDoAStd)
            return fopt