Skip to main content
. 2024 Nov 28;24(23):7624. doi: 10.3390/s24237624
Algorithm 3 SFKNN
  •   1:

    Inputs: (LocalizationRequest, RadioMapDatabase)

  •   2:

    Load metadata from RadioMapDatabase including estimated AP.position and AP.range of all APs

  •   3:

    Extract valid APs from LocalizationRequest to DetectedAPs

  •   4:

    CheckForSpoofing(DetectedAPs, metadata)

  •   5:

    for each combination of APs in DetectedAPs do

  •   6:

        if distance(AP1.position, AP2.position) > (AP1.range + AP2.range) then

  •   7:

            Return: Spoofing detected

  •   8:

        end if

  •   9:

    end for

  • 10:

    if Spoofing detected then

  • 11:

        Return: Localization failed - Spoofing detected

  • 12:

    else

  • 13:

        EstimatedPosition = KNN(LocalizationRequest, RadioMapDatabase)

  • 14:

        Use the KNN algorithm to estimate position based on valid fingerprints

  • 15:

        Euclidean distance is computed only with valid fingerprints

  • 16:

        Return: EstimatedPosition

  • 17:

    end if