Biểu diễn bài toán

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 28)

Vì chỉ có các phép toán tuyến tính được dùng cho thống kê y=Cy1, y MT),

ta có thể xác định sai số toàn phương trung bình của người dùng thứ j như sau:

với vv=(Wị, vvMr ) là các trọng số áp vào y. Trọng số w phải được tối ưu để cực tiểu hoá sai số toàn phương trung bình giữa các bit lối vào và tổ hợp có trọng số của thống kẻ lối vào. Biểu thức trên có thể viết thành:

bời vì các bit là +1 hoặc -1, và giả thiết là độc lập, ta có E^] 1 = 1. Hơn nữa, có thể giả sử rằng các bit lối vào là không tương quan với nhiễu. Để đơn giản biểu thức thứ hai của phương trình (5.2), ta định nghĩa vecto q như sau:

/ M y /;( w ) = £ (5.1) V Í=I / (5.2) ro ì (5.3)

ở phương trình trên, ta giả sử rằng các bit của các người dùng là không tương quan với nhau. Do vậy ta có:

q = R 'o > ( n A \P\ j Aj P * J Ai AJ ,0 > S’ 'O ■ XV.. V (5.4)

Hơn nữa, ta có biểu thức cuối cùng của (5.2) có thể được đơn giản thành:

£ Ị y y r Ị = £ Ị R A b b rA R Ị + £ { n n r } ( 5 . 5 )

Vì các bit lối vào là độc lập nên £ | b b r j = /. Do vậy:

£{yyr }= RA:R + Ơ:R (5.6)

T h ế (5.6) và (5.4) vào (5.2) ta được:

fj( w) = l-2q'vv+wr(R A 2R + crR )\v (5.7)

Sai số toàn phương truns bình trở thành dạng bậc hai. Nghiệm tối ưu có thể tim được bằng:

V J i w ) = -2q+ 2(R A 2R + c r R ) \v - 0 (5.8) dẫn tới

w opt - (R A 2R + c rR ) ‘q (5.9)

5.2 Phương pháp giám theo độ dốc lớn nhát

LỜI giải lặp cho bài toán tối ưu MMSE tuyến tính có thể đạt được dùng phương pháp giảm theo độ dốc lớn nhất. Để áp dụng phương pháp này, ta viết lại phương trình (5.7) như sau:

fj{ w) = - w Q w -q 'v v ( 5 . 1 0 )

với

Q = R A 2R + c rR

qr = [ Pu p Mj]Aj

Phép lặp của giải th u ật giảm theo độ dốc lớn nhất được đưa ra bởi [3] là: w*+, = w* + a k(-gk) (5.11) « » = - ể r - lc T (5.12) g[Qg* với gradient g^. là gi =V^.(w)r = Qw-q (5.13)

Vì ta giả sử rằng giá trị của ma trận tự tương quan Q = £ [ y y r ] và vector tươnơ quan chéo q = E[bj\} là đã biết (đặc biệt là R và cr phải biết trước). Trong rất nhiều trường hợp, những giá trị này không thể biết trước. Do vậy ta sẽ lấy trung bình theo thời gian thay vì lấy trung bình theo tập hợp. Khi đó, vector gradient g sẽ là:

g* = y ( k + ì) ( y ( k + ì) Ty/k-bj(k+\)) (5.14) giải thuật gradient trở thành:

w t+/ = w* + ự ( b j(k + \) - y ( k + l ) Tw k) y ( k + ì ) (5.15) Với ụ. là độ lớn của bước lặp. Vì giá trị tức thời được dùng nên ta cần phải biết giá trị của bj{ỉ) cho mỗi bước lặp. Có nhiều phương pháp để giải quyết tình huống này. Thông thường, người ta truyền đi một “chuỗi tập luyện” với

c á c giá trị b {i) đ ã biết trước.

Verdú [ 1J đã chỉ ra rằng, giải thuật này hội tụ toàn cục khi độ lớn của bước lập nhò hơn:

(5.16)

ơ + Ả,max

M

với Ẳmax là trị riêng cực đại của AlsksTk . Tốc độ hội tụ của mọi người dùng

* = l

đều giống nhau mặc dù sai số toàn phương trung bình không cần thiết phải giống nhau đối với các người dùng khác nhau.

5.3 Độ lớn của bước lặp thay đổi theo thời gian

Độ lớn của bước lặp xác định tốc độ hội tụ của giải thuật gradient. Nếu ỊJ.

lớn thì giải thuật hội tụ nhanh, nhưng sai số toàn phương trung bình lớn. Mật khác nếu chọn ỊU rất nhỏ sai số toàn phương trung bình nhỏ nhưng tốc độ hội tụ sẽ rất chậm. Giải pháp cho tình huống này là cho độ lớn của bước lặp thay đổi theo thời gian, tức là ban đầu dùng /Ẩ lớn, rồi sau đó giảm đán trong quá trình thực thi giải thuật:

ụ ự ) = ịấqỵ'1, i > 0 (5.17) Với / l à một số xấp xỉ 1 (nhưng nhỏ hơn 1) và là giá trị khởi tạo của ụ.

Giá trị của fẨQ được xác định tuỳ theo bài toán.

Chương 6 KẾT QUẢ MÔ PHỎNG

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

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 28)