Cấu trúc của chương trình mô phỏng

Một phần của tài liệu (Luận văn thạc sĩ) bộ tách sóng đa người dùng sử dụng giải thuật MMSE luận văn ths kỹ thuật vô tuyến điện tử và thông tin liên lạc 2 07 00 (Trang 32)

Chương trình mô phỏng được tổ chức như sau:

Chương trình mô phỏng được viết trên MatLab 6.0. Hệ thống máy tính thực hiện: Pentium III 933 MHz, RAM: 256 MB.

6.2 Kết quả mò phỏng

6.2.1 Trường hựp hai người dùng

a) Giải thuật hình chiếu gradient:

Các thông số sau được lựa chọn cho trường hợp thử nghiêm này:

R = 1 0.5 0.5 1 A = / b = [ l , - l ] r n = [-0.3, 0 .3 ] r y = [0.2, -0.2]r

Điểm khởi tạo: b* = [ 1, 1 ]T

Nghiệm tối ưu cho trường hợp này là:

b* = R Ay = [0.4, -0.4] K ' = [ h - ư

Kết quả của các bước lặp được cho trong bảng dưới đây: ■ Số bước lặp thực hiện khi hội tụ = 12.

■ Giá trị kết thúc: b* = [0.4, -0 .4 ]7

■ Giá trị của hàm mục tiêu: Q(b) = -0.08

Sô bước lặp K d[ Lỗi

1 [1.0000, 1.0000] [0.2000,-0.2000] . -1.2600 2 [1.3165,0.5165] [0.2840,-0.7240] -0.2162 3 [1.1584,-0.8113] [-0.1668,-0.2382] -0.1814 4 [1.0335,-0.9653] [-0.0394,-0.0422] -0.1801 5 [1.0068,-0.9932] [-0.0016,-0.0016] -0.1800 6 [1.0014,-0.9986] [-0.0081,-0.0082] -0.1800 7 [1.0003,-0.9997] [0,-0.0003] -0.1800 39

8 [1.0001,-0.9999] [-0.0001,-0.0001] -0.1800 9 [1.0000,-1.0000] [0.0000, 0.0000] -0.1800 10 [1.0000,-1.0000] [0.0000, 0.0000] -0.1800 11 [1.0000,-1.0000] [-0.3000, 0.3000J -0.1800 12 [0.4000,-0.4000] [0.0000, 0.0000] 0 1 5 0 5 -0 5 -1 5

Điểm khởi tạo

/ "

Nghiệm tối ưu

-0 5 0.5

-1 5

Hình 6.1 Quá trình thưc thi giải thuật hình chiếu gradient

b) Giải thuật ạiảm theo độ dốc lớn nhất í 1 °-5ì ■ R = {0.5 1 J • A = / ■ b = [ l , - l f ■ Phương sai ơ 2 = 0.001.

y = [1.3191, -0.6589]7

Hình 6.2 Hội tụ củ a ve cto r trọng số

6.2.2 Trường hợp 100 ngưừi dùng

• Cùng công suất

• Chuỗi ký hiệu ngẫu nhiên N= 1(300

Kết quả mô phỏng ở hình 6.3. Thời gian chay chương trình 7 giờ 12 phút (với giải thuật MMSE tổng quát dùng phương pháp hình chiếu gradient); 4 giờ 23 phút (dùng giải thuật giảm theo độ dốc lớn nhất).

Hình 6.3 so sánh bộ tách sóng cổ điển dùng mạch lọc hoà hợp và bộ tách sóng đa người dùng sử dụng giải thuật MMSE. Kết quả mô phỏng cho thấy: ở miền SNR thấp, sự khác biệt không nhiều; tuy nhiên ở miền SNR cao hơn, phù hợp với các ứng dụng trong thực tế, thì bộ tách sóng đa người dùng dùng giải thuật MMES ưu việt hơn bộ tách sóng cổ điển rất nhiều.

Kết quả đạt được phù hợp với tính toán lý thuyết. Đồng thời kết quả này cũng tương tựu như kết quả mà Verdú đã đạt được bằng tính toán lý thuyết trong [2] trang 306.

SNR [dBỊ

Hình 6.3 Kết quà m ô p hỏ ng củ a hè thống: 100 ngưòi dùng, cùng

c ô n g suất, chuỗi ký hiệu trục tiếp ngâu nhiên N = 1000. Đường (+): bộ tá c h sóng c ổ điển, đường (o): bộ tá c h sống đ a người dùn g SỪ dụng giài th u ậ t MMSE.

KẾT LUẬN

Bản luận văn đã trình bày các vấn đề của bộ tách sónơ đa người dùng, đặc biệt quan tâm đến giải thuật MMSE. Ưu điểm nổi bật của bộ tách sóng đa người dùng sử dụng giải thuật MMSE so với các bộ tách sóng khác là: độ phức tạp tính toán không quá cao, kết quả gần với giới hạn về lý thuyết và dễ cài đặt trên phần cứng.

Các chứng minh về mặt lý thuyết cho thấy tính ưu việt hơn hẳn của bộ tách sóng đa người dùng so với bộ tách sóng cổ điển. Các giải thuật tối ưu đã được nghiên cứa chi tiết về đặc tính hội tụ và độ phức tạp tính toán.

Mô phỏns; được thực hiện với nhiều tình huống khác nhau, từ đơn giản tới tươnơ đối phức tạp. Kết quả mô phỏng cho thấy hoàn toàn phù hợp với lý thuyết, đồng thời cũng phù hợp với kết quả thu được của các tác giả khác. Tuy nhiên, do hạn chế về mặt thời gian, hiện tại bản luận văn này mới chỉ dừng lại ở việc xem xét bộ tách sóng đa người dùns; sử dụng giải thuật MMSE cho kênh thồng tin vô tuyến có nhiễu Gauss trắng cộng được. Việc nghiên cứu các đặc tính của bộ tách sóng này cho các kênh phading và hệ thống phức tạp hơn sẽ được tiếp tục phát triển trong giai đoạn tiếp theo.

PHỤ LỤC

Mã nguồn của chương trình mô phỏng

function [b, end_point] = GradientProjection(M ,Q,q,epsilon,maxlters) theflag = 0;

end_point = maxlters; b = zeros(M,maxIters); b (:,l) = ones(M ,l); b_opt = inv(Q)*q;

ObjOpt = 0.5*b_opt'*Q*b_opt - b_opt'*q; dist = zeros(M,maxIters);

for index = l:maxlters, I = eye(M,M); p_k = I - (b(:.index)*b(:,index)')/M; g_k = Q*b(:,index) - q; d_k = -P_k*g_k; dist(:,index) = d jk ; if (n o rm (d _ k ) < = e p silo n I th e fla g = = 1) g_k = Q *b(:,index) - q; if (g_k <= epsilon ) end_point = index; break; end alpha_k = (g_k'*g_k)/(g_k'*Q*g_k); alpha_steep(index) = alpha_k;

Value = b(:,index) + alpha_k*(-g_k); dist(:,index) = -g_k; theflag = 1; if (norm(Value)A2 > M) . end_point = index; break; else b(:,index+l) = Value;

Error(index) = ObjOpt - (0.5*b(:,index+l)'*... Q *b(:,index+l)-b(:,index+l)'*q);

end else

alpha_k = (d_k'*d_k)/(d_k'*Q*d_k); alpha_grad(index) = alpha_k;

x_k = b(:,index) + alpha_k*d_k; c l = 4*b(:,index)'*b(:, index); c2 = 4*b(:,index)'*x_k; c3 = x_k'*x_k - M; alpha_l = (-c2 + sqrt(c2*c2 - 4 * c l* c 3 ))/(2 * c l); alpha_2 = (-c2 - sqrt(c2*c2 - 4 * c l* c 3 ))/(2 * c l); if (abs(alpha_l) > abs(alpha_2)) alpha = alpha_2; else alpha = alpha_l; end

while (real(alpha) ~= alpha) d_k = dJc/2; x_k = b(:, index) + alpha_k*d_k; c l = 4*b(:,index)'*b(:,index); c2 = 4*b(:,index)'*x_k; c3 = x_k'*x_k - M; alpha_l = (-c2 + sqrt(c2*c2 - 4*cl*c3))/(2* alpha_2 = (-c2 - sqrt(c2*c2 - 4*cl*c3))/(2*c if (abs(alpha_l) > abs(alpha_2)) alpha = alpha_2; else al pha = a l p h a _ l ; end end b ( : , i n d e x + l ) = x _ k + 2 * a lp h a * b (:, index);

Error(index) = ObjOpt - (0.5*b(:,index+l Q *b(:,index+l)-b(:,index+l)'*q);

end end

b = b ( :,l:e n d _ p o in t) ;

Trưímg họp hai người dùng:

clear; m axlters = 13; R = [1 0.5;0.5 1]; y = R * [l - l ] ’+[-0.3 0 .3 ]’; b = zeros(2,maxIters); M = 2;

e p silo n = le -0 2 ; b ( : , l ) = [1,1] ; e n d _ p o in t = 0; Q =R; q =y; [b, Error] = GradientProjection(M,Q,q,epsilon,maxlters); Trường hợp 100 người dùng clear all; close all; clc; nLength = le3; nUsers = 100; nBits = 1; N = le5; s=(2*randint(nUsers,nLength,2)-1 )/sqrt(nLength); R=s*s'; eưors_M M SE=zeros( 1,40); errors_MatchFilter=zeros( 1,40); index=4; for S N R - 5 .5:.5:15 SNR in d e x = in d e x 4- 1; errors_M M SE(index) = 0; errors_MatchFilter(index) = 0; for i = l : 1 :N noiseVarPerBit = (10A(-SNR/10));

noiseSamples = ( sqrt(noiseVarPerBit) )*randn(l,nLength); n = s*noiseSamples';

b = 2*randint(nUsers,nBits.)-l;' y = R*b + n;

bout_M atchFilter = sign(y);

errors_MatchFilter(index) = errors_MatchFilter(index) + sum(b ~= bout_MatchFilter);

Q = R;

q = y;

epsilon = le-2; [br,end_point] =

GradientProjection 1 (nưsers,Q ,q,epsilon,5000); bout_M M SE = sign(br(:,end));

errors_MMSE(index) = errors_MMSE(index) + sum(b ~= bout_MMSE); end; end; ho ld off; plot(errors_MMSE/N/nUsers); plot(errors_MatchFilter/N/nUsers); hold on; 47

TÀI LIỆU T H A M K H Ả O

1. Sergio Verdú, Multiuser Detection, Cambridge University Press, 1998

2. Proakis, Digital Communications, 4th edition, New York: McGraw Hill, 2001 3. Papoulis, Probability, Random Variables, and Stochastic Processes, New

York: McGraw Hill, 1988

4. Jerry D. Gibson, The Communications Handbook, CRC Press, 1997

5. R. Lupas, S. Verdu, Linear Multiuser Detectors fo r Synchronous Code­ Division Multiple-Access Channels, IEEE Trans. Inform. Theory, vol. 35, January 1998

6. Predrag B. Rapajic, Deva K. Borah, Adaptive MMSE Maximum Likelihood CDMA Multiuser Detection, IEEE Journal on Selected areas in Communications, Vol 17, December 1999

7. Aylin Yener, Roy D. Yates and Sennur Ulukus, “A Nonlinear Programming Approach to CDMA Multiuser Detection" , Proceedings of 33rd Asilomar Conference on Signals, Systems and Computers, Pasific Grove, CA, October

1999.

8. David. G. Luenberger, "Linear and Non-Linear Programming", Addison Wesley Press, 1984

9. Alexandra Duel-Hallen, Jack Holtzman, Zoran Zvonar, Multiuser Detection fo r CDMA systems, IEEE Personal Communications, April 1995

10. Peter Jung, Paul Walter Baier and Andreas Steil , Advantages of CDMA and Spread Spectrum Techniques over FDMA and TDM A in cellular mobile radio applications, IEEE Transactions on vehicular technology, vol 42, August

1993

11. H. Vincent Poor, Sergio Verdu, Probability o f error in MMSE multiuser detection, IEE transactions on information theory, vol 43, May 1997

12. The economic impact of third-generation wireless technology, A report by the council of economic advisers, October 2000

13. IMT-2000 Report of the fifth meeting o f ITU-R working party 8F, ITTJ-R, August 2001.

14. Sergio Verdú, Multipe access for broadband wireless networks - Wireless bandwith in the making, IEEE Communications Magazin, July 2000

15. Sergio Verdú, H. V. Poor , J. B. Thomas, Multiuser detection, Advances in Statistical Signal Processing — Vol. 2: Signal Detection, Eds. Greenwich, CT: JAI Press, 1993.

16. Sergio Verdú, Minimum probability of error fo r asynchronous Gaussian multiple-access channels, IEEE Trans. Inform. Theory, vol. IT-32, Jan. 1986 17. Ư. Madhow, M.Honis, MMSE interference suppression fo r direct sequence

spread spectrum CDMA, IEEE Trans. Comm., vol 42, Dec. 1994

18. P.B. Rapajic, B. s. Vucetic, Linear adaptive transmitter-rec ever structures for asynchronous CDMA systems, IEEE 3rd Int. Symp. on Spread spectrum Tecniques and Aplications, Oulu, Finland, Jun 1994.

19. z. Xie, R. T. Short, c. K. Rushforth, A family o f sub optimum detectors for coherent multiuser communications, IEEE J. Select. Areas Commun. vol. 8, May 1990.

20. M. Honig, u. Madhow, s. Verdú, Blind multiuser detection, IEEE Trans. Inform. Theory, vol 41, July 1995.

Một phần của tài liệu (Luận văn thạc sĩ) bộ tách sóng đa người dùng sử dụng giải thuật MMSE luận văn ths kỹ thuật vô tuyến điện tử và thông tin liên lạc 2 07 00 (Trang 32)