TỔNG QUAN HỆ THỐNG THÔNG TIN DI ĐỘNG LTE. CÁC KỸ THUẬT LẬP LỊCH TRONG MẠNG 4G LTE. KỸ THUẬT LẬP LỊCH TRONG LTE. PHÂN TÍCH VÀ ĐÁNH GIÁ KẾT QUẢ MÔ PHỎNG, TỪ ĐÓ NÊU CÁC ƯU VÀ NHƯỢC ĐIỂM CỦA TỪNG THUẬT TOÁN LẬP LỊCH. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA LUẬN VĂN
1 LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu riêng Các số liệu nêu luận văn trung thực kết luận văn chưa công bố công trình khác Tác giả luận văn MỤC LỤC Trang TRANG PHỤ BÌA LỜI CAM ĐOAN MỤC LỤC .2 DANH MỤC CÁC CHỮ VIẾT TẮT .3 DANH MỤC CÁC BẢNG .5 DANH MỤC CÁC HÌNH .6 MỞ ĐẦU TỔNG QUAN HỆ THỐNG THÔNG TIN DI ĐỘNG LTE CÁC KỸ THUẬT LẬP LỊCH 28 KỸ THUẬT LẬP LỊCH TRONG LTE .40 PHÂN TÍCH VÀ ĐÁNH GIÁ KẾT QUẢ MÔ PHỎNG .55 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 76 TÀI LIỆU THAM KHẢO 80 PHỤ LỤC 82 DANH MỤC CÁC CHỮ VIẾT TẮT Từ viết tắt Tiếng Anh Tiếng Việt rk 2G Second Generation Mobile Communication Netw Mạng thông tin di động hệ thứ hai 3G Third Generation Mobile Communication Network Mạng thông tin di động hệ thứ ba 3GPP Third Generation Partnership Project Dự án hợp tác hệ thứ ba 4G AMC tin di động hệ thứ tư Fourth Generation Mobile Communication Network Mạng thôn Adaptive Modulation and Coding Mã hóa điều chế đáp ứng ARQ Automatic Repeat Request Giao thức tự động truyền lại BER Bit Error Rate Tỉ lệ lỗi bít BLER Block Error Rate Tỉ lệ lỗi khối BS Base Station Trạm gốc CB Code Block Khối mã hóa CP Cyclic Prefix Tiền tố tuần hoàn CRC Cyclic Redundancy Check Kỹ thuật kiểm tra phát lỗi bít CRC CSI Channel State Information Thông tin trạng thái kênh truyền CQI Channel Quality Information Thông tin chất lượng kênh truyền DFT Discrete Fourier Transform Phép biến đổi Fourier rời rạc DL Downlink Đường xuống eNodeB enhanced Node B NodeB nâng cao EPS Evolved Packet System Hệ thống chuyển mạch gói phát triển E_UTRAN Evolved UTRAN FFT Fast Four Hệ thống UTRAN phát triển er Transform Phép biến đổi Fourier nhanh FDD Frequency Division Duplex Ghép phân tần số FDMA Frequency Division Multiple Access Đa truy nhập phân tần số GSM Global System for Mobile Communication HARQ Hybrid Automatic Thông tin di động hệ thứ hai epeat Request Giao thức tự động truyền lại ghép lai HSDPA High Speed Downlink Packet Access Truy cập gói tốc độ cao đường xuống HSPA High Speed Packet Access Truy cập gói tốc độ cao HSUPA High Speed Uplink Packet Access Truy cập gói tốc độ cao đường lên HSPA+ An Evolution of HSPA Truy cập gói tốc độ cao cải tiến IDFT Inverse Discrete Fourier Transform Phép biến đổi Fourier rời rạc ngược IFFT Inverse Fast Fourier Transform Phép biến đổi Fourier nhanh ngược IP Internet Protocol Giao thức Internet IS Inter-Symbol Interference Xuyên nhiễu symbol LTE Long Term Evolution Cải tiến dài hạn MAC Medium Access Control Lớp điều khiển truy cập Max TP Max Throughput Kỹ thuât tối đa hóa thông lượng MCS Modulation and Coding Scheme Kỹ thuật mã hóa điều chế MIMO Multiple Input Multiple Output Kỹ thuật anten đa thu đa phát PF Proportional Fair Thuật toán công tương xứng PRB Physical Resource Block Khối tài nguyên vật lý OFDM Orthogonal Frequency Division Multiplexing Ghép kênh phân tần số trực giao OFDMA Orthogonal Frequency Division Multiple Access Đa truy cập phân chia tần số trực giao DANH MỤC CÁC BẢNG Số hiệu bảng Tên bảng 1.1 Thông số RB vật lý Trang 17 1.2 Dung lượng hệ thống LTE sử dụng SISO 22 2.1 So sánh thuật toán lập lịch 37 4.1 Các thông số mô thuật toán lập lịch 61 4.2 66 4.3 Thông lượng BLER UE dùng Round Robin Thông lượng UE sử dụng Best CQI 4.4 Thông lượng UE sử dụng Max TP 69 4.5 Thông lượng UE sử dụng Maxmin 71 4.6 Thông lượng UE sử dụng PF 72 68 DANH MỤC CÁC HÌNH Số hiệu hình Tên hình Trang 1.1 Kiến trúc phân lớp LTE 1.2 Kiến trúc phân lớp giao diện vô tuyến LTE phần điều khiển 1.3 Kiến trúc phân lớp giao diện vô tuyến LTE phần người dùng 1.4 Chức lớp MAC 1.5 Phân lớp kênh truyền 1.6 Kênh truyền đường xuống 10 1.7 Kênh truyền đường lên 11 1.8 Phổ đa sóng mang 12 1.9 Tín hiệu OFDM miền thời gian tần số 13 1.10 Subcarrier băng thông 14 1.11 Cấu trúc khung đường lên đường xuống 15 1.12 Cấu trúc khung TDD 15 1.13 Cấu trúc khung TDD 15 1.14 Khối tài nguyên RB 16 1.15 Phân bố liệu tín hiệu tham chiếu 18 1.16 Quá trình xử lý đường xuống 20 1.17 Kỹ thuật xử lý đường xuống 21 2.1 Thuật toán lập lịch Round Robin 30 2.2 Thuật toán lập lịch Best CQI 31 2.3 CQI tài nguyên cấp phát cho UE 32 2.4 Thuật toán lập lịch PF 34 2.5 Weighted Fair Queuing (WFQ) 35 3.1 Đáp ứng kênh truyền 41 3.2 Giao diện lập lịch MAC 42 3.3 Thuật toán lập lịch Round Robin LTE 46 3.4 Thuật toán Best CQI LTE 47 3.5 Thuật toán lập lịch PF LTE 48 4.1 Mối quan hệ SNR, BLER CQI 56 4.2 Mô hình ánh xạ SNR CQI 56 4.3 Ước lượng CQI sử dụng MIESM 57 4.4 Mô hình ánh xạ CQI R 58 4.5 Thuật toán chương trình 60 4.6 Thông lượng cell BLER ứng với 15 UE 30 UE 62 4.7 Thông lượng cell BLER ứng với 60 UE 120 UE 62 4.8 Thông lượng cell BLER ứng với 15 UE 30 UE 63 4.9 Thông lượng cell BLER ứng với 60 UE 120 UE 63 4.10 Thông lượng cell BLER ứng với 15 UE 30 UE 63 4.11 Thông lượng cell BLER ứng với 60 UE 120 UE 64 MỞ ĐẦU Tính cấp thiết đề tài Công nghệ thông tin di động băng rộng trở thành thuật ngữ quen thuộc người Việt Nam nói riêng giới nói chung Sau mạn g 3G triển khai, việc sử dụng internet băng rộng, dịch vụ nghe nhìn trực tuyến qua thiết bị di động đem lại nhiều tiện ích, tiện lợi cho người dùng, góp phần nâng cao chất lượng sống Công nghệ LTE đời cải tiến chuẩn thông tin di động WCDMA/HSPA, vốn nâng cấp từ chuẩn thông tin di động GSM truyền thống, đưa mạng di động trở thành mạng hội tụ IP hoàn toàn, nâng khả truy cập liệu với tốc độ lên đến hàng trăm Mb/s, hứa hẹn đem lại cho người dùng mạng băng rộng thực lúc nơi Công nghệ LTE, phát triển tảng IP hoàn toàn, phục vụ cho dịch vụ VOIP, video, streaming, internet băng rộng Khi lớp truy nhập LTE có nhiệm vụ đảm bảo kiểm soát chất lượng dich vụ QOS, nhằm phân bổ tài nguyên hợp lý tối ưu cho người dùng, với khả truy cập dịch vụ với độ trễ thấp nhất, băng thông rộng Bộ lập lịch sử dụng lớp MAC giao diện vô tuyến thành phần quan trọng thực chức này, kỹ thuật lập lịch thành phần cốt lõi Kỹ thuật lập lịch phát triển nhiều mạng Internet FIFO, Round Robin, Maxmin, Best CQI, Max Throughput, PF… Khi ứng dụng vào mạng di động băng rộng có nhiều điểm khác biệt, ảnh hưởng thông số SNR, phân bố Anten, phân bố eNodeB, khoảng cách UE đến NodeB Vì thế, luận văn chọn hướng nghiên cứu kỹ thuật lập lịch hệ thống thông tin di động LTE lớp MAC giao diện vô tuyến, nhằm so sánh, đánh giá hiệu kỹ thuật lập lịch chất lượng hệ thống, từ đề xuất kỹ thuật lập lịch thích hợp cho hệ thống Từ vấn đề nêu với tầm nhìn tổng quan hướng nghiên cứu nay, chọn đề tài: ”NGHIÊN CỨU KỸ THUẬT LẬP LỊCH NÂNG CAO CHẤT LƯỢNG DỊCH VỤ TRONG HỆ THỐNG THÔNG TIN DI ĐỘNG LTE” Mục đích nghiên cứu Trên sở nghiên cứu tổng quan hệ thống thông tin di động LTE kỹ thuật lập lịch, luận văn tiến hành xây dựng mô hình, kịch mô phỏng, thực mô nhằm so sánh đánh giá số kỹ thuật lập lịch, đề xuất kỹ thuật lập lịch phù hợp cho hệ thống thông tin di động LTE Đối tượng phạm vi nghiên cứu a Đối tượng nghiên cứu - Tổng quan hệ thống thông tin di động LTE - Giao diện vô tuyến LTE - Các kỹ thuật lập lịch - Thuật toán lập lịch - Các mô hình lập lịch - Các kịch lập lịch b Phạm vi nghiên cứu Đề tài tập trung chủ yếu vào nghiên cứu kỹ thuật lập lịch lớp MAC giao diện vô tuyến Sau nghiên cứu xây dựng kịch mô tính toán, so sánh đánh giá kỹ thuật lập lịch Nội dung luận văn chủ yếu tập trung vào kỹ thuật lập lịch Round Robin, Best CQI, PF, MaxMin, Max Throughput Các thông số đánh giá bao gồm thông lượng eNodeB, thông lượng người dùng UE, tỉ lệ lỗi BLER Phương pháp nghiên cứu - Thu thập phân tích tài liệu thông tin có liên quan đến đề tài kiến thức mạng thông tin di động LTE, giao diện vô tuyến LTE, kỹ thuật lập lịch lớp MAC… - Kết hợp lý thuyết nghiên cứu, tiến hành lập mô hình, kịch nhằm mô tính toán thông số chất lượng ứng với kỹ thuật lập lịch Trong nội dung luận văn, kết đạt từ chương trình tính toán mô bao gồm thông lượng BLER sử dụng chương trình Matlab sử dụng Ý nghĩa khoa học thực tiễn Các mạng di động Việt Nam đa số sử dụng công nghệ 2G GSM, nâng cấp lên công nghệ 3G UMTS/WCDMA Công nghệ LTE bước để mạng di động tiến lên 4G, nhằm tạo nên hệ thống thông tin di động băng rộng lúc nơi Vì thế, hướng nghiên cứu nhằm trang bị kiến thức công nghệ di động LTE kỹ thuật lập lịch, góp phần chọn giải pháp tối ưu cho giao diện vô tuyến, góp phần nâng cao chất lượng dịch vụ cho người sử dụng Cấu trúc luận văn Ngoài phần Mở đầu, Kết luận hướng phát triển, Tài liệu tham khảo, Phụ lục, luận văn bao gồm chương sau: CHƯƠNG TỔNG QUAN HỆ THỐNG THÔNG TIN DI ĐỘNG LTE Nội dung trình bày tổng quan hệ thống thông tin di động LTE, giao diện vô tuyến, phân lớp eNodeB kỹ thuật giao diện vô tuyến LTE CHƯƠNG CÁC KỸ THUẬT LẬP LỊCH Nội dung chương trình bày so sánh kỹ thuật lập lịch phổ biến, qua tìm hiểu tính năng, ưu nhược điểm thuật toán lập lịch CHƯƠNG KỸ THUẬT LẬP LỊCH TRONG LTE Nội dung chương trình bày hai phần lập lịch lớp MAC giao diện vô tuyến LTE kỹ thuật lập lịch áp dụng mô luận văn CHƯƠNG PHÂN TÍCH VÀ ĐÁNH GIÁ KẾT QUẢ MÔ PHỎNG Nội dung chương trình bày mô hình mô phỏng, kịch mô phỏng, kết mô so sánh đánh giá kỹ thuật lập lịch theo thuật toán khác 78 ứng lại trạng thái kênh truyền, ảnh hưởng lớn đến thông lượng, tỉ lệ lỗi, mã hóa điều chế Trong nội dung luận văn, phần mô lấy mô hình 5, 10 15 UE di chuyển vùng phủ sóng cell eNodeB LTE Cell có băng thông 1,4 Mhz, ứng với RB ENodeB áp dụng thuật toán lập lịch khác Trong TTI, theo thuật toán lập lịch, eNodeB cấp phát tài nguyên cho UE Các UE vừa di chuyển vừa tính toán SNR CQI để báo cáo eNodeB CQI sở để eNodeB giám sát chất lượng đường truyền đến UE, có giá trị từ đến 15 CQI cao mã hóa điều chế tương ứng chọn cho UE tốt, tăng tốc độ truy cập UE Ngoài CQI, kỹ thuật lập lịch áp dụng cách cấp phát tài nguyên số RB, công suất phát theo thuật toán Round Robin, PF, Best CQI…Kết hợp CQI kỹ thuật lập lịch cho ta nhìn tổng quan hiểu lập lịch LTE Mô hình tính CQI SNR UE sử dụng kỹ thuật ESM, tổng hợp tất CQI SNR RB UE báo cáo lên eNodeB Ánh xạ CQI SNR đảm bảo BLER nhỏ 0,1 Trong TTI, ta tính thông lượng UE, cell, BLER UE, cell lưu trữ số liệu làm sở đánh giá sau Sau mô phỏng, luận văn có bước so sánh đánh giá thuật toán lập lịch Kết nhận là: Nếu hệ thống cần thông lượng lớn nên chọn Best CQI, PF, Max Throughput Nếu hệ thống cần độ công nên chọn Maxmin, PF, Round Robin Nếu chọn thuật toán đảm bảo vừa thông lượng hiệu vừa độ công ta nên chọn PF, Maxmin Đây bước đánh giá dựa vào kết mô Kết cho thấy để chọn thuật toán lập lịch hiệu với hệ thống chuyện dễ eNodeB siêu máy tính, xử lý hàng loạt phép tính phức tạp tích tắc hàng ms để đưa định tức thời Mặc dù PF hay Maxmin thuật toán kiểm nghiệm tốt nhất, để ứng dụng eNodeB phải qua thực nghiệm nhiều vấn đề quan 79 trọng khả xử lý nhớ đáp ứng cho thuật toán tối ưu lớn Vì thế, việc chọn kỹ thuật lập lịch phù hợp với hệ thống vấn đề quan trọng Việc áp dụng kỹ thuật lập lịch hệ thống di động LTE cần nhiều thông tin để ứng dụng kỹ thuật lập lịch cho LTE lưu lượng tại, lưu lượng tương lai, bố trí mạng lưới, vị trí địa lý, đặc điểm thói quen truy cập khách hàng, khả đường truyền, khả xử lý eNodeB…Rất nhiều yếu tố liệt kê cho thấy việc áp dụng kỹ thuật lập lịch quan trọng, ảnh hưởng nhiều đến hệ thống di động LTE người dùng Và vai trò quan trọng kỹ thuật lập lịch bàn cãi Hướng phát triển: Nội dung luận văn mức độ nghiên cứu mô thuật toán lập lịch môi trường LTE, qua đánh giá thông số thông lượng, lỗi gói Luận văn chưa đề cập đến vấn đề chất lượng dịch vụ tác dụng thuật toán lập lịch QoS đến dịch vụ cụ thể Vì thế, hướng phát triển đề tài nghiên cứu thuật toán lập lịch QoS tác dụng chất lượng dịch vụ 80 TÀI LIỆU THAM KHẢO Tiếng Anh [1] 3GPP (2011), Evolved Universal Terrestrial Radio Access (E-UTRA) Medium Access Control (MAC) protocol specification (3GPP TS 36.321 version 10.0.0 Release 10) [2] Nokia Siemens Network (2008), LTE SAE overview v1.0 [3] Nokia Siemens Network (2008), LTE Air interface v1.0 [4] Bong Youl (Brian) Cho (2011), LTE MAC/RLC/PDCP/RRC [5] Kambiz Homayounfar, Bijan Rohani (2008), CQI Measurement and Reporting in LTE: A New Framework [6] Erik Eriksson (2008), Channel Quality Information Reporting and Channel Quality Dependent Scheduling in LTE [7] Kristoffer Roberg (2010), Simulation of scheduling algorithms for femtocells in an LTE environment [8] Albert Serra Pagès (2009), A Long Term Evolution Link Level Simulator, Universitat Politècnica de Catalunya [9] Roke (2009), LTE eNodeB MAC Scheduler Interface [10] Bilal Sadiq, Ritesh Madan, Ashwin Sampath (2009), Downlink Scheduling for Multi-class Traffic in LTE [11] Tshiteya Dikamba (2011), Downlink Scheduling in 3GPP Long Term Evolution (LTE) [12] Raymond Kwan, Cyril Leung, and Jie Zhang (2010), Downlink Resource scheduling in an LTE System 81 [13] Bilal Sadiq, Ritesh Madan, Ashwin Sampath (2009), Downlink Scheduling for Multi-class Traffic in LTE [14] Zhiqiang Tang (2010), Traffic Scheduling for LTE Advanced [15] Madhusudan Hosaagrahara, Harish Sethu (2006), Max-Min Fair Scheduling in Input-Queued Switches, IEEE [16] Stefan Schwarz, Christian Mehlfuhrer, Markus Rupp (2009), Low Complexity Approximate Maximum Throughput Scheduling for LTE [17] Zeljko Ilic, Alen Bazant, Borivoj Modlic (2008), An efficient data rate maximization algorithm for OFDM based wireless networks [18] Harold J.Kushner, Philip A.Whiting (2004), Asymptotic Properties of Proportional-Fair Sharing Algorithms: Extensions of the Algorithm User-Level Performance of Channel-Aware [19] Josep Colom Ikuno, Martin Wrulich, Markus Rupp (2010), System level simulation of LTE networks, Institute of Communications and RadioFrequency Engineering, Vienna University of Technology, Austria [20] Josep Colom Ikuno, Martin Wrulich, Markus Rupp (2011), Vienna LTE Simulators System Level Simulator Documentation v1.3r427, Institute of Communications and Radio-Frequency Engineering, Vienna University of Technology, Austria [21] Josep Colom Ikuno, Martin Wrulich, Markus Rupp (2011), Vienna LTE Simulators Link Level Simulator Documentation v1.6r917, Institute of Communications and Radio-Frequency Engineering, Vienna University of Technology, Austria [22]http://www.nt.tuwien.ac.at/about-us/staff/josep-colom-ikuno/ltedownlink-system-level-simulator/ 82 PHỤ LỤC 1.Phần mã thuật toán lập lịch Round Robin function schedule_users(obj,RB_grid,attached_UEs,last_received_feedbacks) RB_grid.size_bits = 0; nCodewords = RB_grid.nCodewords; nLayers = RB_grid.nLayers; tx_mode = RB_grid.tx_mode; current_TTI = obj.clock.current_TTI; if ~isempty(attached_UEs) for RB_idx=1:size(RB_grid.user_allocation,1) current_UE_id = obj.get_next_user; RB_grid.user_allocation(RB_idx) = current_UE_id; end obj.schedule_users_common(RB_grid,attached_UEs,last_received_feedbacks, current_TTI,nLayers,nCodewords,tx_mode); end end 2.Phần mã thuật toán lập lịch Best CQI function schedule_users(obj,RB_grid,attached_UEs,last_received_feedbacks) RB_grid.size_bits = 0; RB_grid.size_bits = 0; nCodewords = RB_grid.nCodewords; nLayers = RB_grid.nLayers; tx_mode = RB_grid.tx_mode; current_TTI = obj.clock.current_TTI; if ~isempty(attached_UEs) if nCodewords==1 UE_id_list=obj.get_max_UEs(last_received_feedbacks.CQI(:,:,1),last_received_feedbacks.UE_id); Else quantized_feedback_efficiency=obj.get_spectral_efficiency(last_received_feedbacks.CQI); quantized_feedback_efficiency_sum = sum(quantized_feedback_efficiency,3); if current_TTI ~= UE_id_list=obj.get_max_UEs(quantized_feedback_efficiency_sum,last_received_feedbacks.UE_id); else UE_id_list=obj.get_max_UEs(ones(size(quantized_feedback_efficiency_sum)),1:length(attached_UEs)); end end RB_grid.user_allocation(:) = UE_id_list; obj.schedule_users_common(RB_grid,attached_UEs,last_received_feedbacks,current_TTI,nLayers,nCodewo rds,tx_mode); end end 83 3.Phần mã thuật toán lập lịch Max ThroughPut function schedule_users(obj,RB_grid,attached_UEs,last_received_feedbacks) RB_grid.size_bits = 0; RB_grid.size_bits = 0; nCodewords = RB_grid.nCodewords; nLayers = RB_grid.nLayers; tx_mode = RB_grid.tx_mode; current_TTI = obj.clock.current_TTI; N_UE = length(attached_UEs); N_RB = RB_grid.n_RB; UE_id_list = zeros(N_RB,1); if ~isempty(attached_UEs) [c,user_ind] = obj.get_efficiency(N_UE,N_RB,last_received_feedbacks); c = c(:); RBs = obj.Max_TP_scheduler(N_UE,N_RB,c); for r_ = 1:N_RB RB_tmp = RBs((r_-1)*N_UE+1:r_*N_UE); ind = find(RB_tmp == 1); if ~isempty(ind) UE_id_list(r_) = attached_UEs(user_ind(ind)).id; end end RB_grid.user_allocation(:) = UE_id_list; obj.schedule_users_common(RB_grid,attached_UEs,last_received_feedbacks,current_TTI,nLayers,nCodewo rds,tx_mode); end end function RBs = Max_TP_scheduler(obj,N_UE,N_RB,c) A = kron(eye(N_RB),ones(1,N_UE)); RBs=linprog(c,A,ones(N_RB,1),[],[],zeros(N_RB*N_UE,1),ones(N_RB*N_UE,1),[],obj.linprog_options); End 4.Phần mã thuật toán lập lịch PF function schedule_users(obj,RB_grid,attached_UEs,last_received_feedbacks) RB_grid.size_bits = 0; RB_grid.size_bits = 0; nCodewords = RB_grid.nCodewords; nLayers = RB_grid.nLayers; tx_mode = RB_grid.tx_mode; current_TTI = obj.clock.current_TTI; if ~isempty(attached_UEs) P=zeros(size(last_received_feedbacks.CQI,1),size(last_received_feedbacks.CQI,2)); CQI_efficiency = obj.get_spectral_efficiency(last_received_feedbacks.CQI); R_k_RB = sum(180e3*CQI_efficiency/obj.clock.TTI_time,3); TTI_to_read = max(current_TTI-obj.feedback_delay_TTIs,1); 84 T_k = zeros(length(attached_UEs),1); for u_=1:length(attached_UEs) UE_id = last_received_feedbacks.UE_id(u_); if UE_id~=0 T_k(u_) = sum(obj.UE_traces(u_).avg_throughput(:,TTI_to_read)); else T_k(u_) = Inf; end end T_k_mat = repmat(T_k,[1 RB_grid.n_RB]); T_k_mat(T_k_mat==0) = eps; P = R_k_RB.^obj.alpha / T_k_mat.^obj.beta; if current_TTI ~= UE_id_list = obj.get_max_UEs(P,last_received_feedbacks.UE_id); else UE_id_list = obj.get_max_UEs(ones(size(P)),1:length(attached_UEs)); end RB_grid.user_allocation(:) = UE_id_list; obj.schedule_users_common(RB_grid,attached_UEs,last_received_feedbacks,current_TTI,nLayers, nCodewords,tx_mode); end end 5.Phần mã thuật toán lập lịch Maxmin function schedule_users(obj,RB_grid,attached_UEs,last_received_feedbacks) RB_grid.size_bits = 0; nCodewords = RB_grid.nCodewords; nLayers = RB_grid.nLayers; tx_mode = RB_grid.tx_mode; current_TTI = obj.clock.current_TTI; N_UE = length(attached_UEs); N_RB = RB_grid.n_RB; UE_id_list = zeros(N_RB,1); if ~isempty(attached_UEs) [c,user_ind] = obj.get_efficiency(N_UE,N_RB,last_received_feedbacks); C = zeros(N_UE,N_RB*N_UE); for rb = 1:N_RB for uu = 1:N_UE C(uu,N_UE*(rb-1)+uu) = c(uu,rb); end end RBs = obj.Max_min_scheduler(N_UE,N_RB,C); RBs = RBs(1:end-1); for r_ = 1:N_RB RB_tmp = RBs((r_-1)*N_UE+1:r_*N_UE); ind = find(RB_tmp == 1); if ~isempty(ind) 85 UE_id_list(r_) = attached_UEs(user_ind(ind)).id; end end RB_grid.user_allocation(:) = UE_id_list; obj.schedule_users_common(RB_grid,attached_UEs,last_received_feedbacks,current_TTI,nLayers, nCodewords,tx_mode); end end function RBs = Max_min_scheduler(obj,N_UE,N_RB,C) A = kron(eye(N_RB),ones(1,N_UE)); A = [A,zeros(size(A,1),1)]; constraints = [-C,-ones(size(C,1),1)]; constraints = [constraints;A]; RBs= linprog([zeros(N_UE*N_RB,1);1],constraints,[zeros(N_UE,1);ones(N_RB,1)],[],[], [zeros(N_RB*N_UE,1);-Inf],[ones(N_RB*N_UE,1);Inf],[],obj.linprog_options); for rb = 1:N_RB % randomize UE choice if RBs is noninteger toss = rand; RB_temp = RBs((rb-1)*N_UE+1:rb*N_UE); temp_ind = cumsum(RB_temp) >= toss; RB_temp = zeros(size(RB_temp)); RB_temp(find(temp_ind == 1,1)) = 1; RBs((rb-1)*N_UE+1:rb*N_UE) = RB_temp; end end Đoạn mã chương trình [ BLER_curves CQI_mapper ] = LTE_init_load_BLER_curves; if strcmp(LTE_config.network_source, 'generated') [eNodeBs eNodeBs_sectors networkPathlossMap networkShadowFadingMap] = LTE_init_network_generation; else [eNodeBs eNodeBs_sectors networkPathlossMap] = LTE_init_network_generation; end LTE_config.target_sector = LTE_common_get_target_sector(eNodeBs,networkPathlossMap); if exist('networkShadowFadingMap','var') [LTE_config.capacity_no_shadowing sector_SINR_no_shadowing] = LTE_common_calculate_cell_capacity(networkPathlossMap,eNodeBs,CQI_mapper); [LTE_config.capacity sector_SINR ]= LTE_common_calculate_cell_capacity(networkPathlossMap,eNodeBs,CQI_mapper,networkShadowFading Map); else LTE_config.capacity sector_SINR ]= LTE_common_calculate_cell_capacity(networkPathlossMap,eNodeBs,CQI_mapper); end if LTE_config.show_network>0 if exist('networkShadowFadingMap','var') LTE_plot_sector_SINR_cdfs(sector_SINR,sector_SINR_no_shadowing); 86 LTE_plot_loaded_network(eNodeBs,networkPathlossMap,networkShadowFadingMap); else LTE_plot_sector_SINR_cdfs(sector_SINR); if ~isfield(LTE_config,'show_capesso_network') LTE_plot_loaded_network(eNodeBs,networkPathlossMap); end end end networkClock = network_elements.clock(LTE_config.TTI_length); for b_=1:length(eNodeBs) eNodeBs(b_).clock = networkClock; end UEs = LTE_init_generate_users(eNodeBs,networkPathlossMap); ff_file_exists = exist(LTE_config.pregenerated_ff_file,'file'); if LTE_config.recalculate_fast_fading || (~ff_file_exists && ~LTE_config.recalculate_fast_fading) print_log(1,['Generating UE fast fading and saving to ' LTE_config.pregenerated_ff_file '\n']); pregenerated_ff = LTE_init_get_microscale_fading_SL_trace; save(LTE_config.pregenerated_ff_file,'pregenerated_ff','-v7.3'); else print_log(1,['Loading UE fast fading from ' LTE_config.pregenerated_ff_file '\n']); load(LTE_config.pregenerated_ff_file,'pregenerated_ff'); if LTE_config.nTX~=pregenerated_ff.nTX || LTE_config.nRX~=pregenerated_ff.nRX error('Trace is for a %dx%d system Config defines a %dx%d system.',pregenerated_ff.nTX,pregenerated_ff.nRX,LTE_config.nTX,LTE_config.nRX); end if LTE_config.bandwidth ~= pregenerated_ff.system_bandwidth error('Loaded FF trace is not at the correct frequency: %3.2f MHz required, %3.2f MHz found',LTE_config.bandwidth/1e6,pregenerated_ff.system_bandwidth/1e6); end if (pregenerated_ff.UE_speed~=LTE_config.UE_speed) && ~isnan(pregenerated_ff.UE_speed) error('Loaded FF trace is generated at %3.2f m/s UE speed is %3.2f m/s Trace cannot be used.',pregenerated_ff.UE_speed,LTE_config.UE_speed); end if isnan(pregenerated_ff.UE_speed) print_log(1,sprintf('Microscale fading trace is speed-independent\n')); else print_log(1,sprintf('UE Fast fading trace at %3.2f m/s (%3.2f Km/h)\n',pregenerated_ff.UE_speed,pregenerated_ff.UE_speed*3.6)); end end for u_=1:length(UEs) UEs(u_).downlink_channel = channel_models.downlinkChannelModel(UEs(u_)); UEs(u_).downlink_channel.set_macroscopic_pathloss_model(networkPathlossMap); if ~strcmp(LTE_config.network_source,'capesso') UEs(u_).downlink_channel.set_shadow_fading_model(networkShadowFadingMap); end 87 UEs(u_).downlink_channel.set_fast_fading_model_model(channel_gain_wrappers.fastFadingWrapper(prege nerated_ff,'random',length(eNodeBs),length(eNodeBs(1).sectors))); switch LTE_config.SINR_averaging.algorithm case 'MIESM' UEs(u_).SINR_averager = utils.miesmAveragerFast(LTE_config.SINR_averaging.BICM_capacity_tables,LTE_config.SINR_averaging betas); case 'EESM' UEs(u_).SINR_averager = utils.eesmAverager(LTE_config.SINR_averaging.betas,LTE_config.SINR_averaging.MCSs); otherwise error('SINR averaging algorithm not supported'); end UEs(u_).eNodeB_signaling = network_elements.eNodebSignaling; UEs(u_).nRX = LTE_config.nRX; UEs(u_).downlink_channel.thermal_noise_watts_RB = 10^(0.1*LTE_config.UE.thermal_noise_density)/1000 * LTE_config.RB_bandwidth; UEs(u_).downlink_channel.thermal_noise_dBW_RB = 10*log10(UEs(u_).downlink_channel.thermal_noise_watts_RB); UEs(u_).BLER_curves = BLER_curves; UEs(u_).uplink_channel = channel_models.uplinkChannelModel( UEs(u_), LTE_config.N_RB, LTE_config.maxStreams, LTE_config.feedback_channel_delay); UEs(u_).clock = networkClock; UEs(u_).CQI_mapper = CQI_mapper; if LTE_config.unquantized_CQI_feedback UEs(u_).unquantized_CQI_feedback = true; end end LTE_init_add_schedulers(eNodeBs,UEs,CQI_mapper,BLER_curves); simulation_traces = tracing.simTraces; simulation_traces.eNodeB_rx_feedback_traces = tracing.receivedFeedbackTrace( LTE_config.simulation_time_tti, length(UEs), LTE_config.N_RB, LTE_config.maxStreams, LTE_config.traces_config.unquantized_CQI_feedback); for b_=1:length(eNodeBs) for s_=1:length(eNodeBs(b_).sectors) eNodeBs(b_).sectors(s_).feedback_trace = simulation_traces.eNodeB_rx_feedback_traces; scheduler_trace = tracing.schedulerTrace(LTE_config.simulation_time_tti); eNodeBs(b_).sectors(s_).scheduler.trace = scheduler_trace; simulation_traces.scheduler_traces{b_,s_} = scheduler_trace; end end 88 simulation_traces.eNodeB_tx_traces = tracing.enodebTrace(eNodeBs(1),UEs(1).downlink_channel.RB_grid,LTE_config.maxStreams,LTE_config simulation_time_tti); for b_=2:length(eNodeBs) simulation_traces.eNodeB_tx_traces(b_) = tracing.enodebTrace(eNodeBs(b_),UEs(1).downlink_channel.RB_grid,LTE_config.maxStreams,LTE_config simulation_time_tti); end for u_=1:length(UEs) UEs(u_).trace = tracing.ueTrace(LTE_config.simulation_time_tti,LTE_config.N_RB,LTE_config.maxStreams,LTE_config.tr aces_config,LTE_config.latency_time_scale,LTE_config.TTI_length); if u_==1 simulation_traces.UE_traces = UEs(u_).trace; else simulation_traces.UE_traces(u_) = UEs(u_).trace; end end for b_=1:length(eNodeBs) for s_=1:length(eNodeBs(b_).sectors) eNodeBs(b_).sectors(s_).scheduler.UE_traces = simulation_traces.UE_traces; end end print_log(2,'eNodeB List\n'); if LTE_config.debug_level >=2 for b_=1:length(eNodeBs) eNodeBs(b_).print; end end print_log(2,'\n'); print_log(2,'User List\n'); if LTE_config.debug_level >=2 for u_=1:length(UEs) UEs(u_).print; end end print_log(2,'\n'); print_log(1,['Entering main simulation loop, ' num2str(LTE_config.simulation_time_tti,'%5.0f') ' TTIs\n']); tic; starting_time = toc; while networkClock.current_TTI < LTE_config.simulation_time_tti networkClock.advance_1_TTI; if LTE_config.show_network>1 || networkClock.current_TTI==1 LTE_plot_show_network(eNodeBs,UEs,LTE_config.map_resolution,networkClock.current_TTI); end for u_ = 1:length(UEs) UEs(u_).move; 89 [ x_range y_range ] = networkPathlossMap.valid_range; if ~UEs(u_).is_in_roi(x_range,y_range) new_UE_position = networkPathlossMap.random_position; old_UE_position = UEs(u_).pos; old_eNodeB_id = UEs(u_).attached_eNodeB.id; [new_eNodeB_id new_eNodeB_sector] = networkPathlossMap.cell_assignment(new_UE_position); UEs(u_).pos = new_UE_position; UEs(u_).start_handover(eNodeBs(new_eNodeB_id),new_eNodeB_sector); if LTE_config.show_network>1 scatter(new_UE_position(1),new_UE_position(2),'Marker','o','MarkerEdgeColor','green'); pause(0.1) end print_log(2,['TTI ' num2str(networkClock.current_TTI) ': UE ' num2str(UEs(u_).id) ' going out of ROI, teleporting to ' num2str(new_UE_position(1)) ' ' num2str(new_UE_position(2)) ' eNodeB ' num2str(old_eNodeB_id) ' -> eNodeB ' num2str(new_eNodeB_id) '\n']); end end if ~mod(networkClock.current_TTI,500) LTE_plot_show_network(eNodeBs,UEs,LTE_config.map_resolution,networkClock.current_TTI); end if LTE_config.feedback_channel_delay==0 for u_ = 1:length(UEs) UEs(u_).link_quality_model(LTE_config); end end for b_ = 1:length(eNodeBs) eNodeBs(b_).receive_UE_feedback; eNodeBs(b_).schedule_users; end if LTE_config.feedback_channel_delay~=0 for u_ = 1:length(UEs) UEs(u_).link_quality_model(LTE_config); end end for u_ = 1:length(UEs) UEs(u_).link_performance_model; UEs(u_).send_feedback; end if mod(networkClock.current_TTI,50)==0 elapsed_time = toc; time_per_iteration = elapsed_time / networkClock.current_TTI; estimated_time_to_finish = (LTE_config.simulation_time_tti networkClock.current_TTI)*time_per_iteration; estimated_time_to_finish_h = floor(estimated_time_to_finish/3600); estimated_time_to_finish_m = estimated_time_to_finish/60 - estimated_time_to_finish_h*60; 90 fprintf('Time to finish: %3.0f hours and %3.2f minutes\n',estimated_time_to_finish_h,estimated_time_to_finish_m); end end print_log(1,'Simulation finished\n'); if LTE_config.delete_ff_trace_at_end pregenerated_ff.traces = []; end if LTE_config.delete_pathloss_at_end networkPathlossMap.pathloss = []; networkPathlossMap.sector_assignment = []; networkPathlossMap.sector_assignment_no_shadowing = []; if exist('networkShadowFadingMap','var') networkPathlossMap.pathloss = []; else % Do nothing end end print_log(1,['Saving results to ' LTE_config.results_file '\n']); save(LTE_config.results_file); print_log(1,'OK \n'); Đoạn mã chương trình thiết lập thông số ban đầu global LTE_config; LTE_config.debug_level = 2; LTE_config.show_network = 0; LTE_config.frequency = 2e9; % Frequency in Hz LTE_config.bandwidth = 1.4e6; % Frequency in Hz LTE_config.UEs_only_in_target_sector = true; LTE_config.target_sector = 'center'; LTE_config.nTX = 1; LTE_config.nRX = 1; LTE_config.tx_mode = 1; LTE_config.always_on = true; LTE_config.seedRandStream = true; LTE_config.RandStreamSeed = 0; LTE_config.simulation_time_tti = 100; LTE_config.latency_time_scale = 10; LTE_config.cache_network = true; LTE_config.network_cache = 'auto'; LTE_config.delete_ff_trace_at_end = true; LTE_config.UE_cache = true LTE_config.UE_cache_file = 'auto'; LTE_config.network_source = 'generated'; switch LTE_config.network_source case 'generated' LTE_config.inter_eNodeB_distance = 500; 91 LTE_config.map_resolution = 5; LTE_config.nr_eNodeB_rings = 0; LTE_config.minimum_coupling_loss = 70; LTE_config.macroscopic_pathloss_model = 'TS25814'; LTE_config.macroscopic_pathloss_model_settings.environment = ''; LTE_config.eNodeB_tx_power = 20; case 'capesso' LTE_config.show_capesso_network = LTE_config.show_network; LTE_config.map_resolution = 20; LTE_config.rescale_factor =1; LTE_config.macroscopic_pathloss_model = 'Capesso'; LTE_config.macroscopic_pathloss_model_settings.environment = ''; LTE_config.eNodeB_tx_power = 20; LTE_config.nr_eNodeB_rings = 1; % Number of eNodeB rings otherwise error([LTE_config.network_source ' network source not supported']); end LTE_config.shadow_fading_type = 'claussen'; switch LTE_config.shadow_fading_type case 'claussen' LTE_config.shadow_fading_map_resolution = 5; LTE_config.shadow_fading_n_neighbors = 8; % Either or LTE_config.shadow_fading_mean = 0; LTE_config.shadow_fading_sd = 10; LTE_config.r_eNodeBs = 0.5; % inter-site shadow fading correlation case 'none' LTE_config.shadow_fading_map_resolution = 5; % Recommended value for neighbors LTE_config.shadow_fading_n_neighbors = 8; % Either or LTE_config.shadow_fading_mean = 0; LTE_config.shadow_fading_sd = 0; LTE_config.r_eNodeBs = 0; % inter-site shadow fading correlation otherwise error([LTE_config.shadow_fading_type ' shadow fading type not supported']); end LTE_config.use_fast_fading = true; LTE_config.channel_model.type = 'PedB'; LTE_config.channel_model.trace_length = 1; LTE_config.channel_model.correlated_fading = true; LTE_config.pregenerated_ff_file = 'auto'; LTE_config.recalculate_fast_fading = true; LTE_config.UE.use_traffic_map = false; LTE_config.udtm_folder = 'D:\LTE_System_Level_1.3_r427/data_files/traffic_maps'; LTE_config.udtm_filename = 'test_201002'; LTE_config.udtm_environment = 'DI'; LTE_config.UE.receiver_noise_figure = 9; LTE_config.UE.thermal_noise_density = -174; LTE_config.UE_per_eNodeB = 120; LTE_config.UE_speed = 5/3.6; 92 LTE_config.antenna.antenna_gain_pattern = 'TS 36.942'; LTE_config.antenna.max_antenna_gain = 15; load('D:\LTE_System_Level_1.3_r427/+utils/BICM_k_d_MSE.mat','k','d'); LTE_config.MI_data.k = k; LTE_config.MI_data.d = d; if strcmp(LTE_config.antenna.antenna_gain_pattern, 'kathreinTSAntenna') LTE_config.site_altiude = 0; % Altiude of site [m] LTE_config.site_height = 20; % Height of site [m] LTE_config.rx_height = 1.5; % Receiver height [m] LTE_config.antenna.mechanical_downtilt = 0; % [°] LTE_config.antenna.electrical_downtilt = 6; % [°] LTE_config.antenna.kathrein_antenna_folder = 'D:\LTE_System_Level_1.3_r427/data_files/antenna_files/'; LTE_config.antenna.antenna_type = '742212'; LTE_config.antenna.frequency = 2140; end LTE_config.scheduler = 'max TP'; % 'round robin', 'best cqi', 'max min', 'max TP', 'resource fair', 'proportional fair', 'prop fair Sun', 'alpha fair' or 'var fair' LTE_config.scheduler_params.k = LTE_config.MI_data.k; LTE_config.scheduler_params.d = LTE_config.MI_data.d; LTE_config.scheduler_params.av_window = LTE_config.latency_time_scale; % size of the throughput averaging window LTE_config.scheduler_params.fairness = 0.5; LTE_config.scheduler_params.alpha = 1; LTE_config.power_allocation = 'homogeneous;'; LTE_config.CQI_mapper.CQI2SNR_method = 1; LTE_config.feedback_channel_delay = 0; % TTI LTE_config.unquantized_CQI_feedback = false; LTE_config.SINR_averaging.algorithm = 'MIESM'; LTE_config.SINR_averaging.BICM_capacity_tables = 'D:\LTE_System_Level_1.3_r427/data_files/BICM_capacity_tables_20000_realizations.mat'; LTE_config.SINR_averaging.betas = [3.85,2.85,0.66,1.04,0.98,1,0.85,0.95,1,0.99,1.02,0.94,1.03,1,1]; % MIESM LTE_config.results_folder = 'D:\LTE_System_Level_1.3_r427/results'; LTE_config.results_file = 'auto'; % 'auto' : filename automatically LTE_config.traces_config.trace_SINR = true; LTE_config.traces_config.trace_geometry_factor = true; LTE_config.RB_bandwidth = 180e3;% Frequency in Hz LTE_config.TTI_length = 1e-3; %Length of a TTI(subframe), in seconds LTE_config.cyclic_prefix = 'normal'; % 'normal' or 'extended' cyclic prefix LTE_config.maxStreams = 2; LTE_config.antenna_azimuth_offsett = 30; LTE_config.traffic_models.usetraffic_model = true; LTE_load_params_dependant; [...]... tổng quan về hệ thống thông tin di động LTE, là cơ sở tiến hành nghiên cứu và thực hiện mô phỏng các kỹ thuật lập lịch lớp MAC trong các chương tiếp theo 28 CÁC KỸ THUẬT LẬP LỊCH 1.8 Giới thiệu chương Nội dung chương này sẽ trình bày về các kỹ thuật lập lịch phổ biến hiện nay và so sánh các kỹ thuật lập lịch này Qua đó hiểu rõ về tính năng, ưu điểm và nhược điểm của các thuật toán lập lịch, là cơ sở... đánh giá và lựa chọn thuật toán lập lịch sẽ được mô phỏng trong chương tiếp theo, là bước kiểm nghiệm quan trọng các thuật toán lập lịch cho LTE 1.9 Các thuật toán lập lịch [14] 1.9.1 Giới thiệu Như đã trình bày ở chương một, ta đã biết về bộ lập lịch trong lớp MAC giao di n vô tuyến Trong chương này ta sẽ trình bày về các kỹ thuật lập lịch cơ bản Ta có thể phân loại kỹ thuật lập lịch theo các cách như... biệt theo loại lưu lượng, khi đó hiệu suất của thuật toán lập lịch sẽ cao đối với từng loại lưu lượng khác nhau Lưu lượng có thể chia thành lưu lượng thời gian thực, lưu lượng thời gian không thực hoặc hỗn hợp của hai loại như thoại, dữ liệu, live video…Khi đó, kỹ thuật lập lịch có thể chia làm hai loại: Thuật toán lập lịch cho lưu lượng thời gian không thực: Kỹ thuật lập lịch cho lưu lượng thời gian... triển công nghệ di động thế hệ thứ 3, WCDMA dựa vào FDD và TD-CDMA dựa vào TDD Nhằm kết hợp các hệ thống di động trong tương lai, một kế hoạch phát triển, cải tiến công nghệ 3G được thực hiện từ năm 2004 Kết quả là sự ra đời của hệ thống thông tin di động LTE, với tốc độ lên đến hàng trăm Mbit/s cho đường xuống và hàng trăm Mbit/s cho đường lên với băng thông sử dụng 20 Mhz LTE có một hệ thống có kiến... kênh truyền đó, bộ lập lịch đường lên eNodeB sẽ điều khiển phương pháp mã hóa và điều chế đối với UE cho đường lên Trong LTE, có hai phương pháp lập lịch đường xuống là FDD và TDD Lập lịch theo kiểu TDD nghĩa là chỉ lập lịch về mặt thời gian, còn lập lịch FDD nghĩa là vừa lập lịch theo thời gian và tần số Nội dung luận văn của ta sẽ nghiên cứu lập lịch đường xuống theo kiểu FDD Thông tin UE gửi cho eNodeB... QUAN HỆ THỐNG THÔNG TIN DI ĐỘNG LTE 1.1 Giới thiệu chương Chương này sẽ giới thiệu về công nghệ LTE, công nghệ đa truy nhập OFDMA, phân biệt các phân lớp trong eNodeB cũng như trình bày về các kỹ thuật quan trọng trong các phân lớp giao di n vô tuyến LTE 1.2 Giới thiệu về công nghệ LTE [1],[2],[3] 3GPP là tổ chức chuẩn hóa được thành lập bởi Châu Âu, Nhật Bản, Trung Quốc, Mỹ và Hàn Quốc, được sáng lập. .. thực dựa vào thuật toán cơ bản là PF Các thuật toán lập lịch phổ biến khác là Max Rate, Round Robin Hiệu suất của các thuật toán lập lịch cho dịch vụ thời gian không thực được đo đạc chủ yếu bằng thông lượng và độ công bằng Thuật toán lập lịch cho lưu lượng thời gian thực: Lưu lượng thời gian thực có yêu cầu độ trễ nghiêm ngặt hơn nhiều nhằm giảm sai lỗi Trong hệ thống không dây, lưu lượng thời gian... tiên cho UE có CQI cao, mà còn phải dựa vào độ ưu tiên của UE, độ ưu tiên dịch vụ của UE Bên cạnh đó, còn phải đảm bảo sự công bằng cho các UE về thông lượng chẳng hạn Tóm lại, nhiệm vụ của bộ lập lịch là quyết định UE nào được sử dụng RB, CQI nào của UE được dùng và gói tin nào của UE được gửi đi 1.7 Kết luận chương Hệ thống thông tin di động LTE với giao di n vô tuyến dựa trên công nghệ OFDMA, bên cạnh... thuật lập lịch phức tạp hơn một chút là RR (Round Robin) Kỹ thuật này tạo sự công bằng giữa các thuê bao nhưng không thoả mãn các yêu cầu QoS như thông lượng, tỉ lệ lỗi hay độ trễ Trong phần này sẽ đề cập đến các nhân tố mà các bộ lập lịch phải quan tâm, hay là những yêu cầu của bộ lập lịch - Các thông số QoS: Bộ lập lịch phải có thể đảm bảo các thông số QoS cho các lớp dịch vụ khác nhau Các thông. .. gói tin bị hỏng sử dụng kỹ thuật kết hợp chase hay kỹ thuật tăng độ dự phòng Kết hợp chase được dùng khi gói truyền lại chắc chắn giống gói bị hỏng khi nhận trước đó Nó kết hợp hai gói dùng kết hợp tỉ lệ cao nhất Tăng độ dự phòng là kỹ thuật HARQ khác, trong đó thay vì gửi lại gói một cách đơn giản, thông tin dự phòng được truyền đi nếu giải mã lỗi trong lần gửi đầu 25 1.6.2 Bộ lập lịch Bộ lập lịch