Quy hoạch và tối ưu mạng wcdma

MỤC LỤC Trang BẢNG TRA CỨU CÁC TỪ VIẾT TẮTiv DANH MỤC BẢNG BIỂUx DANH MỤC HÌNH VẼxi CHƯƠNG 1: CÔNG NGHỆ WCDMA1 1.1. SỰ PHÁT TRIỂN CỦA HỆ THỐNG THÔNG TIN DI ĐỘNG1 1.1.1. Hệ thống thông tin di động thế hệ 1. 1 1.1.2. Hệ thống thông tin di động thế hệ 2. 2 1.1.2.1. Đa truy cập phân chia theo thời gian TDMA3 1.1.2.2. Đa truy cập phân chia theo mã CDMA4 1.2. HỆ THỐNG THÔNG TIN DI ĐỘNG THẾ HỆ BA (3G - THE THIRD GENERATION)6 1.3. YÊU CẦU ĐỐI VỚI HỆ THỐNG THÔNG TIN DI ĐỘNG THẾ HỆ BA7 1.4. SỰ KHÁC NHAU CƠ BẢN GIỮA WCDMA VÀ GIAO DIỆN VÔ TUYẾN THẾ HỆ THỨ 211 1.5. GIỚI THIỆU TỔNG QUAN MẠNG WCDMA12 1.5.1. Mô cấu trúc mạng WCDMA13 1.5.2. Mạng truy nhập vô tuyến UTRAN:16 1.5.2.1. Đặc trưng của UTRAN16 1.5.2.2. Bộ điều khiển mạng vô tuyến UTRAN17 1.5.2.3. Node B18 1.5.3. Giao diện vô tuyến. 18 1.5.3.1. Giao diện UTRAN – CN, IU. 18 1.5.3.2. Giao diện RNC – RNC, IUr19 1.5.3.3. Giao diện RNC – Node B, IUb. 20 1.6. CÁC LOẠI KÊNH TRONG UTRAN20 1.6.1. Các kênh lôgic. 20 1.6.2. Các kênh vật lý. 21 1.6.3. Các kênh truyền tải22 1.6.3.1. Kênh truyền tải riêng. 22 1.6.3.2. Các kênh truyền tải chung. 23 1.7. KỸ THUẬT TRẢI PHỔ TRONG WCDMA25 1.8. ĐIỀU KHIỂN CÔNG SUẤT TRONG WCDMA26 1.8.1. Điều khiển công suất vòng hở (OLPC). 27 1.8.2. Điều khiển công suất vòng kín (CLPC). 28 1.8.3. Các trường hợp điều khiển công suất đặc biệt29 CHƯƠNG 2: QUY HOẠCH MẠNG WCDMA40 2.1. KHỞI TẠO QUY HOẠCH (ĐỊNH CỠ MẠNG). 41 2.1.1. Sơ đồ khối quá trình định cỡ mạng. 42 2.1.2. Phân tích quỹ năng lượng đường truyền vô tuyến. 43 2.1.2.1. Quỹ năng lượng đường lên. 44 2.1.2.2. Quỹ năng lượng đường xuống. 47 2.1.2.3. Độ nhạy máy thu. 51 2.1.2.4. Độ lợi chuyển giao mềm và giới hạn hiệu ứng che tối52 2.1.3. Xác định bán kính và vùng phủ sóng cell53 2.1.4. Quy hoạch dung lượng và vùng phủ - lặp tối ưu. 54 2.1.5. Định cỡ RNC(Radio network Control). 56 2.2. QUY HOẠCH CHI TIẾT58 2.2.1. Phân tích suy hao đường truyền và các mô truyền dẫn. 59 2.2.2. Các mô truyền dẫn cơ bản. 59 2.2.2.1. Mô Hata-Okumura. 59 2.2.2.2. Mô Walfisch - Ikegami61 2.2.3. Lặp đường lên và đường xuống. 64 2.2.4. Hậu xử lý - Dự báo vùng phủ mạng và phân tích kênh chung. 65 2.3. TỐI ƯU MẠNG65 CHƯƠNG 3: CÁC GIẢI PHÁP TỐI ƯU MẠNG W-CDMA68 3.1. MÔ TẢ TOÁN HỌC CỦA VẤN ĐỀ TỐI ƯU HOÁ68 3.2.TỐI ƯU TRONG QUY HOẠCH VÀ THIẾT KẾ MẠNG BẰNG PHƯƠNG PHÁP DỰ BÁO LƯU LƯỢNG69 3.2.1. Quy trình dự báo lưu lượng. 69 3.2.2. Dự báo lưu lượng bằng phương pháp hồi quy tuyến tính. 70 3.2.3. Dự báo lưu lượng bằng phương pháp hồi quy đàn hồi72 3.3. CÁC CÔNG NGHỆ ĐỂ TĂNG DUNG LƯỢNG ĐƯỜNG TRUYỀN TRONG W-CDMA75 3.3.1. Phân tập dàn anten thích ứng. 75 3.3.2. Cấu phân tập dàn anten thích ứng. 77 CHƯƠNG 4: XÂY DỰNG BÀI TOÁN TÍNH BÁN KÍNH CELL VÀ TỔNG LƯU LƯỢNG TRONG HỆ THỐNG WCDMA81 4.1. LƯU ĐỒ TÍNH TOÁN81 4.1.1. Lưu đồ thuật toán tổng quát:81 4.1.2. Lưu đồ thuật toán chi tiết82 4.2. KẾT QUẢ CHƯƠNG TRÌNH84 4.2.1 Giao diện chính:84 4.2.2.Tính suy hao đường truyền. 84 4.2.3. Tính kích thước Cell85 4.2.4. Tính dung lượng kênh. 85 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI. 87 TÀI LIỆU THAM KHẢO89 PHỤ LỤC A1

doc109 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2772 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Quy hoạch và tối ưu mạng wcdma, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
i của một RNC. Lưu lượng cực đại tại giao diện Iub. Số lượng và loại giao diện (ví dụ: STM-1, E1). Ví dụ về dung lượng của một RNC với các cấu khác nhau: 2.3: Ví dụ về dung lượng của một RNC. Cấu Lưu lượng Iub (Mbps) Số BTS Số cell Các giao diện khác STM-1 E1 1 48 128 384 4*4 6*16 2 85 192 576 4*4 8*16 3 122 256 768 4*4 10*16 4 159 256 960 4*4 12*16 5 196 384 1152 4*4 14*16 Số lượng RNC cần thiết để kết nối đến một số cell nhất định có thể được tính theo công thức sau: numCells cellsRNC . fillrate_1 (2.38) numRNCs = Trong đó: numCells: số lượng cell của vùng đang thực hiện việc định cỡ. cellsRNC: số lượng cell cực đại mà RNC có khả năng hỗ trợ. fillrate_1: hệ số sử dụng để dự phòng cho dung lượng cực đại. numBTSs btsRNC . fillrate_2 (2.39) Số lượng RNC cần thiết để kết nối đến một số BTS nhất định có thể được tính theo công thức sau: numRNCs = Trong đó: numBTSs: số BTS trong khu vực cần định cỡ. btsRNC: số BTS cực đại có thể kết nối đến RNC. fillrate_2: hệ số sử dụng để dự phòng cho dung lượng cực đại. Dựa trên dung lượng dự tính, có nhiều phương pháp định cỡ RNC như sau: Lưu lượng hỗ trợ (giới hạn trên của định cỡ RNC): thể hiện dung lượng thiết bị quy hoạch mạng, thông thường được quy hoạch sao cho nó lớn hơn dung lượng yêu cầu. Lưu lượng yêu cầu (giới hạn dưới của định cỡ RNC): là giá trị lưu lượng trung bình thực tế trên toàn mạng. Giao diện truyền dẫn Iub: nếu định cỡ RNC để phục vụ N trạm, thì tổng dung lượng của giao diện truyền dẫn Iub phải lớn hơn N lần dung lượng của mỗi trạm. 2.2. QUY HOẠCH CHI TIẾT Việc quy hoạch chi tiết được thực hiện sử dụng phần mềm quy hoạch mạng. Ở đây, ta phân tích phần mềm mô phỏng tĩnh, cho nên mặc dù thực tế các thuê bao không di động tuy nhiên các thuê bao có các tốc độ khác nhau. Chương trình mô phỏng gồm có 3 phần cơ bản: Phần khởi tạo, phân tích tổng hợp đường lên và đường xuống, và phần hậu xử lý. Pha khởi tạo Pha hậu xử lý Vòng lặp kết hợp UL/DL Khởi tạo toàn bộ Khởi tạo các vòng lặp Bước lặp UL Bước lặp DL Hậu xử lý Hiển thị đồ họa Phân tích vùng phủ Kết thúc 2.6: Tổng quan mô phỏng tĩnh. 2.2.1. Phân tích suy hao đường truyền và các mô truyền dẫn Địa hình Hình thái học Hướng phố Mô hình truyền sóng Suy hao tuyến cơ bản Độ cao hiệu dụng anten Tham số điều chỉnh LOS NLOS 2.7: Các thành phần của mô truyền sóng. Trong quá trình quy hoạch mạng, các mô truyền dẫn được sử dụng để tính cường độ trường tín hiệu của một máy phát trong vùng tính toán. Trong các cell vĩ mô, giả thiết rằng các máy phát ở trên đỉnh mái nhà và máy thu ở trên mặt đất. Sự truyền lan sóng vô tuyến từ bộ phát đến bộ thu tính toán không đơn giản vì nhiều trở ngại và cấu trúc kênh phức tạp. Trong cell vi mô, việc tính toán đơn giản hơn vì thường chỉ có một ít đường tín hiệu mạnh. Trong quy hoạch cell vĩ mô, môi trường truyền dẫn phức tạp vì khoảng cách từ máy phát đến máy thu lớn và đường truyền sóng khó xác định. Trong điều kiện đó sử dụng mô thực nghiệm hoặc bán thực nghiệm có hiệu quả hơn. Những mô này sử dụng các tham số tự do và các hệ số điều chỉnh khác nhau có thể được điều chỉnh bằng số liệu đo. Các mô thực nghiệm được sử dụng có hiệu quả trong điều kiện môi trường gần máy phát ít ảnh hưởng đến truyền sóng. 2.2.2. Các mô truyền dẫn cơ bản Phần này giới thiệu 2 mô truyền dẫn được sử dụng rộng rãi, đó là mô Hata-Okumura và Walfisch-Ikegami. Những mô thực nghiệm này là những phương tiện cơ bản cho việc tính toán suy hao truyền dẫn. 2.2.2.1. Mô Hata-Okumura Mô Hata-Okumura là quan hệ thực nghiệm được rút ra từ báo cáo kỹ thuật của Okumura cho phép sử dụng các kết quả vào các công cụ tính toán. Báo cáo của Okumura bao gồm một chuỗi các lưu đồ được sử dụng để lập mô thông tin vô tuyến. Dựa trên các đo lường được thực hiện bởi Y.Okumura ở Tokyo tại tần số 1920 MHz, các đo lường này vừa khớp với mô toán học của M.Hata. Trong mô này, ban đầu suy hao đường truyền được tính bằng cách tính hệ số điều chỉnh Anten cho các vùng đô thị là hàm của khoảng cách giữa trạm gốc, trạm di động và tần số. Hệ số này được đưa vào suy hao không gian tự do. Kết quả được điều chỉnh bằng các hệ số cho độ cao anten trạm gốc và trạm di động. Ngoài ra, các hệ số điều chỉnh được cấp cho hướng phố, các vùng ngoại ô, các vùng mở và các địa không đều. Các biểu thức toán học được sử dụng trong mô Hata-Okumura để xác định tổn hao trung bình L: Lp= 69,55 + 26,16lgfc – 13,82lghb – a(hm) + (44,9 – 6,55lghb)lgr dB (2.40) Trong đó: fc: tần số hoạt động (MHz); Lp: tổn hao trung bình hb: độ cao anten trạm gốc (m); hm: độ cao anten trạm di động (m) r : bán kính cell (khoảng cách từ trạm gốc) (km) a(hm): hệ số hiệu chỉnh cho độ cao anten di động (dB) Dải thông số sử dụng được cho mô Hata là: 150 ≤ fc ≤ 1500 MHz; 30 ≤ hb ≤ 200 m; 1 ≤ hm ≤ 10 m; 1 ≤ r ≤ 20 km. a(hm) tính như sau: F Đối với thành phố nhỏ và trung bình: a(hm) = (1,11lgfc -0,7)hm – (1,56lgfc – 0,8)dB (2.41) Đối với thành phố lớn: a(hm) = 8.29(lg1,54hm)2 – 1,1 dB fc ≥ 200 MHz (2.42) hay: a(hm) = 3,2(lg11,75hm)2 – 4,97 dB fc ≥ 400 MHz (2.43) Như vậy bán kính cell được tính : (2.44) F Vùng ngoại ô: Với vùng ngoại ô hệ số hiệu chỉnh suy hao so với vùng thành phố là: Lno = Lp - 2 (dB) (2.45) F Vùng nông thôn: Với vùng nông thôn hệ số hiệu chỉnh suy hao so với vùng thành phố là: Lnt(dB) = Lp – 4,78.(lgfc)2 +18,33(lgfc) - 40,94 (dB) (2.46) 2.2.2.2. Mô Walfisch - Ikegami + Mô Walfisch-Ikegami (hay COST 231) được sử dụng để đánh giá tổn hao đường truyền ở môi trường thành phố cho hệ thống thông tin tổ ong (cellular) ở dải tần 800-2000 MHz. Mô này đã được sử dụng ở châu Âu cho hệ thống GSM và một số mô truyền ở Mỹ. Mô Walfisch-Ikegami chứa 3 phần tử: tổn hao không gian tự do; nhiễu xạ mái nhà-phố và tổn hao tán xạ; tổn hao do nhiều vật chắn. d hm Anten trạm di động Mặt đường Tòa nhà w b hr Hướng di chuyển f Sóng tới Máy di động hb + Mô Walfisch-Ikegami dựa vào giả thiết rằng sự truyền lan sóng được truyền trên mái nhà bằng quá trình nhiễu xạ. Các tòa nhà nằm trên đường thẳng giữa máy phát và máy thu. 2.8: Các tham số trong mô Walfisch-Ikegami Các biểu thức sử dụng cho mô này như sau: Lp= Lf + Lrts + Lmsd (2.47) hay Lp = Lf khi Lrts + Lmsd ≤ 0 (2.48) trong đó: Lf : tổn hao không gian tự do Lrts: nhiễu xạ mái nhà - phố và tổn hao tán xạ Lmsd: tổn hao các vật che chắn. Tổn hao không gian tự do Lf được xác định: Lf = 32,4 +20lgr + 20lgfc (dB) (2.49) - Nhiễu xạ mái nhà - phố và tổn hao phân tán tính như sau: Lrts = (-16,7) -10lgW + 10lgfc + 20lg∆hm + Lori (dB) (2.50) Lori = trong đó: W: độ rộng phố (m); ∆hm= hr - hm (m); -9,646 (dB) 0 ≤ Ф ≤ 55 (độ) 2,5 + 0,075(Ф-55) (dB) 55 ≤ Ф ≤ 90 (độ) Trong đó: Ф là góc đến so với trục phố. - Tổn hao các vật che chắn: Lmsd = Lbsh + ka + kdlgr + kflgfc – 9lgb (2.51) Trong đó: b: khoảng cách giữa tòa nhà dọc theo đường truyền vô tuyến (m). ka = với thành phố lớn. với thành phố trung bình. Với trường hợp tia nhìn thẳng (LOS): Lp = 42,6 + 26lgr + 20lgfc (2.52) Với trường hợp tia không nhìn thẳng (NLOS): Lp = 32,4 + 20lgr + 20lgfc + Lrts + Lmsd (2.53) Như vậy bán kính cell tính theo mô Walfisch – Ikegami là : (2.54) Dải thông số cho mô Walfisch-Ikegami phải thỏa mãn: 800 ≤ fc ≤ 2000 MHz; 4 ≤ hb ≤ 50 m; 1 ≤ hm ≤ 3 m; 0,02 ≤ r ≤ 5 km Có thể sử dụng các giá trị mặc định sau cho mô : b = 20 ÷ 50m; W = b/2; Ф = b/2. Nóc nhà = 3 m cho nóc nhà có độ cao và 0 m cho nóc nhà phẳng. hr = 3 x (số tầng) + nóc nhà Ta tính toán tổn hao đường truyền từ mô Hata và Walfisch-Ikegami theo các số liệu dưới đây và so sánh kết quả: fc = 880 MHz hr = 30 m hm = 1,5 m Ф = 90 độ hb = 30 m b = 30 m nóc nhà = 0 m W = 15 m Bảng2.4: So sánh tổn hao đường truyền từ mô Hata và Walfisch-Ikegami. Khoảng cách (km) Tổn hao đường truyền, dB Mô Hata Mô Walfisch-Ikegami 1 2 3 4 5 126,16 136,77 142,97 147,37 150,79 139,45 150,89 157,58 162,33 166,01 Tổn hao đường truyền dự đoán theo mô Hata thấp hơn 13-16 dB so với mô Walfisch-Ikegami. Tuy nhiên, mô Hata bỏ qua ảnh hưởng của độ rộng đường phố, nhiễu xạ phố và các tổn hao tán xạ. Các ảnh hưởng này được xét đến ở mô Walfisch-Ikegami. 2.2.3. Lặp đường lên và đường xuống Ở đây, ta phân tích các phương pháp và thuật toán trong phân tích lặp trong pha quy hoạch chi tiết của mạng vô tuyến 3G bao gồm: các yêu cầu đa dịch vụ và Q0S, điều khiển công suất phát nhanh ở đường lên và xuống, chuyển giao mềm và mềm hơn, chuyển giao kết hợp, kênh truyền dẫn đa đường, tốc độ của đầu cuối. Mục đích của quá trình lặp đường lên là để cấp phát công suất phát cho trạm di động để mức tạp âm, xuyên âm và các giá trị độ nhạy trạm gốc hội tụ. Các công suất phát trung bình của các trạm gốc tới mỗi trạm di động được xác định sao cho đáp ứng yêu cầu Eb/N0 tại trạm gốc. Các công suất phát trung bình của các trạm di động dựa trên độ nhạy của các trạm gốc, dữ liệu và tốc độ của trạm di động, các suy hao tuyến tới các trạm di động. Các công suất phát này được so sánh với các công suất cho phép phát của các MS, nếu vượt quá giới hạn này coi như vượt ngưỡng (ngừng thông tin). Sau đó dự tính lại nhiễu, giá trị tải mới và độ nhạy mới cho từng BS được ấn định. Nếu hệ số tải đường lên cao hơn giới hạn được thiết lập, các MS chuyển dịch một cách ngẫu nhiên ở cell có tải cao đến một sóng mang khác hoặc bị vượt ngưỡng. Một cách để xác định các vấn đề của công nghệ WCDMA trong lặp UL là xem chúng phụ thuộc như thế nào vào các BS mà MS được nối tới, để chọn lựa một BS phục vụ tốt nhất. Tương tự UL, mục đích của lặp DL là gán công suất phát BS cho mỗi kết nối sử dụng bởi một MS, cho đến khi tất cả các MS nhận tín hiệu. 2.2.4. Hậu xử lý - Dự báo vùng phủ mạng và phân tích kênh chung Phần này sẽ thực hiện việc đánh giá xác suất vùng phủ và phân tích các kênh chung và riêng trong UMTS:UL DCH, DL DCH, P-CPICH,BCH, FACH và PCH. Trong tất cả các phân tích được thực hiện với giả thiết trạng thái nhiễu là cố định. Điều này có nghĩa là một phân bố lưu lượng xác định đã được giả thiết và các lặp DL và UL đã hội tụ. Một MS kiểm tra được di chuyển qua tất cả các điểm bên trong vùng và tất cả các MS khác đã được phục vụ đang đóng góp vào nhiễu. MS kiểm tra không ảnh hưởng lên trạng thái nhiễu, do đó tỷ số nhiễu cell khác / nội cell sẽ không thay đổi và tổng công suất phát của BS phục vụ vẫn như trước vòng lặp. 2.3. TỐI ƯU MẠNG Tối ưu mạng là quá trình phân tích cấu và hiệu năng mạng nhằm cải thiện chất lượng mạng tổng thể và đảm bảo tài nguyên của mạng được sử dụng một cách có hiệu quả. Giai đoạn đầu của quá trình tối ưu là định nghĩa các chỉ thị hiệu năng chính. Chúng gồm các kết quả đo ở hệ thống quản lý mạng và số liệu đo thực tế để xác định chất lượng dịch vụ. Với sự giúp đỡ của hệ thống quản lý mạng ta có thể phân tích hiệu năng quá khứ, hiện tại và dự báo tương lai. Mục đích của phân tích chất lượng mạng là cung cấp cho nhà khai thác một cái nhìn tổng quan về chất lượng và hiệu năng của mạng, bao gồm việc lập kế hoạch về trường hợp đo tại hiện trường và đo bằng hệ thống quản lý mạng để lập báo cáo điều tra. Đối với hệ thống 2G, chất lượng dịch vụ gồm: thống kê các cuộc gọi bị rớt và phân tích nguyên nhân, thống kê chuyển giao và kết quả đo các lần gọi thành công. Còn các hệ thống 3G có các dịch vụ rất đa dạng nên cần đưa ra các định nghĩa mới về chất lượng dịch vụ. Trong hệ thống thông tin di động thế hệ ba việc tối ưu hóa mạng rất quan trọng vì mạng thế hệ ba cung cấp nhiều dịch vụ đa dạng. Điều chỉnh tự động phải cung cấp câu trả lời nhanh cho các điều khiển thay đổi lưu lượng trong mạng. Trong giai đoạn đầu của quá trình xây dựng mạng WCDMA chỉ có một số thông số là được điều chỉnh tự động và vì thế cần phải duy trì quá trình tối ưu hóa của hệ thống GSM. F Tổng kết chương 2: Chương này đã trình bày 3 pha trong quá trình quy hoạch mạng WCDMA: Khởi tạo quy hoạch (định cỡ mạng), quy hoạch chi tiết mạng, vận hành và tối ưu hóa mạng. Trong đó, phần định cỡ mạng được phân tích cụ thể và đưa ra sơ đồ khối quá trình định cỡ, cũng như các công thức tính toán, phân tích quỹ năng lượng đường truyền vô tuyến, bán kính và diện tích cell, quy hoạch dung lượng và vùng phủ. Ngoài ra, trong phần quy hoạch chi tiết cũng đã đề cập đến 2 mô truyền dẫn cơ bản được sử dụng rộng rãi, đó là mô Hata-Okumura và Walfisch-Ikegami. CHƯƠNG 3: CÁC GIẢI PHÁP TỐI ƯU MẠNG W-CDMA Tối ưu mạng là quá trình phân tích cấu và hiệu năng mạng nhằm cải thiện chất lượng mạng tổng thể và đảm bảo tài nguyên của mạng được sử dụng một cách có hiệu quả. Giai đoạn đầu của quá trình tối ưu là định nghĩa các chỉ thị hiệu năng chính. Chúng gồm các kết quả đo ở hệ thống quản lý mạng và số liệu đo thực tế để xác định chất lượng dịch vụ. Với sự giúp đỡ của hệ thống quản lý mạng ta có thể phân tích hiệu năng quá khứ, hiện tại và tương lai. Ta có thể phân tích hiệu năng của các thuật toán quản lý tài nguyên vô tuyến và các thông số của chúng bằng cách sử dụng các kết quả của chỉ thị hiệu năng chính. 3.1. MÔ TẢ TOÁN HỌC CỦA VẤN ĐỀ TỐI ƯU HOÁ Về mặt toán học, vấn đề tối ưu hoá thực chất là quá trình đi tìm điểm cực trị (cực tiểu hoặc cực đại) của một hàm số diển tả mục tiêu cần đạt tới. Các vấn đề tối ưu hoá trong thực tế rất đa dạng và phong phú, song chúng đều có thể quy về một dạng tổng quát.Chúng ta gọi bài toán dưới đây là vấn đề tối ưu hoá dạng chuẩn. Ký hiệu x là véc tơ n chiều chừa các biến tự do. Cho f(x), hi(x) với i = 1, 2,…, p và gj(x) với j = 1, 2,…, q là các hàm vô hướng phụ thuộc x. Tìm giá trị cực tiểu của f(x) với điều kiện hi(x) ≤ 0 và gj = 0 Hàm f(x) gọi là hàm mục tiêu (objective function), tuỳ theo từng lĩnh vực cụ thể mà biến x xó tên gọi khác nhau. Trong lý thuyết quyết định x được gọi là biến quyết định (decision variable). Trong thiết kế tối ưu x được gọi là véc tơ tham số thiết kế (design parameter vector). Trong lý thuyết hệ thống tối ưu x được gọi là biến trạng thái (state variable). Thuât ngữ biến quyết định được dùng chủ yếu. Điều kiện hi(x) ≤ gọi là điều kiện ràng buộc dạng bất đẳng thức (inequality contraints), điều kiện gj(x) = 0 gọi là điều kiệu ràng buộc dạng đẳng thức (equality constraints). Vấn đề tối ưu hoá dạng chuẩn có thể phát biểu ngắn gọn như sau: Cực tiểu f(x) với điều kiện hi(x) ≤ 0, i = 1, 2,…, p ; gj(x) = 0, j = 1, 2,…, q; x Như đã biết, với mọi hàm f(x) ta có max{ f(x)} = min{ -f(x)} nên vấn đề cực đại hoá luôn luôn có thể chuyển về vấn đề cực tiểu hoá. Tương tự, điều kiện hi(x) ≥ 0 có thể chuyển thành –hi(x) ≤ 0 nên trong bài toán chuẩn không chứa điều kiện hi(x) ≥ 0. 3.2.TỐI ƯU TRONG QUY HOẠCH VÀ THIẾT KẾ MẠNG BẰNG PHƯƠNG PHÁP DỰ BÁO LƯU LƯỢNG Dự báo lưu lượng ước tính tổng số lưu lượng tại một tần số nhất định, với quy định rằng nhu cầu điện thoại đã được dự báo. Kết quả của dự báo lưu lượng được sử dụng để lập kế hoạch quản lý, và để nghiên cứu lý thuyết về mạng tối ưu làm cho lưu lượng có chi phí thấp nhất. Dự báo lưu lượng cũng được sử dụng để tính số lượng thiết bị (ví dụ: mạch trung kế và thiết bị thông dụng cho thiết bị trạm). Để tính số lượng thiết bị, cần có số liệu lưu lượng chi tiết cho mỗi mạch và cho mỗi trạm. 3.2.1. Quy trình dự báo lưu lượng Lưu lượng được dự báo theo các bước sau đây: Bước 1: Xác định mục đích và đối tượng dự báo. Xác định mục tiêu của dự báo, lưu lượng và năm được dự báo. Bước 2: Thu thập số liệu và xác định giả thiết. Xác định các giả thiết của dự báo ( hệ thống giá và các dự án phát triển địa phương có thể có). Lựa chọn và phân tích số liệu biểu thị xu hướng của nhu cầu lưu lượng. Bước 3: Nghiên cứu xu hướng lưu lượng Ghi chép và phân tích các đặc tính lưu lượng. Gồm có: xu hướng chuỗi thời gian của lưu lượng, phân tích xu hướng lưu lượng nội hạt và đường dài trong nước,các nhân tố chính ảnh hưởng dến lưu lượng, mối quan hệ giữa sự phát triển vùng và lưu lượng,sự phân bố lưu lượng theo thời gian Bước 4: Lựa chọn phương pháp dự báo. Phương pháp thích hợp nhất được lựa chọn qua việc xem xét các đặc tính của lưu lượng và các nhân tố dao động. Bước 5: Tính toán lưu lượng cơ bản. Tính toán lưu lượng trung bình hàng năm cho năm tham khảo Bước 6: Dự báo lưu lượng Dự báo thực hiện bằng cách sử dụng phương pháp chuỗi thời gian, hoặc nhân tỉ lệ tăng lưu lượng với lưu lượng cơ bản. Bước 7: Đánh giá/xác định dự báo Xem xét các đặc tính của các nhân tố dao động sử dụng trong dự báo, dự báo so sánh xu hướng lưu lượng toàn cầu và số liệu lưu lượng của từng nước. Bước 8: Tính toán lưu lượng tham khảo Lưu lượng tham khảo được tính theo giả thuyết về sự dao động trong dự báo (lưu lượng trung bình hàng năm). Bước 9: Biên soạn các báo cáo các báo cáo mà chúng ta đưa ra các số liệu cơ sở cho dự báo lưu lượng ( lưu lượng cơ sở và số thuê bao), dự báo, các giả thiết cho dự báo, và cơ sở để đánh giá/xác định dự báo được soạn thảo. Bước 10: Hoàn thiện dự báo Bằng việc tiếp tục so sánh dự báo với các số liệu thưc tế,cải tiến phương pháp dự báo để đạt được sự chính xác cao hơn. 3.2.2. Dự báo lưu lượng bằng phương pháp hồi quy tuyến tính Tập hợp số liệu: Tập hợp lại những số liệu sau đây. Sử dụng lại những số lượng này,dự báo mật độ lưu lượng từ năm 2010 đến 2015. 3.1: Số liệu thực tế. Năm 2003 2004 2005 2006 2007 2008 2009 Lưu lượng 1010.3 1074.7 1127.5 1150.7 1196.6 1231.8 1253.3 Số thuê bao 11348 12497 13422 14033 14592 15207 15667 Lựa chọn phưong trình mẫu: Chọn phương trình mẫu có thể áp dụng đối với xu hướng quá khứ Hồi quy tuyến tính: y = ax + b (3.1) x : là số thuê bao y : là lưu lượng (erl) Phương trình: ∑y = a.n + b∑x (3.2) ∑xy = a∑x + b∑x2 (3.3) Tính toán: 3.2: Tính toán. Năm Lưu lượng(x) Thuê bao (y) x.y x2 2003 1010.3 11348 11464884.4 1020706.09 2004 1074.7 12497 13430525.9 1154980.09 2005 1127.5 13422 15133305 1271256.25 2006 1150.7 14033 16147773.1 1324110.49 2007 1196.6 14592 17460787.2 1431851.56 2008 1231.8 15207 18731982.6 1517331.24 2009 1253.3 15667 19635451.1 1570760.89 ∑ 8044.9 96766 112004709.3 9290996.61 ∑y = a.n + b∑x suy ra: 96766 = 7*a + 8044.9*b ∑xy = a∑x + b∑x2 suy ra: 112004709.3= 8044.9*7*a + 9290996.61*b Giải các phương trình: a = 5.190920289 b=12.02372479 y = 5.190920289.x + 12.02372479 (3.4) (4) Tính giá trị thuê bao: Những giá trị sau đây là giá trị dự báo số thuê bao. Suy ra giá trị dự báo lưu lượng: 3.3: Tính giá trị thuê bao. Năm 2010 2011 2012 2013 2014 2015 Số thuê bao 16137 16621 17120 17642 18215 18723 Mật độ lưu lượng 83777.90443 86290.31 88880.58 91590.23946 94564.63679 97201.6243 3.2.3. Dự báo lưu lượng bằng phương pháp hồi quy đàn hồi Tập hợp số liệu Tập hợp đựơc những số liệu sau: 3.4: Số liệu thực tế Năm 2003 2004 2005 2006 2007 2008 2009 Lưu lượng 1010.3 1074.7 1127.5 1150.7 1196.6 1231.8 1253.3 Số thuê bao 11348 12497 13422 14033 14592 15207 15667 Lựa chọn phương trình mẫu có thể được áp dụng với xu hướng quá khứ. Hồi quy đàn hồi: (3.5) x : tỷ lệ tăng số thuê bao y : tỷ lệ tăng lưu lượng : giá trị đàn hồi log(y) = log(a) + log(x) (3.6) ∑ log(y) = n log(a) + ∑log(x) (3.7) ∑ log(x).log(y) = n log(a). ∑log(x) + ∑log(x)2 (3.8) Tính toán: 3.5: Tính toán Năm L.Lượng (y) Thuê bao(X) (x) log(y) log(x) log(y).log (logx)2 (Y) (x) 2003 1010.3 1 11480 1 0 0 0 0 2004 1074.7 1.064 12497 1.089 0.02694 0.03703 0.001 0.00137 2005 1127.5 1.116 13422 1.169 0.04766 0.06782 0.00323 0.0046 2006 1150.7 1.139 14033 1.222 0.05652 0.08707 0.00492 0.00758 2007 1196.6 1.184 14592 1.271 0.07335 0.10415 0.00764 0.01085 2008 1231.8 1.219 15207 1.325 0.086 0.12222 0.01051 0.01494 2009 1253.3 1.241 15667 1.365 0.09377 0.13513 0.01267 0.01826 ∑ 8044.9 7.963 96898 8.441 0.38426 0.55341 0.03997 0.0576 (a) Tỷ lệ tăng lưu lượng: y : 2004 : 1074.7 - 1010.3 = 1.064 2005 : 1127.5 - 1010.3 = 1.116 ……. 2009 : 1253.3 - 1010.3 = 7.963 (b) : Tỷ lệ tăng thuê bao: (tương tự) (c) : Tính logy,logx,… (d) : Giải hồi quy đàn hồi: 0.38426 = 7. log(a) + 0.55341 0.03997 = 7. log(a). 0.55341 + .0.0576 Suy ra: log(a) = 0.000099 = 0.693104 log(y) = 0.000099 + 0.693104.log(x) (3.9) Tính giá trị dự báo: 3.6: Tính giá trị dự báo Năm 2009(thực tế) 2010 2011 2012 2013 2014 2015 Thuê bao Dự báo 15667 16137 16621 17120 17642 18215 18723 (a) 1.000 1.030 1.0609 1.0927 1.1253 1.1572 1.1834 Lưu lượng (b) 1.000 1.021 1.042 1.0636 1.0872 1.1213 1.1465 1253.3 1280 1333.76 1418.5871 1542.2879 1729.3675 1982.7198 Tỷ lệ tăng thuê bao Tỷ lệ tăng lưu lượng tính theo phương pháp hồi quy Giá trị dự báo lưu lượng Giá trị dự báo lưu lượng = (Số liệu lưu lượng thực tế)x(Tỷ lệ tăng lưu lượng) 2010 : 1253.3 x 1.021 = 1280 (erl) 3.3. CÁC CÔNG NGHỆ ĐỂ TĂNG DUNG LƯỢNG ĐƯỜNG TRUYỀN TRONG W-CDMA W-CDMA có một giao diện vô tuyến cho phép ứng dụng các thiết bị triệt nhiễu và các công nghệ thu vμ phát phân tập dμn anten thích ứng để tăng hơn nữa dung lượng truyền dẫn trong tương lai. ở đường lên, việc giảm MAI là rất quan trọng để tăng dung lượng đường truyền, kết hợp với việc sử dụng TPC nhanh-một biện pháp hiệu quả nhằm giảm công suất phát của MS để kéo dài tuổi thọ của pin và mở rộng vùng phủ sóng. Mặt khác, ở đường xuống, yêu cầu tăng dung lượng đường truyền mạnh hơn ở đường lên vì việc tải xuống (downloading) số liệu tốc độ cao trên Internet và các dịch vụ quảng bá chắc chắn sẽ được ứng dụng rộng rãi. MAI từ các thuê bao tốc độ cao sẽ gây nhiễu cực kỳ lớn đến các thuê bao tốc độ thấp (ví dụ như thông tin thoại). Do đó, việc tăng hơn nữa dung lượng ở đường truyền xuống là một nhiệm vụ rất quan trọng. Các công nghệ để thực hiện điều này bao gồm công nghệ sử dụng các thiết bị triệt nhiễu (thiết bị triệt nhiễu đa đường) hoặc công nghệ thu phân tập dàn anten thích ứng trong MS và công nghệ phân tập phát dàn anten thích ứng ở BS. Trong số đó, công nghệ phân tập phát dàn anten thích ứng là một công nghệ có tính thực tế và hiệu quả để tăng hơn nữa dung lượng đường truyền xuống, nó không yêu cầu phải thay đổi đáng kể chức năng của MS và có thể được thực hiện qua việc xử lý phần phát tại phía BS. 3.3.1. Phân tập dàn anten thích ứng Như trình bày trong 3.1, phân tập dàn anten thích ứng bao gồm việc lắp một máy thu phát cho một dàn anten thích ứng trong BS và nhân các tín hiệu thu được từ các anten đường lên với hệ số tải trọng tối ưu sau đó kết hợp các tín hiệu lại. Phương pháp này đem lại một mẫu bức xạ định hướng có một búp sóng chính ở hướng mà các tín hiệu cần thu đếnvà một chùm sóng ở hướng mà các sóng nhiễu đến nhằm làm vô hiệu các sóng nhiễu cho phép tăng tối đa SIR thu. Nhờ phương pháp này giúp giảm MAI và tăng dung lượng hệ thống ở đường lên. Ở đường xuống phương pháp này bao gồm việc phân hệ số tải trọng anten phát đã được tạo ra một cách thích hợp tại BS cho mỗi thuê bao với các tín hiệu phát của mỗi thuê bao, nhằm tạo ra một búp sóng chính ở hướng có các tín hiệu cần thu của thê bao và thực hiện truyền theo cách giảm nhiễu ở hướng của các thuê bao khác. Điều này cho phép tăng dung lượng hệ thống ở đường xuống. 3.1: Nguyên lý của phương pháp phân tập dàn anten thích nghi Dung lượng mạng C được tạo bởi : (3.10) Trong đó : là số kênh khả dụng trong mạng là số xuyên nhiễu trong cùng 1 cell là tỷ số tín hiệu trên xuyên nhiễu n là số mũ tổn hao đường truyền, phụ thuộc vào loại địa như nhà cao tần, cây cối,… thường chọn n = 4,38 Nếu một anten thích nghi làm giảm sự đóng góp xuyên nhiễu được biểu diễn quan bởi một hệ số cải thiện anten thích nghi là tức là thì sự tăng dung lượng từ C đến C’ là : (3.11) Nếu sử dụng n = 4,38 thì dung lượng mạng tăng lên một hệ số là 1,88 ( C’ = 1.88C) 3.3.2. Cấu phân tập dàn anten thích ứng Phân tập dμn anten thích ứng là một công nghệ xử lý quá trình thu thích ứng (đường lên) và phát thích ứng ( đường xuống) tại BS và được xây dựng theo cách để có thể ứng dụng được cho giao diện vô tuyến W-CDMA được qui định bởi 3 GPP. Phân tập phát dàn anten thích ứng tạo ra hệ số tải trọng anten phát bằng cách thực hiện theo hệ số tải trọng anten thu đã tạo ra tại khối thu BS: (1) Kiểm định mạch RF, thực hiện bù các độ lệch biên độ và pha giữa các nhánh trong các mạch thu phát RF và (2) kiểm định tần số sóng mang, thực hiện bù cho những giá trị xê dịch trong hệ số tải trọng của anten phát ở hướng búp sóng chính và búp sóng vô hiệu gây ra bởi sự khác nhau trong tần số sóng mang giữa đường lên và đường xuống ( đặc biệt trong FDD, tần số sóng là không giống nhau đối với đường lên và đường xuống). 3.2 trình bày cấu khối của BS thực hiện phân tập thu và phát dàn anten thích ứng. Các tín hiệu thu được bởi mỗi anten ở đường lên được giới hạn về độ rộng băng tần và được khuyếch đại nhờ một mạch thu RF và sau đó được điều chỉnh hệ số tải trọng bằng hệ số tải anten thu phức hợp và được kết hợp tại khối thu phân tập dàn anten thích ứng nhất quán. Sau đó tín hiệu sẽ được đưa tới quá trình ước tính các dao động về pha và biên độ gây ra bởi pha đinh trong mỗi đường truyền và kết hợp RAKE. Sau đó, các tín hiệu đã kết hợp RAKE được đưa tới phần giải xen kẽ và giải mã sữa lỗi để khôi phục chuỗi số liệu phát. Mặt khác, tại khối máy phát của BS, các tín hiệu sẽ được mã hoá kênh (FEC), xen kẽ, điều chế QPSK và nhân với các hệ số tải trọng anten phát phức hợp rồi đưa đến quá trình trải phổ. Sau đó, tín hiệu sẽ được đổi tần và khuyếch đại tại khối phát RF để phát đi. 3.2: Sơ đồ khối tổng quát hệ thống phân tập dàn anten thích nghi. F Tổng kết chương 3: Trong hệ thống thông tin di động thế hệ ba việc tối ưu hóa mạng rất quan trọng vì mạng thế hệ ba cung cấp nhiều dịch vụ đa dạng. Điều chỉnh tự động phải cung cấp câu trả lời nhanh cho các điều khiển thay đổi lưu lượng trong mạng. Vì vậy cần phải có phương pháp dự doán lưu lượng nhanh chóng và chính xác, đồng thời cần phải tối ưu hoá thiết bị nhằm tăng dung lượng đường truyền phù hợp với xu hướng phát triển thuê bao và nhu cầu dịch vụ ngày càng cao. CHƯƠNG 4: XÂY DỰNG BÀI TOÁN TÍNH BÁN KÍNH CELL VÀ TỔNG LƯU LƯỢNG TRONG HỆ THỐNG WCDMA Sau khi tìm hiểu tổng quát về kiến trúc mạng, các bước quy hoạch, tối ưu mạng WCDMA, ta tiến hành mô phỏng. Trong phần này sẽ giới thiệu lưu đồ thuật toán mô phỏng - tính toán các bước quy hoạch mạng di động và cùng các cửa sổ giao diện chương trình mô phỏng viết bằng ngôn ngữ Visual Basic 6.0. 4.1. LƯU ĐỒ TÍNH TOÁN 4.1.1. Lưu đồ thuật toán tổng quát: Sai Bắt đầu Thực hiện tính toán Kiểm tra thông số nhập Đúng In kết quả Kết thúc Nhập các thông số yêu cầu 4.1:Lưu đồ thuật toán tổng quát. 4.1.2. Lưu đồ thuật toán chi tiết Bắt đầu - Tính bán kính Cell - Tính diện tích Cell In kết quả Kiểm tra thông số nhập Sai Đúng Kiểm tra thông số nhập Sai Đúng Tính suy hao đường truyền cho phép đối với vùng phủ của cell In kết quả Nhập các thông số truyền sóng (chọn mô hình truyền sóng Walfisch-Ikegami cho Tp nhỏ và trung bình) Nhập: - Thông số truyền dẫn - Thông số trạm BTS - Thông số trạm MS 4.2: Lưu đồ thuật toán chi tiết. 4.2. KẾT QUẢ CHƯƠNG TRÌNH 4.2.1 Giao diện chính: 4.3: Chương trình chính. 4.2.2.Tính suy hao đường truyền 4.4: Giao diện tính suy hao đường truyền. 4.2.3. Tính kích thước Cell 4.5: Giao diện tính kích thước Cell. 4.2.4. Tính dung lượng kênh 4.6: Giao diện tính dung lượng kênh. Tổng kết chương 4: Để thấy rõ quá trình tính toán quy hoạch mạng W-CDMA ta tiến hành mô phỏng với các giao diện tính suy hao đường truyền, tính kích thước cell, tính dung lượng kênh dựa vào ErlangB. Chương trình mô phỏng giúp chúng ta có cái nhìn tổng quan và thực tế hơn trong quá trình tính toán quy hoạch mạng W-CDMA KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI Ở Việt Nam, các hệ thống thông tin di động thế hệ thứ ba cũng đã được nhanh chóng triển khai. Đối với các nhà khai thác mạng di động thì cái đích là triển khai nhanh và hiệu quả các hệ thống thông tin di động CDMA băng rộng (WCDMA) theo chuẩn IMT-2000. Xuất phát từ định hướng này, em đã thực hiện đề tài “QUY HOẠCH VÀ TỐI ƯU MẠNG WCDMA”. Thành công của đề tài Đã giới thiệu tổng quan về sự phát triển mạng di động WCDMA Tìm hiểu tổng quan về phần cứng của mạng WCDMA Tìm hiểu về đường truyền dẫn vô tuyến, về phương pháp trải phổ, các kênh vô tuyến, các kiểu lập lịch gói trong WCDMA Tìm hiểu về các thuật toán tối ưu, thông qua việc tối ưu bằng thuật toán dự báo lưu lượng và công nghệ tăng dung lượng vùng phủ bằng phương pháp phân tập dàn anten thích ứng. Phân tích được những yêu cầu và nguyên tắc thực hiện quy hoạch mạng WCDMA ứng với đặc trưng, cấu trúc địa lý từng vùng cụ thể, đưa ra các công thức tính toán dung lượng, vùng phủ và đánh giá chất lượng dịch vụ với 2 mô thực nghiệm cụ thể Hata-Okumura và Walfisch-Ikegami. Thành công lớn nhất của đề tài đã thiết kế được phần mềm mô phỏng tính được suy hao đường truyền, phần mềm tính kích thước cell, phần mềm mô phỏng tính dung lượng kênh. Hạn chế của đề tài - Trong phần tối ưu mạng, việc tăng dung lượng mạng bằng phương pháp phân tập dàn anten thích ứng chỉ đưa ra trên cơ sở lý thuyết, chưa tính toán cụ thể chi tiết. - Hạn chế lớn nhất của đề tài đó là ứng dụng cho bài toán cụ thể, ngoài việc lấy một số tham số của nhà cung cấp thiết bị, một phần lớn các tham số khác còn lấy theo các giá trị điển . Điều này dẫn đến kết quả thiết kế dừng ở mức định cỡ mạng sơ bộ. - Ngoài ra, việc tính toán sử dụng mô Walfisch-Ikegami chưa tính đến các tổn hao do lá cây và chưa xét cho môi trường trong nhà (indoor) và kết quả chưa tính cho dịch vụ truyền dữ liệu. Hướng phát triển của đề tài Trong thực tế việc triển khai một hệ thống thông tin luôn cần có thêm bước chạy thử, hiệu chỉnh dựa trên các kết quả đo đạc thực tế. Trong thời gian tới, em sẽ tiếp tục nghiên cứu, tìm hiểu tiếp những hạn chế trên từ đó tìm ra cách khắc phục tối ưu nhất để nâng cao chất lượng dịch vụ mạng . TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt: [1]. Vũ Ngọc Phàn (2004), Tối ưu hoá cơ sở lý thuyết và ứng dụng trong công nghệ bưu chính viễn thông, Nhà xuất bản Bưu Điện Hà Nội. [2]. Vũ Đức Thọ (2003), Tính toán mạng thông tin di động số cellular, Nhà xuất bản Giáo Dục Hà Nội. [3]. Đỗ Quốc Trinh, Vũ Thanh Hải (2006), Kỹ thuật trải phổ và ứng dụng, Nhà xuất bản Học viện kỹ thuật quân sự Hà Nội. [4]. Trần Anh Tấn (2005), Tối ưu mạng GSM , Nhà xuất bản Học viện kỹ thuật quân sự Hà Nội. [5]. Ks. Nguyễn Văn Thuận (2004), Hệ thống thông tin di đông W-CDMA, Nhà xuất bản Học viện công nghệ bưu chính viễn thông Hà Nội. [6]. TS. Nguyễn Xuân Vinh (2005), Quy hoạch phát triển mạng viễn thông, Nhà xuất bản Khoa Học Và Kỹ Thuật Hà Nội. Tài liệu tiếng Anh: [7]. Jaana Laiho and Achim Wacker (2006) Radio network planning and optimisation for umts, John Wiley and Sons, LTD. [8]. McGraw Hill (2002), W-CDMA AND CDMA 2000, M.R. Karim and Lucent Technologies. PHỤ LỤC PHẦN MÔ PHỎNG 1. Phần giao diện chính Private Sub Command1_Click() frmKientrucmang.Show End Sub Private Sub Command2_Click() frmLoss.Show End Sub Private Sub Command3_Click() frmMofCell.Show End Sub Private Sub Command4_Click() frmCap.Show End Sub 2.Phần tính suy hao đường truyền Option Explicit Private Sub sbfor_Click(Index As Integer) On Error Resume Next Dim i As Integer Select Case Index Case 0 Unload Me frmMofCell.Show frmchinh.Enabled = False Case 1 Unload Me frmchinh.Enabled = True Case 2 Unload Me frmchinh.Enabled = True Case 3 For i = 0 To 13 tsnhapsh(i) = Val(txtloss(i).Text) Next EIRP = tsnhapsh(0) - tsnhapsh(1) mdtapam = tsnhapsh(2) + tsnhapsh(3) cstapam = mdtapam + 10 * Lg10(tsnhapsh(6) * 1000000) tongnhieugt = cstapam + tsnhapsh(7) doloixuli = 10 * Lg10(tsnhapsh(6) * 1000 / tsnhapsh(9)) donhay = cstapam - doloixuli - tsnhapsh(7) + tsnhapsh(8) + tsnhapsh(3) suyhaochophep = tsnhapsh(4) - tsnhapsh(5) - tsnhapsh(12) - tsnhapsh(10) + tsnhapsh(11) + EIRP - donhay - tsnhapsh(13) lblLossRes(0).Caption = Format(EIRP, "0.######") + " dB" lblLossRes(1).Caption = Format(mdtapam, "0.######") + " dB/Hz" lblLossRes(2).Caption = Format(cstapam, "0.######") + " dBm" lblLossRes(3).Caption = Format(doloixuli, "0.#####") + " dB" lblLossRes(4).Caption = Format(donhay, "0.######") + " dBm" lblLossRes(5).Caption = Format(suyhaochophep, "0.######") + " dBm" lblLossRes(6).Caption = Format(tongnhieugt, "0.######") + " dBm" lstBitRate.AddItem txtloss(9).Text + " KBps" lstLoss.AddItem lblLossRes(5).Caption Case 4 txtloss(0).Text = "21" txtloss(1).Text = "3" txtloss(2).Text = "-174" txtloss(3).Text = "5" txtloss(4).Text = "14" txtloss(5).Text = "2" txtloss(6).Text = "3.84" txtloss(7).Text = "3" txtloss(8).Text = "5" txtloss(9).Text = "12.2" txtloss(10).Text = "9" txtloss(11).Text = "4" txtloss(12).Text = "8" lblLossRes(0).Caption = "" lblLossRes(1).Caption = "" lblLossRes(2).Caption = "" lblLossRes(3).Caption = "" lblLossRes(4).Caption = "" lblLossRes(5).Caption = "" lstBitRate.Clear lstLoss.Clear Case 5 txtloss(0).SetFocus txtloss(0).Text = "" txtloss(1).Text = "" txtloss(2).Text = "" txtloss(3).Text = "" txtloss(4).Text = "" txtloss(5).Text = "" txtloss(6).Text = "" txtloss(7).Text = "" txtloss(8).Text = "" txtloss(9).Text = "" txtloss(10).Text = "" txtloss(11).Text = "" txtloss(12).Text = "" lblLossRes(0).Caption = "" lblLossRes(1).Caption = "" lblLossRes(2).Caption = "" lblLossRes(3).Caption = "" lblLossRes(4).Caption = "" lblLossRes(5).Caption = "" lstBitRate.Clear lstLoss.Clear End Select End Sub Private Sub tmCheckInput_Timer() If (txtloss(0).Text = "" Or txtloss(1).Text = "" Or txtloss(2).Text = "" _ Or txtloss(3).Text = "" Or txtloss(4).Text = "" Or txtloss(5).Text = "" _ Or txtloss(6).Text = "" Or txtloss(6).Text = "" Or txtloss(7).Text = "" _ Or txtloss(8).Text = "") Then sbfor(3).Enabled = False Else sbfor(3).Enabled = True End If End Sub Private Sub txtLoss_KeyPress(Index As Integer, KeyAscii As Integer) Dim found As Integer Select Case KeyAscii Case vbKeyBack, vbKeyRight, vbKeyLeft 'do nothing Case Asc("0") To Asc("9") 'do nothing Case Asc("-") If txtloss(Index).Text "" Then Beep KeyAscii = 0 End If Case Asc(".") If txtloss(Index).Text "" Then found = InStr(1, txtloss(Index).Text, ".", vbTextCompare) If found 0 Then Beep KeyAscii = 0 End If End If Case Else Beep KeyAscii = 0 End Select End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) frmchinh.Enabled = True End Sub 3.Phần tính dung lượng Option Explicit Private Sub cmdReport_Click() Me.Hide frmchinh.Enabled = False frmReport.Show End Sub Private Sub cmd1_Click() dlccdl = Val(txtdlcc(1).Text) hssdtkdl = dlccdl * 100 / sokenhdlen lblResultl(2).Caption = Format(hssdtkdl, "0.#") + "%" kgcdl = (tsnhapcap(4) + 1) * sokenhdlen kgcdl = Round(kgcdl) lblResultl(3).Caption = Format(kgcdl, "0.") MsgBox "Tra bang Erlang tu so kenh gop chung sau do nhap vao o 'dung luong chung' roi bam nut '>>' de tinh tiep!" End Sub Private Sub cmd2_Click() dlcdl = Val(txtdlc(1).Text) dlcmdl = dlcdl / (1 + tsnhapcap(4)) lblResultl(5).Caption = Format(dlcmdl, "0.####") dlmdl = ((dlcmdl / dlccdl) - 1) * 100 lblResultl(6).Caption = Format(dlmdl, "0.##") + "%" stbpvdl = dlcmdl / dungluongMS lblResultl(7).Caption = Format(stbpvdl, "0.") End Sub Private Sub cmd3_Click() dlccdx = Val(txtdlcc(0).Text) hssdtkdx = dlccdx * 100 / sokenhdxuong lblResultx(2).Caption = Format(hssdtkdx, "0.#") + "%" kgcdx = (tsnhapcap(4) + 1) * sokenhdxuong kgcdx = Round(kgcdx) lblResultx(3).Caption = Format(kgcdx, "0.") MsgBox "Tra bang Erlang tu so kenh gop chung sau do nhap vao o 'dung luong chung' roi bam nut '>>' de tinh tiep!" End Sub Private Sub cmd4_Click() dlcdx = Val(txtdlc(0).Text) dlcmdx = dlcdx / (1 + tsnhapcap(4)) lblResultx(5).Caption = Format(dlcmdx, "0.####") dlmdx = ((dlcmdx / dlccdx) - 1) * 100 lblResultx(6).Caption = Format(dlmdx, "0.##") + "%" stbpvdx = dlcmdx / dungluongMS lblResultx(7).Caption = Format(stbpvdx, "0.") End Sub Private Sub cmderl_Click() frmerlang.Show End Sub Private Sub cmderlangB_Click() TinhErlangB.Show End Sub Private Sub Form_Load() Dim i As Integer Dim j As Integer txtData(0).Text = "0.02" txtData(1).Text = "1" txtData(2).Text = "210" If tsnhapsh(7) = 0 Then txtData(3).Text = "50" Else hesotai = (1 - (1 / 10 ^ (tsnhapsh(7) / 10))) * 100 txtData(3).Text = Format(hesotai, "0.#") End If txtData(4).Text = "0.55" txtData(5).Text = "0.67" If tsnhapsh(8) = 0 Then txtData(6).Text = "4" Else txtData(6).Text = Format(tsnhapsh(8), "0.##") End If txtData(7).Text = "0.4" If tsnhapsh(6) = 0 Then txtData(8).Text = "3.84" Else txtData(8).Text = Format(tsnhapsh(6), "0.##") End If If tsnhapsh(9) = 0 Then txtData(9).Text = "12.2" Else txtData(9).Text = Format(tsnhapsh(9), "0.##") End If lblResultkq.Caption = "" lblResultl(0).Caption = "" lblResultx(0).Caption = "" For i = 2 To 3 lblResultl(i).Caption = "" lblResultx(i).Caption = "" Next For i = 5 To 7 lblResultl(i).Caption = "" lblResultx(i).Caption = "" Next i End Sub Private Sub sbfor_Click(Index As Integer) Dim i As Integer For i = 0 To 9 tsnhapcap(i) = Val(txtData(i).Text) Next On Error Resume Next Select Case Index Case 0 Unload Me frmchinh.Enabled = False frmBTS.Show Case 1 Unload Me frmchinh.Enabled = False frmMofCell.Show Case 2 Unload Me frmchinh.Enabled = True Case 3 dungluongMS = tsnhapcap(1) * tsnhapcap(2) / 3600 lblResultkq.Caption = Format(dungluongMS, "0.####") + " Erlang" sokenhdlen = tsnhapcap(3) * (tsnhapcap(9) / tsnhapcap(8)) / ((1 + tsnhapcap(4)) * (10 ^ ((tsnhapcap(6)) / 10)) * tsnhapcap(5)) sokenhdlen = Round(sokenhdlen) lblResultl(0).Caption = Format(sokenhdlen, "0.") sokenhdxuong = tsnhapcap(3) * (tsnhapcap(9) / tsnhapcap(8)) / ((1 - tsnhapcap(7) + tsnhapcap(4)) * (10 ^ ((tsnhapcap(6)) / 10)) * tsnhapcap(5)) sokenhdxuong = Round(sokenhdxuong) lblResultx(0).Caption = Format(sokenhdxuong, "0.") txtdlcc(1).SetFocus MsgBox "Tra bang Erlang tu so kenh trung binh sau do nhap vao o 'dung luong chan cung' roi bam nut '>>' de tinh tiep!" txtdlcc(1).SetFocus Case 4 txtData(0).Text = "0.02" txtData(1).Text = "1" txtData(2).Text = "210" txtData(3).Text = "50" txtData(4).Text = "0.55" txtData(5).Text = "0.67" txtData(6).Text = "4" txtData(7).Text = "0.4" txtData(8).Text = "3.84" txtData(9).Text = "12.2" lblResultl(0).Caption = "" lblResultx(0).Caption = "" lblResultkq.Caption = "" For i = 0 To 1 txtdlcc(i).Text = "" txtdlc(i).Text = "" Next i For i = 2 To 3 lblResultl(i).Caption = "" lblResultx(i).Caption = "" Next For i = 5 To 7 lblResultl(i).Caption = "" lblResultx(i).Caption = "" Next i Case 5 For i = 0 To 9 txtData(i).Text = "" Next i For i = 0 To 1 txtdlcc(i).Text = "" txtdlc(i).Text = "" Next i lblResultkq.Caption = "" lblResultl(0).Caption = "" lblResultx(0).Caption = "" For i = 2 To 3 lblResultl(i).Caption = "" lblResultx(i).Caption = "" Next For i = 5 To 7 lblResultl(i).Caption = "" lblResultx(i).Caption = "" Next i End Select End Sub Private Sub Timer1_Timer() If txtdlcc(1).Text = "" Then cmd1.Enabled = False Else cmd1.Enabled = True End If End Sub Private Sub Timer2_Timer() If txtdlcc(0).Text = "" Then cmd3.Enabled = False Else cmd3.Enabled = True End If End Sub Private Sub Timer3_Timer() If txtdlc(1).Text = "" Then cmd2.Enabled = False Else cmd2.Enabled = True End If End Sub Private Sub Timer4_Timer() If txtdlc(0).Text = "" Then cmd4.Enabled = False Else cmd4.Enabled = True End If End Sub Private Sub timerCheck_Timer() Dim i As Integer If txtData(0).Text = "" Or txtData(1).Text = "" Or _ txtData(2).Text = "" Or txtData(3).Text = "" Or _ txtData(4).Text = "" Or txtData(4).Text = "" Or _ txtData(5).Text = "" Or txtData(6).Text = "" Or _ txtData(7).Text = "" Or txtData(8).Text = "" Or _ txtData(9).Text = "" Then sbfor(3).Enabled = False Else sbfor(3).Enabled = True End If End Sub Private Sub txtData_KeyPress(Index As Integer, KeyAscii As Integer) Dim found As Integer Select Case KeyAscii Case vbKeyBack, vbKeyRight, vbKeyLeft 'do nothing Case Asc("0") To Asc("9") 'do nothing Case Asc("-") If txtData(Index).Text "" Then Beep KeyAscii = 0 End If Case Asc(".") If txtData(Index).Text "" Then found = InStr(1, txtData(Index).Text, ".", vbTextCompare) If found 0 Then Beep KeyAscii = 0 End If End If Case Else Beep KeyAscii = 0 End Select End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) frmchinh.Enabled = True End Sub Private Sub txtdlc_KeyPress(Index As Integer, KeyAscii As Integer) Dim found As Integer Select Case KeyAscii Case vbKeyBack, vbKeyRight, vbKeyLeft 'do nothing Case Asc("0") To Asc("9") 'do nothing Case Asc("-") Case Asc(".") Case Else Beep KeyAscii = 0 End Select End Sub Private Sub txtdlcc_KeyPress(Index As Integer, KeyAscii As Integer) Dim found As Integer Select Case KeyAscii Case vbKeyBack, vbKeyRight, vbKeyLeft 'do nothing Case Asc("0") To Asc("9") 'do nothing Case Asc("-") Case Asc(".") Case Else Beep KeyAscii = 0 End Select End Sub 4. Phần tính kíck thước cell Private Sub optHata_Click() cboKieuvungHata.Visible = True cboKieuvungWalf.Visible = False End Sub Private Sub optWalf_Click() cboKieuvungHata.Visible = False cboKieuvungWalf.Visible = True End Sub Private Sub sbfor_Click(Index As Integer) On Error Resume Next Dim i As Byte For i = 0 To 7 tsnhapkt(i) = Val(txtCell(i).Text) Next i Select Case Index Case 0 Unload Me frmMain.Enabled = False frmCap.Show Case 1 Unload Me frmMain.Enabled = False frmLoss.Show Case 2 Unload Me frmMain.Enabled = True Case 3 If optHata.Value = True Then Select Case cboKieuvungHata.ListIndex Case 0: lstvt.AddItem lblvt(0).Caption If tanso > 400 Then HesoHieuchinh = (3.2 * ((Lg10(11.75 * tsnhapkt(3))) ^ 2) - 4.97) Else HesoHieuchinh = (8.28 * ((Lg10(1.54 * tsnhapkt(3))) ^ 2) - 1.1) End If RofCell = (tsnhapkt(0) - 69.55 - 26.16 * Lg10(tsnhapkt(1)) + 13.82 * Lg10(tsnhapkt(2)) + HesoHieuchinh) / (44.9 - 6.55 * Lg10(tsnhapkt(2))) Case 1: lstvt.AddItem lblvt(1).Caption HesoHieuchinh = tsnhapkt(3) * (1.1 * Lg10(tsnhapkt(1)) - 0.7) - 1.56 * Lg10(tsnhapkt(1)) + 0.8 RofCell = (tsnhapkt(0) - 69.55 - 26.16 * Lg10(tsnhapkt(1)) + 13.82 * Lg10(tsnhapkt(2)) + HesoHieuchinh) / (44.9 - 6.55 * Lg10(tsnhapkt(2))) Case 2: lstvt.AddItem lblvt(2).Caption HesoHieuchinh = tsnhapkt(3) * (1.1 * Lg10(tsnhapkt(1)) - 0.7) - 1.56 * Lg10(tsnhapkt(1)) + 0.8 RofCell = (tsnhapkt(0) - 69.55 - 26.16 * Lg10(tsnhapkt(1)) + 13.82 * Lg10(tsnhapkt(2)) + HesoHieuchinh + 2 * ((Lg10(tsnhapkt(1) / 28)) ^ 2) + 5.4) / (44.9 - 6.55 * Lg10(tsnhapkt(2))) Case 3: lstvt.AddItem lblvt(3).Caption HesoHieuchinh = tsnhapkt(3) * (1.1 * Lg10(tsnhapkt(1)) - 0.7) - 1.56 * Lg10(tsnhapkt(1)) + 0.8 'bankinho = (suyhaochophep - 69.55 - 26.16 * Lg10(tanso) + 13.82 * Lg10(docaoBS) + hesohieuchinh + 8) / (44.9 - 6.55 * Lg10(docaoBS)) RofCell = (tsnhapkt(0) - 69.55 - 26.16 * Lg10(tsnhapkt(1)) + 13.82 * Lg10(tsnhapkt(2)) + HesoHieuchinh + (4.78 * (Lg10(tsnhapkt(1))) ^ 2) - 19.33 * Lg10(tsnhapkt(1)) + 40.49) / (44.9 - 6.55 * Lg10(tsnhapkt(2))) End Select Kichthuoc = 10 ^ RofCell lblRcell.Caption = Format(Kichthuoc, "0.######") + " km" DientichCell = 2.6 * Kichthuoc ^ 2 lbldientich.Caption = Format(DientichCell, "0.######") + " km2" lstR.AddItem lblRcell.Caption lstdt.AddItem lbldientich.Caption lstsh.AddItem Format(tsnhapkt(0), "0.######") + " dB" lstmh.AddItem optHata.Caption End If If optWalf.Value = True Then Select Case cboKieuvungWalf.ListIndex Case 0: lstvt.AddItem lblvt(0).Caption If (tsnhapkt(5) >= 0) And (tsnhapkt(5) tsnhapkt(4)) Then Lo = -9.646 Lbsh = (-18 * Lg10(1 + (tsnhapkt(2) - tsnhapkt(4)))) Ka = 54 Kd = (18 - 15 * (tsnhapkt(2) - tsnhapkt(4)) / (tsnhapkt(4) - tsnhapkt(3))) End If If (tsnhapkt(5) >= 35) And (tsnhapkt(5) tsnhapkt(4)) Then Lo = (2.5 + 0.075 * (tsnhapkt(5) - 35)) Lbsh = (-18 * Lg10(1 + (tsnhapkt(2) - tsnhapkt(4)))) Ka = 54 Kd = 18 End If If (tsnhapkt(5) >= 55) And (tsnhapkt(5) tsnhapkt(4)) Then Lo = (4 - 0.114 * (tsnhapkt(5) - 55)) Lbsh = (-18 * Lg10(1 + (tsnhapkt(2) - tsnhapkt(4)))) Ka = 54 Kd = 18 End If If (tsnhapkt(5) >= 0) And (tsnhapkt(5) <= 35) And (tsnhapkt(2) <= tsnhapkt(4)) Then Lo = -9.646 Lbsh = 0 Ka = (54 - 0.8 * tsnhapkt(2)) Kd = (18 - 15 * (tsnhapkt(2) - tsnhapkt(4)) / (tsnhapkt(4) - tsnhapkt(3))) End If If (tsnhapkt(5) >= 35) And (tsnhapkt(5) <= 55) And (tsnhapkt(2) <= tsnhapkt(4)) Then Lo = (2.5 + 0.075 * (tsnhapkt(5) - 35)) Lbsh = 0 Ka = (54 - 0.8 * tsnhapkt(2)) Kd = (18 - 15 * (tsnhapkt(2) - tsnhapkt(4)) / (tsnhapkt(4) - tsnhapkt(3))) End If If (tsnhapkt(5) >= 55) And (tsnhapkt(5) <= 90) And (tsnhapkt(2) <= tsnhapkt(4)) Then Lo = (4 - 0.114 * (tsnhapkt(5) - 55)) Lbsh = 0 Ka = (54 - 0.8 * tsnhapkt(2)) Kd = (18 - 15 * (tsnhapkt(2) - tsnhapkt(4)) / (tsnhapkt(4) - tsnhapkt(3))) End If Kf = (4 + 1.5 * tsnhapkt(1) / 925 - 1.5) Lp = (Lo + 10 * Lg10(tsnhapkt(1)) - 10 * Lg10(tsnhapkt(7)) - 16.9 + 20 * Lg10(tsnhapkt(4) - tsnhapkt(3))) Lf = 32.4 + 20 * Lg10(tsnhapkt(1)) Lvc = (Lbsh + Ka + Kf * Lg10(tsnhapkt(1)) - 9 * Lg10(tsnhapkt(6))) RofCell = (tsnhapkt(0) - Lf - Lvc - Lp) / (20 + Kd) Case 1: lstvt.AddItem lblvt(4).Caption If (tsnhapkt(5) >= 0) And (tsnhapkt(5) tsnhapkt(4)) Then Lo = -9.646 Lbsh = (-18 * Lg10(1 + (tsnhapkt(2) - tsnhapkt(4)))) Ka = 54 Kd = (18 - 15 * (tsnhapkt(2) - tsnhapkt(4)) / (tsnhapkt(4) - tsnhapkt(3))) End If If (tsnhapkt(5) >= 35) And (tsnhapkt(5) tsnhapkt(4)) Then Lo = (2.5 + 0.075 * (tsnhapkt(5) - 35)) Lbsh = (-18 * Lg10(1 + (tsnhapkt(2) - tsnhapkt(4)))) Ka = 54 Kd = 18 End If If (tsnhapkt(5) >= 55) And (tsnhapkt(5) tsnhapkt(4)) Then Lo = (4 - 0.114 * (tsnhapkt(5) - 55)) Lbsh = (-18 * Lg10(1 + (tsnhapkt(2) - tsnhapkt(4)))) Ka = 54 Kd = 18 End If If (tsnhapkt(5) >= 0) And (tsnhapkt(5) <= 35) And (tsnhapkt(2) <= tsnhapkt(4)) Then Lo = -9.646 Lbsh = 0 Ka = (54 - 0.8 * tsnhapkt(2)) Kd = (18 - 15 * (tsnhapkt(2) - tsnhapkt(4)) / (tsnhapkt(4) - tsnhapkt(3))) End If If (tsnhapkt(5) >= 35) And (tsnhapkt(5) <= 55) And (tsnhapkt(2) <= tsnhapkt(4)) Then Lo = (2.5 + 0.075 * (tsnhapkt(5) - 35)) Lbsh = 0 Ka = (54 - 0.8 * tsnhapkt(2)) Kd = (18 - 15 * (tsnhapkt(2) - tsnhapkt(4)) / (tsnhapkt(4) - tsnhapkt(3))) End If If (tsnhapkt(5) >= 55) And (tsnhapkt(5) <= 90) And (tsnhapkt(2) <= tsnhapkt(4)) Then Lo = (4 - 0.114 * (tsnhapkt(5) - 55)) Lbsh = 0 Ka = (54 - 0.8 * tsnhapkt(2)) Kd = (18 - 15 * (tsnhapkt(2) - tsnhapkt(4)) / (tsnhapkt(4) - tsnhapkt(3))) End If Kf = (4 + 0.7 * tsnhapkt(1) / 925 - 1.5) Lp = (Lo + 10 * Lg10(tsnhapkt(1)) - 10 * Lg10(tsnhapkt(7)) - 16.9 + 20 * Lg10(tsnhapkt(4) - tsnhapkt(3))) Lf = 32.4 + 20 * Lg10(tsnhapkt(1)) Lvc = (Lbsh + Ka + Kf * Lg10(tsnhapkt(1)) - 9 * Lg10(tsnhapkt(6))) RofCell = (tsnhapkt(0) - Lf - Lvc - Lp) / (20 + Kd) End Select Kichthuoc = 10 ^ RofCell lblRcell.Caption = Format(Kichthuoc, "0.######") + " km" DientichCell = 2.6 * Kichthuoc ^ 2 lbldientich.Caption = Format(DientichCell, "0.######") + " km2" lstR.AddItem lblRcell.Caption lstdt.AddItem lbldientich.Caption lstsh.AddItem Format(tsnhapkt(0), "0.######") + " dB" lstmh.AddItem optWalf.Caption End If Case 4 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(7).Text = "20" lstsh.Clear lstmh.Clear lstR.Clear lstdt.Clear lstvt.Clear If suyhaochophep = 0 Then txtCell(0).Text = "" Else txtCell(0).Text = Format(suyhaochophep, "0.######") End If txtCell(0).SetFocus Case 5 txtCell(0).Text = "" txtCell(1).Text = "" txtCell(2).Text = "" txtCell(3).Text = "" txtCell(4).Text = "" txtCell(6).Text = "" txtCell(5).Text = "" txtCell(7).Text = "" lblRcell.Caption = "" lbldientich.Caption = "" txtCell(0).SetFocus lstsh.Clear lstmh.Clear lstR.Clear lstdt.Clear lstvt.Clear End Select End Sub Private Sub tmCheckInput_Timer() If (txtCell(0).Text = "" Or txtCell(1).Text = "" _ Or txtCell(2).Text = "" _ Or txtCell(3).Text = "" _ Or txtCell(4).Text = "" _ Or txtCell(6).Text = "" _ Or txtCell(5).Text = "") Then sbfor(3).Enabled = False Else sbfor(3).Enabled = True End If End Sub Private Sub Form_Load() txtCell(1).Text = "880" txtCell(2).Text = "30" txtCell(3).Text = "1.5" txtCell(4).Text = "30" txtCell(6).Text = "30" txtCell(5).Text = "90" txtCell(7).Text = "15" lblRcell.Caption = "" lbldientich.Caption = "" frmchinh.Enabled = False If suyhaochophep = 0 Then txtCell(0).Text = "" Else txtCell(0).Text = Format(suyhaochophep, "0.######") End If optHata.Value = True cboKieuvungHata.ListIndex = 0 cboKieuvungWalf.ListIndex = 0 End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) frmchinh.Enabled = True End Sub Private Sub txtCell_KeyPress(Index As Integer, KeyAscii As Integer) Dim found As Integer Select Case KeyAscii Case vbKeyBack, vbKeyRight, vbKeyLeft 'do nothing Case Asc("0") To Asc("9") 'do nothing Case Asc("-") If txtCell(Index).Text "" Then Beep KeyAscii = 0 End If Case Asc(".") If txtCell(Index).Text "" Then found = InStr(1, txtCell(Index).Text, ".", vbTextCompare) If found 0 Then Beep KeyAscii = 0 End If End If Case Else Beep KeyAscii = 1 End Select End Sub

Các file đính kèm theo tài liệu này:

  • docVuong1.doc