Cách tính khoảng cách từ bộ định tuyến Wifi bằng Cường độ tín hiệu?


84

Tôi muốn tính toán vị trí chính xác của thiết bị di động bên trong tòa nhà (vì vậy không có quyền truy cập GPS)

Tôi muốn thực hiện việc này bằng cách sử dụng cường độ tín hiệu (tính bằng dBm) của ít nhất 3 tín hiệu wifi cố định (3 bộ định tuyến cố định mà tôi biết vị trí)

Google đã làm điều đó và tôi muốn biết cách họ tìm ra vị trí chính xác dựa trên dữ liệu này

Kiểm tra bài viết này để biết thêm chi tiết: http://www.codeproject.com/Articles/63747/Exploring-GoogleGears-Wi-Fi-Geo-Locator-Secrets


stackoverflow.com/questions/4071539/… Đây là liên kết để bạn tham khảo.
yokoyoko

4
Câu hỏi này có vẻ lạc đề vì nó là về kỹ thuật điện. Tôi khuyên bạn nên chuyển sang Electronics.stackexchange.com
Danny Varod 12/1213

@lhab Hajj, yêu cầu của tôi cũng giống như yêu cầu của bạn. Phải giải quyết vấn đề này? Hãy chia sẻ ý tưởng của bạn để những người khác cũng có thể học hỏi từ đó. Cảm ơn bạn.
anddev

Câu trả lời:


47

FSPL phụ thuộc vào hai thông số: Thứ nhất là tần số của tín hiệu vô tuyến ; Thứ hai là khoảng cách truyền dẫn không dây. Công thức sau đây có thể phản ánh mối quan hệ giữa chúng.

FSPL (dB) = 20log10(d) + 20log10(f) + K

d = distance
f = frequency
K= constant that depends on the units used for d and f
If d is measured in kilometers, f in MHz, the formula is:

FSPL (dB) = 20log10(d)+ 20log10(f) + 32.44

Từ phương trình Biên độ mờ dần, Mất mát đường dẫn không gian trống có thể được tính bằng phương trình sau.

Suy hao đường dẫn dung lượng trống = Mất cáp Tx Power-Tx + Độ lợi ăng ten Tx + Độ lợi ăng ten Rx - Suy hao cáp Rx - Độ nhạy Rx - Lề mờ

Với hai phương trình Tổn thất Đường đi Không gian Tự do ở trên, chúng ta có thể tìm ra Khoảng cách tính bằng km.

Distance (km) = 10(Free Space Path Loss – 32.44 – 20log10(f))/20

Vùng Fresnel là vùng xung quanh tầm nhìn trực quan mà sóng vô tuyến truyền vào sau khi chúng rời khỏi ăng-ten. Bạn muốn có một tầm nhìn rõ ràng để duy trì sức mạnh, đặc biệt là đối với các hệ thống không dây 2.4GHz. Điều này là do sóng 2.4GHz bị nước hấp thụ, giống như nước có trong cây. Quy tắc chung là 60% Fresnel Zone phải không có chướng ngại vật. Thông thường, sự tắc nghẽn vùng Fresnel 20% dẫn đến mất tín hiệu rất ít cho liên kết. Hơn 40% tắc nghẽn, mất tín hiệu sẽ trở nên đáng kể.

FSPLr=17.32*√(d/4f)

d = distance [km]
f = frequency [GHz]
r = radius [m]

Nguồn: http://www.tp-link.com/en/support/calculator/


3
Câu trả lời tốt, và tôi có một câu hỏi tiếp theo. Làm thế nào chính xác là các phép đo? Nói cách khác, tôi có thể nhận được độ chính xác trong phạm vi inch / cm không?
Chiwda

32

Để tính khoảng cách bạn cần cường độ tín hiệu và tần số của tín hiệu. Đây là mã java:

public double calculateDistance(double signalLevelInDb, double freqInMHz) {
    double exp = (27.55 - (20 * Math.log10(freqInMHz)) + Math.abs(signalLevelInDb)) / 20.0;
    return Math.pow(10.0, exp);
}

Công thức được sử dụng là:

khoảng cách = 10 ^ ((27,55 - (20 * log10 (tần số)) + signalLevel) / 20)

Ví dụ: tần số = 2412MHz, signalLevel = -57dbm, kết quả = 7.000397427391188m

Công thức này là dạng biến đổi của công thức Tổn thất Đường dẫn Không gian Tự do (FSPL) . Ở đây khoảng cách được đo bằng mét và tần số - tính bằng megahertz. Đối với các biện pháp khác, bạn phải sử dụng hằng số khác (27,55). Đọc các hằng số ở đây .

Để biết thêm thông tin đọc ở đây .


Cảm ơn bạn đã chỉ định rằng nó phải là giá trị tuyệt đối của mức tín hiệu, tôi đã tìm kiếm trong một thời gian những gì tôi đã sai!
Yiannis Tsimalis

Câu hỏi dành cho người mới bắt đầu @YiannisTsimalis: nó nên là giá trị tuyệt đối hay chỉ nhân với giá trị âm? Điều gì sẽ xảy ra nếu mức tín hiệu là dBm dương?
Ellis Valentiner

@ user12202013 hmm Tôi nghĩ nó phụ thuộc vào cách điểm truy cập của bạn hoạt động. Ý tôi là, nói chung, hệ thống dBm cho biết tín hiệu của bạn nhiễu như thế nào. Nếu giá trị cao hơn, thì tín hiệu ồn hơn, có nghĩa là thực tế, tín hiệu yếu hơn. Hoặc ít nhất đây là cách tôi hiểu nó ..
Yiannis Tsimalis

@YiannisTsimalis Tôi đã suy nghĩ tổng quát hơn nhưng sau khi nhìn vào công thức tôi nghĩ rằng giá trị tuyệt đối là đúng bởi vì khoảng cách nên tích cực
Ellis Valentiner

1
Tôi đã tìm hiểu công thức này trong một thời gian khá dài và tôi kết luận rằng nó hoàn toàn sai! FSPL được đo bằng db, trong khi signalLevel được đo bằng dbm. Nó có thể mang lại một ước tính tốt, nhưng kết quả có thể dễ dàng bị xáo trộn khi khoảng cách trở nên khá lớn.
Ahmed Hammad

16
K = 32.44
FSPL = Ptx - CLtx + AGtx + AGrx - CLrx - Prx - FM
d = 10 ^ (( FSPL - K - 20 log10( f )) / 20 )

Đây:

  • K- hằng số (32,44, khi tính fbằng MHz và tính dbằng km, thay đổi thành -27,55 khi tính fbằng MHz và tính dbằng m)
  • FSPL - Mất đường dẫn không gian trống
  • Ptx - công suất máy phát, dBm (lên đến 20 dBm (100mW))
  • CLtx, CLrx- suy hao cáp tại máy phát và máy thu, dB (0, nếu không có cáp)
  • AGtx, AGrx- độ lợi anten ở máy phát và máy thu, dBi
  • Prx - độ nhạy máy thu, dBm (xuống -100 dBm (0,1pW))
  • FM - biên độ mờ dần, dB (hơn 14 dB (bình thường) hoặc hơn 22 dB (tốt))
  • f - tần số tín hiệu, MHz
  • d - khoảng cách, m hoặc km (phụ thuộc vào giá trị của K)

Lưu ý: có một lỗi trong các công thức từ trang web hỗ trợ TP-Link (mising ^).

Thay thế Prxbằng cường độ tín hiệu nhận được để có khoảng cách từ WiFi AP.

Ví dụ: Ptx = 16 dBm, AGtx = 2 dBi, AGrx = 0, Prx = -51 dBm (cường độ tín hiệu nhận được), CLtx = 0, CLrx = 0, f = 2442 MHz (kênh 802.11bgn thứ 7), FM = 22. Kết quả: FSPL = 47 dB, d = 2,1865 m

Lưu ý: FM (lề mờ dần) có vẻ không liên quan ở đây, nhưng tôi bỏ nó vì công thức ban đầu.

Bạn nên xem xét các bức tường tài khoản, bảng http://www.liveport.com/wifi-signal-attenuation có thể hữu ích.

Ví dụ: (dữ liệu trước đó) + một bức tường gỗ (5 dB, từ bảng). Kết quả: FSPL = FSPL - 5 dB = 44 dB, d = 1,548 m

Cũng xin lưu ý rằng liều lượng tăng ích antena không thêm công suất - nó mô tả hình dạng của mẫu bức xạ (bánh rán trong trường hợp antena đa hướng, zeppelin trong trường hợp ăng ten định hướng, v.v.).

Không có điều nào trong số này tính đến phản xạ tín hiệu (không có ý tưởng về cách thực hiện điều này). Chắc tiếng ồn cũng thiếu. Vì vậy, phép toán này có thể chỉ tốt cho ước tính khoảng cách thô.


7

câu trả lời đơn giản cho câu hỏi của bạn sẽ là Triangulation. Về cơ bản đây là khái niệm trong tất cả các thiết bị GPS, tôi sẽ đọc bài viết này để tìm hiểu thêm về cách Google thực hiện điều này: http://www.computerworld.com/s/article/9127462/FAQ_How_Google_Latitude_locates_you_?taxonomyId=15&pageNumber= 2 .

Theo hiểu biết của tôi, họ sử dụng một dịch vụ tương tự như Skyhook , là một phần mềm định vị xác định vị trí của bạn dựa trên tín hiệu wifi / điện thoại di động của bạn. Để đạt được độ chính xác, các dịch vụ này có các máy chủ cơ sở dữ liệu lớn lưu trữ thông tin vị trí trên các tháp di động và điểm truy cập wifi này - chúng thực sự khảo sát các khu vực đô thị để cập nhật thông tin. Để bạn đạt được điều gì đó tương tự, tôi cho rằng bạn phải sử dụng một dịch vụ như Skyhook - bạn có thể sử dụng SDK của họ ( http://www.skyhookwireless.com/location-technology/ ).

Tuy nhiên, nếu bạn muốn làm điều gì đó nội bộ (như sử dụng vị trí của bộ định tuyến của riêng bạn) - thì bạn có thể phải tạo một thuật toán bắt chước Triangulation. Bạn sẽ phải tìm cách lấy signal_strengthmac_addresscủa thiết bị và sử dụng thông tin đó cùng với vị trí của các bộ định tuyến để tìm ra vị trí. Bạn có thể có được thông tin về các thiết bị được kết nối với bộ định tuyến của mình bằng cách làm tương tự như thế này ( http://www.makeuseof.com/tag/check-stealing-wifi/ ).


đây là một nhiệm vụ khó khăn và đầy thử thách, bạn đã giúp tôi muốn tìm hiểu thêm về khía cạnh này của dịch vụ định vị..Xin vui lòng đăng bất kỳ thông tin / thông tin chi tiết mới nào bạn nhận được về vấn đề này, tôi muốn biết cách bạn giải quyết nó
Suvi Vignarajah

5

Khoảng cách (km) = 10 ^ ((Mất đường dẫn không gian trống - 92,45 - 20log10 (f)) / 20)


1

Nói chung, đây là một cách làm thực sự tồi tệ do nhiễu đa đường . Đây chắc chắn là một câu hỏi kỹ thuật RF hơn là một câu hỏi mã hóa.

Tl; dr, năng lượng RF wifi bị phân tán theo các hướng khác nhau sau khi bật ra khỏi tường, con người, sàn nhà, v.v. Không có cách nào để biết bạn đang ở đâu chỉ bằng cách sử dụng trianglation, trừ khi bạn đang ở trong một căn phòng trống có đặt đèn hiệu wifi chính xác đúng nơi.

Google có thể giải quyết vấn đề này vì về cơ bản họ có thể lập bản đồ vị trí của mọi SSID wifi tới vị trí GPS khi bất kỳ người dùng Android nào (chọn tham gia dịch vụ của họ) bước vào phạm vi. Bằng cách đó, lần tới khi người dùng đi ngang qua đó, ngay cả khi không có tín hiệu GPS hoàn hảo, google motherhip có thể cho biết bạn đang ở đâu. Thông thường, họ sẽ sử dụng nó kết hợp với một tín hiệu GPS tồi tàn.

Những gì tôi đã thấy là một lưới các thiết bị Zigbee hoặc BTLE. Nếu bạn biết chúng được bố trí ở đâu, bạn có thể sử dụng RSS kết hợp để tìm ra tương đối những cái bạn gần gũi nhất và bắt đầu từ đó.


Để biết thêm thông tin về cách Google thực hiện stackoverflow.com/questions/1668304/…
yhyrcanus

-5

Đừng quan tâm nếu bạn là người điều hành. Tôi đã viết văn bản của mình hướng tới khán giả của tôi không phải với tư cách là một nhà văn kỹ thuật

Tất cả những gì bạn cần học cách điều hướng bằng các công cụ có trước GPS. Một cái gì đó như sextant, octant, backstaff hoặc astrolabe.

Nếu bạn nhận được tín hiệu từ 3 vị trí khác nhau thì bạn chỉ cần đo cường độ tín hiệu và tạo tỷ lệ từ các vị trí đó. Phép tính tam giác đơn giản trong đó a2 + b2 = c2. Cường độ tín hiệu càng mạnh thì thiết bị càng gần bộ thu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.