Hệ thống thông tin di động toàn cầu (tiếng Pháp: Groupe Spécial Mobile tiếng Anh: Global System for Mobile Communications; viết tắt GSM) là một công nghệ dùng cho mạng thông tin di dộng. Dịch vụ GSM được sử dụng bởi hơn 2 tỷ người trên 212 quốc gia và vùng lãnh thổ. Các mạng thông tin di động GSM cho phép có thể roaming với nhau do đó những máy điện thoại di động GSM của các mạng GSM khác nhau ở có thể sử dụng được nhiều nơi trên thế giới.
GSM là chuẩn phổ biến nhất cho điện thoại di động (ĐTDĐ) trên thế giới. Khả năng phú sóng rộng khắp nơi của chuẩn GSM làm cho nó trở nên phổ biến trên thế giới, cho phép người sử dụng có thể sử dụng ĐTDĐ của họ ở nhiều vùng trên thế giới. GSM khác với các chuẩn tiền thân của nó về cả tín hiệu và tốc độ, chất lượng cuộc gọi. Nó được xem như là một hệ thống ĐTDĐ thế hệ thứ hai (second generation, 2G). GSM là một chuẩn mở, hiện tại nó được phát triển bởi 3rd Generation Partnership Project (3GPP).
Đứng về phía quan điểm khách hàng, lợi thế chính của GSM là chất lượng cuộc gọi tốt hơn, giá thành thấp và dịch vụ tin nhắn. Thuận lợi đối với nhà điều hành mạng là khả năng triển khai thiết bị từ nhiều người cung ứng. GSM cho phép nhà điều hành mạng có thể kết hợp chuyển vùng với nhau do vậy mà người sử dụng có thể sử dụng điện thoại của họ ở khắp nơi trên thế giới.
13 trang |
Chia sẻ: tuandn | Lượt xem: 2211 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Đồ án Tính toán mạng di động GSM, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Chương 5
THỰC HIỆN MÔ PHỎNG
Giới thiệu về mô phỏng đồ án:
Chương trình thực hiện mô phỏng:
Khi thực hiện đồ án này em đã chọn phần mềm lập trình Visual Basic 6 để mô phỏng.Vì đây là phần mềm lập trình hướng đối tượng và dễ sử dụng với tất cả người sử dụng nó.Giao diện khá dễ sử dụng với những người mới làm quen với lập trình.
Giới thiệu sơ qua về Visual Basic 6:
Nếu chung ta cho rằng chương trình này có vẻ nặng nề cho người mới học thì đừng lo lắng, vì Visual Basic làm hết mọi việc cho bạn. Khác với các ngôn ngữ như C++, bạn phải viết mỗi thứ một ít, Visual Basic cung cấp mức độ cao hơn của lập trình tự động. Như vậy chúng ta có thể làm nhiều thứ mà không phải lập trình nhiều.
Tuy nhiên, đừng hiểu sai “không lập trình nhiều” nghĩa là “không có nhiều tính năng mạnh”. Visual Basic là ngôn ngữ rất mạnh. Ta có thể lập trình để làm “mọi thứ” nếu cần. Ta cũng có thể khai thác khả năng tự động của VB để viết chương trình thật nhanh.Chọn lựa là ở người lập trình.Visual Basic đủ linh hoạt để hỗ trợ cho mọi người lập trình – từ người mới học đến lập trình chuyên nghiệp.
Lưu đồ giả thuật:
Giả thuật:
Một số code chính:
Tính toán trạm BTS:
On Error Resume Next
Dim i As Integer
Dim sobtstam As Double
Select Case Index
Case 2:
Unload Me
frmMain.Enabled = True
Case 3
sobtstam = (txtbts(0) / txtbts(1))
tongthuebao = Int(txtbts(2) * sobtstam)
If optmhomi.Value = True Then
soBTS = Int(sobtstam)
End If
If optmh3st.Value = True Then
soBTS = Int(sobtstam / 3)
End If
lblkqbts(0).Caption = Str(soBTS)
lblkqbts(1).Caption = Format(tongthuebao, "0.")
Tính toán Cell:
Private Sub cmdTinhKichthuoc_Click()
Dim SuyhaoCP As Double
Freq = Val(txtCell(1).Text)
hightMS = Val(txtCell(3).Text)
hightBS = Val(txtCell(2).Text)
SuyhaoCP = Val(txtCell(0).Text)
If optHata.Value = True Then
Select Case cboKieuvungHata.ListIndex
Case 0:
If Freq > 400 Then
HesoHieuchinh = 3.2 * (Lg10(11.75 * hightMS)) ^ 2 - 4.97
Else
HesoHieuchinh = 8.29 * (Lg10(1.54 * hightMS)) ^ 2 - 1.1
End If
RofCell = (SuyhaoCP - 69.55 - 26.16 * Lg10(Freq) + 13.82 * Lg10(hightBS) + HesoHieuchinh) / (44.9 - 6.55 * Lg10(hightBS))
Case 1:
HesoHieuchinh = hightMS * (1.1 * Lg10(Freq) - 0.7) - 1.56 * Lg10(Freq) + 0.8
RofCell = (SuyhaoCP - 69.55 - 26.16 * Lg10(Freq) + 13.82 * Lg10(hightBS) + HesoHieuchinh) / (44.9 - 6.55 * Lg10(hightBS))
Case 2:
HesoHieuchinh = 2 * 8.29 * Lg10(1.54 * hightMS) - 1.1
RofCell = (SuyhaoCP - 69.55 - 26.16 * Lg10(Freq) + 13.82 * Lg10(hightBS) + HesoHieuchinh - 2 * Lg10((Freq / 28) ^ 2) + 2 * 5.4) / (44.9 - 6.55 * Lg10(hightBS))
Case 3:
HesoHieuchinh = 2 * 8.29 * Lg10(1.54 * hightMS) - 1.1
RofCell = (SuyhaoCP - 69.55 - 26.16 * Lg10(Freq) + 13.82 * Lg10(hightBS) + HesoHieuchinh - 4.78 * (Lg10(Freq)) ^ 2 + 18.33 * Lg10(Freq) - 40.49) / (44.9 - 6.55 * Lg10(hightBS))
End Select
End If
If optWalf.Value = True Then
RofCell = (SuyhaoCP - 20 * Lg10(Freq) - 32.4) / 20
End If
Kichthuoc = 10 ^ RofCell
lblRCell.Caption = Str(Kichthuoc) + " km"
End Sub
Private Sub tblInput_Click()
On Error Resume Next
Dim SuyhaoCP As Double
Dim DientichCell As Double
Freq = Val(txtCell(1).Text)
hightMS = Val(txtCell(3).Text)
hightBS = Val(txtCell(2).Text)
SuyhaoCP = Val(txtCell(0).Text)
Gocden = Val(txtCell(5).Text)
dorongPho = Val(txtCell(7).Text)
b = Val(txtCell(6).Text)
docaoNha = Val(txtCell(4).Text)
With tblInput
If .Buttons(1).Value = tbrPressed Then
txtCell(0).Text = ""
txtCell(1).Text = ""
txtCell(2).Text = ""
txtCell(3).Text = ""
txtCell(4).Text = ""
txtCell(6).Text = ""
txtCell(5).Text = ""
lblRCell.Caption = ""
lblDientich.Caption = ""
txtCell(0).SetFocus
lstCell.Clear
lstHata.Clear
lstWalf.Clear
End If
If .Buttons(2).Value = tbrPressed Then
txtCell(0).Text = ""
txtCell(1).Text = "880"
txtCell(2).Text = "30"
txtCell(3).Text = "1.5"
txtCell(4).Text = "30"
txtCell(6).Text = "15"
txtCell(5).Text = "90"
txtCell(0).SetFocus
End If
If .Buttons(3).Value = tbrPressed Then
lstCell.AddItem txtCell(0).Text
If optHata.Value = True Then
Select Case cboKieuvungHata.ListIndex
Case 0:
If Freq > 400 Then
HesoHieuchinh = 3.2 * (Lg10(11.75 * hightMS)) ^ 2 - 4.97
Else
HesoHieuchinh = 8.29 * (Lg10(1.54 * hightMS)) ^ 2 - 1.1
End If
RofCell = (SuyhaoCP - 69.55 - 26.16 * Lg10(Freq) + 13.82 * Lg10(hightBS) + HesoHieuchinh) / (44.9 - 6.55 * Lg10(hightBS))
Case 1:
HesoHieuchinh = hightMS * (1.1 * Lg10(Freq) - 0.7) - 1.56 * Lg10(Freq) + 0.8
RofCell = (SuyhaoCP - 69.55 - 26.16 * Lg10(Freq) + 13.82 * Lg10(hightBS) + HesoHieuchinh) / (44.9 - 6.55 * Lg10(hightBS))
Case 2:
HesoHieuchinh = hightMS * (1.1 * Lg10(Freq) - 0.7) - 1.56 * Lg10(Freq) + 0.8
RofCell = (SuyhaoCP - 69.55 - 26.16 * Lg10(Freq) + 13.82 * Lg10(hightBS) + HesoHieuchinh - 4 * Lg10((Freq / 28)) + 2 * 5.4) / (44.9 - 6.55 * Lg10(hightBS))
Case 3:
HesoHieuchinh = hightMS * (1.1 * Lg10(Freq) - 0.7) - 1.56 * Lg10(Freq) + 0.8
RofCell = (SuyhaoCP - 69.55 - 26.16 * Lg10(Freq) + 13.82 * Lg10(hightBS) + HesoHieuchinh + 8) / (44.9 - 6.55 * Lg10(hightBS))
End Select
Kichthuoc = 10 ^ RofCell
DientichCell = 2.6 * Kichthuoc ^ 2
lblRCell.Caption = Format(Kichthuoc, "0.####") + " km"
lblDientich = Format(DientichCell, "0.####") + " km2"
lstHata.AddItem lblRCell.Caption
lstWalf.AddItem " "
End If
If optWalf.Value = True Then
Select Case cboKieuvungWalf.ListIndex
Case 0:
If (Gocden >= 0) And (Gocden docaoNha) Then
Lo = -9.646
Lbsh = -18 * Lg10(11) + (hightBS - docaoNha)
Ka = 54
Kd = 18 - 15 * (hightBS - docaoNha) / (docaoNha - hightMS)
Else
Lo = 2.5 + 0.075 * (Gocden - 55)
Lbsh = 0
Ka = 54 - 0.8 * hightBS
Kd = 18
End If
Kf = 4 + 1.5 * Freq / 925 - 1.5
Lp = Lo + 10 * Lg10(Freq) - 10 * Lg10(dorongPho) - 16.7 + 20 * Lg10(docaoNha - hightMS)
Lf = 16.87 + 20 * Lg10(Freq)
Lvc = Lbsh + Ka + Kf * Lg10(Freq) - 9 * Lg10(hightBS)
RofCell = (SuyhaoCP - Lf - Lvc - Lp) / (20 + Kd)
Case 1:
If (Gocden >= 0) And (Gocden docaoNha) Then
Lo = -9.646
Lbsh = -18 * Lg10(11) + (hightBS - docaoNha)
Ka = 54
Kd = 18 - 15 * (hightBS - docaoNha) / (docaoNha - hightMS)
Else
Lo = 2.5 + 0.075 * (Gocden - 55)
Lbsh = 0
Ka = 54 - 0.8 * hightBS
Kd = 18
End If
Kf = 4 + 0.7 * Freq / 925 - 0.7
Lp = Lo + 10 * Lg10(Freq) - 10 * Lg10(dorongPho) - 16.7 + 20 * Lg10(docaoNha - hightMS)
Lf = 16.69 + 20 * Lg10(Freq)
Lvc = Lbsh + Ka + Kf * Lg10(Freq) - 9 * Lg10(hightBS)
RofCell = (SuyhaoCP - Lf - Lvc - Lp) / (20 + Kd)
End Select
Kichthuoc = 10 ^ RofCell
lblRCell.Caption = Format(Kichthuoc, "0.####") + " km"
DientichCell = 2.6 * Kichthuoc ^ 2
lblDientich = Format(DientichCell, "0.####") + " km2"
lstHata.AddItem " "
lstWalf.AddItem lblRCell.Caption
End If
End If
End With
End Sub
Một số hình ảnh mô phỏng: