Gọi chương trình MATLAB và trong cửa sổ lệnh MATLAB gõ WCDMASim và
ấn Enter. Xuất hiệnMenu chương trình mô phỏng:
Wcdma.m Mainmenu.m Uplink or dowlink Uplink.m Upmenu.m dowmenu. m dowlink.m Up_sim.m Up_mai.m Scram_im ag.bin Scram_real.bi n Ovsf_gen.m Par_up.mat Up_finalmenu.m Rayleigh.m Up_mai_mpath.m Over_c hanel Up_mpat h.m Pulse_shaping .m
Hình 3.15. Giao diện đầu tiên của chương trình mô phỏng WCDMA
Kích vào Simulate Uplink. Thì bảng thông số mô phỏngsẽ xuất hiện:
Hình 3.16. Menu thiết lập thông số mô phỏng kênh đường lên WCDMA
Các thông số giá trị của chương trình mô phỏng đều có thể thay đổi được. Sau khi chương trình mô phỏng được cấu hình hoá phù hợp, chương trình được thực hiện
bằng cách kích vào nút GO. Dưới đây miêu tả các thông số của chương trình mô
phỏng
Số lần lặp (Number of Iteration): Xác định số khung vô tuyến (độ dài 10 ms). Giá trị mặc định là 1000 khung. Giá trị để ở số nguyên dương.
Tỉ số tín hiệu trên tạp âm (EbNo dB): Xác định năng lượng bit trên tạp âm (EbNo) trung bình của thành phần đa đường lớn nhất. Đơn vị là decibel. Giá trị mặc định là 20 dB. Để sửa giá trị này, gõ enter giá trị mong muốn ở đơn vị decibel. Giá trị để ở số thực
Vận tốc (Velocity) (km/h): Xác định vận tốc của trạm di động. Đơn vị là km/h. Giá trị mặc định là 5 km/h. Giá trị để ở số thực không âm.
Lệch định thời cực đại cho nhiễu (Maximum Offset for Interferers): Xác định lệch định thời cực đại cho mỗi tín hiệu nhiễu. Giá trị mặc định là 512 chip. Giá trị này phải là giá trị thực.
Số lượng nhiễu (# of Interferers): Xác định số lượng của các trạm di động gây
nhiễu dùng trong chương trình mô phỏng. Giátrị mặc định là 5. Giá trị này phải
là số nguyên không âm.
Lý lịch đa đường (Multipath Profile): Lý lịch đa đường định rõ một kênh đa đường (nhỏ hơn 6 thành phần). Định nghĩa một thành phần đa đường bằng cách nhập trễ tương đối (đơn vị ns) và biên độ trung bình (đơn vị dB). Trễ tương đối phải là một số thực không âm, năng lượng trung bình có thể là bất cứ số thực nào. Giá trị mặc định của kênh đa đường là kênh LOS, là kênh mà chỉ có một thành phần đa đường với trễ tương đối là 0ms và biên độ trung bình là 0 dB.
Khoảng thời gian tạo dạng xung truyền dẫn (Transmitter Pulse Shape Duration): Xác định độ dài của bộ lọc định dạng xung tại máy phát và lọc phối hợp ở máy thu theo độ rộng xung. Giá trị mặc định là 10 chip. Giá trị trong trường này phải là giá trị nguyên dương chẵn . Nếu là giá trị không nguyên thì hộp thoại sau sẽ xuất hiện
Hình 3.17. Hộp thoại xuất hiện khi giá trị không nguyên cho độ dài xung
Hình 3.18. Hộp thoại xuất hiện khi giá trị số nguyên lẻ được nhập cho độ dài xung
Oversampling Rate: Xác định số lượng mẫu trên một chip. Giá trị mặc định là 5. Giá trị trong trường này phải là số nguyên dương.
Hệ số trải phổ (Spreading Factor). Xác định hệ số trải phổ được dùng với trạm di động mong muốn.
Chú ý: Nếu số kênh DPDCH (giá trị ở # of DPDCHs) vượt quá 1, thì hệ số trải phổ cho phép duy nhất được dùng là 4. Nếu giá trị trong # of DPDCHs vượt quá 1 và một giá trị lớn hơn được lựa chọn cho hệ số trải phổ, thì hộp thoại sau sẽ xuất hiện
Hình 3.19. Hộp thoại xuất hiện khi số lượng của DPDCH lớn hơn 1 và hệ số trải phổ vượt quá 4.
Khi ấn nút OK, giá trị trong hộp sửa # of DPDCHs sẽ được thiết lập là 1.
Số các ký hiệu hoa tiêu (# of Pilot symbols). Xác định số các ký hiệu hoa tiêu được dùng trong kênh điều khiển vật lý dành riêng (DPDCH) của tín hiệu mong muốn. Trong mô phỏng, trạm thu gốc dùng các ký hiệu hoa tiêu để ước tính pha của mỗi thành phần đa đường của một kênh dựa trên cơ sở từng khung.
Số các kênh DPDCH (# of DPDCHs). Xác định số lượng kênh DPDCH được
dùng bởi máy phát di động mong muốn. Theo chuẩn WCDMA (ETSI TS 125 213 V3.2.0), thì mỗi máy phát di động có thể hỗ trợ từ 1 đến 6 kênh DPDCH. Tuy nhiên, có một số giới hạn giữa số lượng kênh DPDCH và hệ số trải phổ cho phép. Nếu trạm di động dùng một kênh DPDCH thì có thể chọn bất cứ hệ số trải phổ nào sau đây: 8, 16, 32, 64, 138, 256, 512. Tuy nhiên, nếu trạm di động dùng 2 hoặc nhiều hơn 2 kênh DPDCH thì chỉ có hệ số trải phổ là 4 được sử dụng. Nếu hệ số trải phổ được thiết lập là 8 hoặc cao hơn, và # of DPDCH được thiết lập là 2 hoặc cao hơn thì bảng sau sẽ xuất hiện
Hình 3.20. Hộp thoại xuất hiện khi hệ số trải phổ vượt quá 4, và thiết lập từ 2 đến 6 kênh DPDCH
Hệ số trọng số (Weighting Factor): Chuẩn WCDMA (ETSI TS 125 213 V3.2.0), hỗ trợ các hệ số trọng số tương ứng giá trị biên độ của cả kênh DPCCH và kênh DPDCH. Để có thông tin về cách mà những trọng số này được gán, hãy xem bảng 1. Có tới 16 giá trị từ 0 đến 15 được phép. Mỗi giá trị trọng số thể hiện một giá trị biên độ phù hợp.
Bảng 3.1. Bảng giá trị trọng số ứng với giá trị biên độ
Bảng 3.1. Bảng giá trị trọng số ứng với giá trị biên độ
Trọng số Biên độ Trọng số Biên độ 15 1,0000 7 0,4667 14 0,9333 6 0,4000 13 0,8666 5 0,333 12 0,8000 4 0,2667 11 0,7333 3 0,2000 10 0,6667 2 0,1333 9 0,6000 1 0,0667 8 0,5333 0 0,0000
Gộp đa đường vào trong nhiễu (Include Multipath in Interferers): Để giảm thời gian chạy mô phỏng, có thể gộp các kênh đa đường thành một kênh tạp âm Gaussian trắng cộng. Tuy nhiên, điều này làm ảnh hưởng tới sự chính xác của chương trình mô phỏng, vì khi này đã mô hình hoá kênh giữa MS gây nhiễu và tạp âm là kênh AWGN.
Nút GO: Sau khi tất cả những thông số mô phỏng được thiết lập, người sử dụng chương trình có thể gọi cho hiện lên sự mô phỏng bằng cách ấn nút GO. Khi nút GO được ấn , chương trình sẽ thực thi và một menu thể hiện tiến trình mô phỏng sau xuất hiện.
Hình 3.21. Thanh trạng thái thể hiện tiến trình mô phỏng
Các thông số đầu vào: UplinkSimConfig (Cấu hình mô phỏng đường lên)
Tập thông số đầu vào, UplinkSimConfig, chứa 15 trường sau
Bảng 3.2 Tổng số cấu hình mô phỏng kênh đường lên
Số lần lặp (NumIterations) Số hoa tiêu(NumPilot) Trễ (Delay) Độ dài xung
(PulseLength)
Lệch định thời cực đại (MaxOffset)
Biên độ (Amp)
Số mẫu trên một chip (SamplesPerChip) Số nguồn nhiễu (NumInterferer) BetaD EbNo_db Số kênh DPCCH(NumDPDCH) BetaC
Vận tốc(Velocity) Hệ số trải phổ(SF) Cờ đa đường
(MPathFlag)
Dưới đây mô tả vắn tắt các tham số này:
Số lần lặp (NumIterations)
Xác định các khung vô tuyến được mô phỏng. Các giá trị hợp lệ trong trường này là các số nguyên không âm.
Độ dài xung (PulseLenght)
Xác định độ dài bộ lọc định dạng xung của máy phát và máy thu. Các giá trị cho phép trong trường PulseLenght là các số nguyên không âm.
Số mẫu trên một chip(SamplesPerChip)
Xác định số lượng mẫu trên một chu kì chip. Các giá trị cho phép trong trường này là các giá trị nguyên dương.
Tỉ số tín hiệu trên tạp âm (EbNo_db)
Xác định tỉ lệ Năng lượng bit/ tạp âm ở dB. Các giá trị cho phép trong trường này là số thực.
Vận tốc (Velocity)
Xác định vận tốc của trạm di động được dùng để xác định trải Doppler của kênh. Trong chương trình mô phỏng mỗi thành phần của kênh đa đường có cùng trải rộng Doppler. Các giá trị cho phép trong trường này là các số thực không âm. Đơn vị đo cho trường vận tốc là km/h.
Số các ký hiệu hoa tiêu (NumPilot)
Xác định số các ký hiệu hoa tiêu trong mỗi khe của kênh DPCCH. Các giá trị cho phép trong trường này là 2, 3, 4, 6, 7, và 8.
Lệch định thời cực đại (MaxOffset)
Xác định lệch định thời lớn nhất được phép (đơn vị là 1 chip) cho mỗi tín hiệu nhiễu. Các giá trị cho phép của trường này là các giá trị nguyên dương.
Số lượng nguồn gây nhiễu(NumInterferer)
Xác định số lượng các trạm di động gây nhiễu trong chương trình mô phỏng. Các giá trị cho phép của trường này là các số nguyên không âm.
Số lượng kênh DPDCH(NumDPDCH)
Xác định số lượng kênh DPDCH mà trạm di động đang sử dụng trong đường lên. Các giá trị cho phép trong trường này là các số nguyên 1, 2, 3, 4, 5, và 6. Nếu trường NumDPDCH có giá trị lớn hơn 1, thì trường SF phải thiết lập giá trị là 4 .
Hệ số trải phổ(SF)
Xác định hệ số trải phổ. Các trạm di động mong muốn và gây nhiễu sử dụng cùng hệ số trải phổ. Các giá trị cho phép trong trường SF là các số nguyên 4, 8, 16, 32, 64, 128, 256, và 512. Nếu SF được thiết lập là 8, 16, 32, 64, 128, 256, hoặc 512, thì trường NumDPDCH phải được thiết lập là 1. Nếu SF được thiết lập là 4, thì trường NumDPDCH có thể có các giá trị sau 1, 2, 3, 4, 5, hoặc 6.
Trễ (Delay)
Là một mảng chứa thời gian trễ tương đối của thành phần kênh đa đường. Độ dài của mảng xác định tổng số lượng của các thành phần đa đường trong một kênh. Đặc biệt, phần tử đầu tiên trong mảng này được thiết lập là 0. Các phần tử trong mảng phải là các số thực không âm. Đơn vị đo cho mỗi phần tử của mảng là ns.
Biên độ(Amp)
Là một mảng chứa biên độ trung bình tương đối cho mỗi thành phần đa đường. Độ dài của mảng phải bằng độ dài của mảng trong trường Delay. Có sự tương
trong các mảng Delay và Amp lần lượt là α và β. Thì thành phần đa đường thứ i
có trễ là β và biên độ trung bình tương đối là α.
Các giá trị cho phép của mỗi phần tử trong mảng là các số thực âm (vì chuẩn hoá theo biên độ lớn nhất).
BetaC và BetaD
Trường BetaC và BetaD xác định trọng số (Mức công suất mạnh hay yếu) lần lượt của kênh DPCCH và các kênh DPDCH. Chuẩn WCDMA (ETSI TS 125 213 V3.2.0), cung cấp trọng số ứng với biên độ của cả hai kênh DPCCH và DPDCH. Để biết được cách các trọng số này.
Bảng 3.3
Bảng 3.3 Sự tương ứng giữa các giá trị trọng số và biên độSự tương ứng giữa các giá trị trọng số và biên độ
Trọng số Biên độ Trọng số Biên độ 15 1,0000 7 0,4667 14 0,9333 6 0,4000 13 0,8666 5 0,333 12 0,8000 4 0,2667 11 0,7333 3 0,2000 10 0,6667 2 0,1333 9 0,6000 1 0,0667 8 0,5333 0 0,0000
Số đa đường (MPathFlag)
Nếu MPathFlag được thiếp lập ở 1, thì tất cả các tín hiệu từ các máy di động gây nhiễu sẽ truyền qua một kênh đa đường. Nếu MPathFlag được thiết lập ở 0, thì tất cả các tín hiệu từ các trạm di động gây nhiễu sẽ truyền qua một kênh tạp âm Gaussian trắng cộng.
Minh hoạ kịch bản cấu hình mô phỏng kênh đường lên sau khi nhập tất cả các tham số được đề cập ở trên (Kết quả giai đoạn khởi tạo và thiết lập cấu hình)
» UplinkSimConfig UplinkSimConfig = NumIterations: 100 EbNo_db: 3 Velocity: 60
MaxOffset: 512 NumInterferer: 10 Delay: 0 Amp: 0 PulseLength: 12 SamplesPerChip: 5 SF: 64 NumPilot: 8 NumDPDCH: 1 BetaD: 15 BetaC: 5 MPathFlag: 0
Thông số đầu ra: CorrectErrorRun
Thông số đầu ra, CorretErrorRun, là một chuỗi các lỗi và vị trí mà chúng xuất hiện xuất hiện trong quá trình mô phỏng. Nó không chỉ xác định được tỉ lệ lỗi bit trung bình mà còn cho biết quy luật mà các lỗi đó được tạo ra, thông qua đó sẽ xác định cách để sửa lỗi.
Chuỗi CorrectErrorRun là một tập hợp các số nguyên dương biểu thị số lượng các quyết định đúng liên tiếp tạo ra, tiếp theo sau là số lượng các quyết định sai liên tiếp, rồi lại các quyết định đúng liên tiếp được tạo ra và cứ thế. Ví dụ chuỗi CorrectErrorRun 20, 5, 33, 6, 45,...
Từ chuỗi này có thể xác định được rằng: • 20 ký hiệu đầu tiên thu không bị lỗi • 5 ký hiệu tiếp theo bị lỗi
• 33 ký hiệu tiếp theo không bị lỗi • 6 ký hiệu tiếp theo bị lỗi
• 45 ký hiệu tiếp theo là đúng
Để xác định trạng thái đầu tiên của chuỗi CorrectErrorRun, chương trình mô phỏng được thiết kế để tất cả các ký hiệu đầu tiên được thu đúng. Vì vậy, bất cứ phần tử đầu tiên nào của chuỗi cũng sẽ được thu đúng, và tất cả các phần tử chẵn của chuỗi sẽ là thu sai. Từ đó có thể xác định được tỉ lệ lỗi bit trung bình BERave, bằng cách
2.Tính tổng của các phần tử trong chuỗi 3.Lấy tỉ số của (1) chia cho (2)