So sánh BER của 2 phương pháp lựa chọn băng tần thích nghi dựa vào SNR và dựa và cơng suất. Ở đây ta chỉ dừng lại ở việc mơ phỏng hệ thống MC-CDMA lựa chọn một băng tần tốt nhất để truyền , tức là chọn một sĩng mang tốt nhất để truyền tồn bộ dữ liệu của user trong 16 sĩng mang.
Nhận xét:
Dựa vào chương trình mơ phỏng ta thấy BER của phương pháp lựa chọn băng tần thích nghi dựa vào cơng suất tốt hơn so với BER của phương pháp lựa chọn băng tần dựa vào SNR. Lý do là SNR phụ thuộc vào tầm động của nhiễu giao thoa từ các user khác để chọn lựa băng tần, giá trị SNR khơng phải là cơ sở tốt để biễu diễn điều kiện kênh truyền . Mặc khác cơng suất chuẩn hĩa độc lập với hệ số chọn lọc băng tần và tương quan giữa các mức cơng suất chuẩn hĩa phụ thuộc vào điều kiện kênh truyền. Do đĩ, việc lựa chọn băng tần dựa trên cơng suất là cơ sở tốt hơn để chọn kênh truyền cho việc truyền dữ liệu.
Chương 5: KẾT QUẢ TÍNH TỐN VÀ MƠ PHỎNG Chương trình mơ phỏng:
Hình 5.12 BER cho hệ thống 1/16 5.6 Kết luận chương
Dựa vào chương trình mơ phỏng các phương pháp điều khiển cơng suất trong hệ thống MC-CDMA, phương pháp dự đốn (predictive) ưa điểm nhất do điều khiển cơng suất qua 2 bước sẽ điều khiển cơng suất phát của máy di động chặt chẽ hơn dưới kênh truyền fading. Đồng thời áp dụng kỹ thuật điều chế thích nghi vào trong hệ thống MC-CDMA với phương pháp lựa chọn băng tần dựa vào cơng suất sẽ cải thiện được các giá trị BER so với hệ thống MC-CDMA sử dụng tồn bộ các sĩng mang phụ để truyền.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI Kết luận
Kỹ thuật MC – CDMA là một kỹ thuật rất mới đang được nghiên cứu mạnh mẽ trên tồn thế giới với khả năng truyền tốc độ cao, tính bền vững với fading chọn lọc tần số, sử dụng băng thơng hiệu quả, tính bảo mật cao và giảm độ phức tạp của hệ thống do thừa hưởng tất cả những ưu điểm của CDMA và OFDM. MC-CDMA là một cho hệ thống thơng tin di động trong tương lai. Chính vì vậy, việc tìm hiểu về ĐIỀU KHIỂN CƠNG SUẤT TRONG HỆ THỐNG MC – CDMA là cần thiết và cĩ ý nghĩa thực tế.
Trong đồ án này đề cập một cách tổng quan về kỹ thuật CDMA, OFDM và kết hợp hai kỹ thuật CDMA với OFDM thành kỹ thuật mới gọi là MC-CDMA Và nêu lên được những ưu điểm, khuyết điểm của kỹ thuật MC-CDMA. Từ những ưu điểm của MC-CDMA đem lại khắc phục những khuyết điểm của cơng nghệ CDMA và kỹ thuật OFDM. Cịn chương trình mơ phỏng đã thể hiện ý đồ mơ phỏng. Đĩ là đưa ra các ưa điểm và nhược điểm của các phương pháp điều khiển cơng suất dựa trên sự so sánh về cơng suất phát, SNR, BER của bước cố định (fixstep), đa mức (multilevel), dự đốn trước(predictive), đồng thời ứng dụng thêm phương pháp điều chế thích nghi vào hệ thống MC-CDMA.
Tuy nhiên trong quá trình tìm hiểu về kỹ thuật MC-CDMA cịn cĩ nhiều hạn chế, thiếu sĩt. Em sẽ cỗ găng tìm hiểu thêm.
Hướng phát triển đề tài
+ Tìm hiểu về ứng dụng kỹ thuật MC-CDMA trong việc cải thiện chất lượng đường truyền, sử dụng tín hiệu CI trong hệ thống MC-CDMA.
+ Xây dựng hệ thống thơng tin kết hợp giữa kỹ thuật MC-CDMA và anten thơng minh để cải thiện chất lương kênh truyền tốt hơn.
+ Trong phần mơ phỏng thì xây dựng hệ thống hồn chỉnh hơn (như cĩ khối mã hố…), cho nhiều loại nhiễu tác động đến hệ thống hơn, trong hệ thống DS-CDMA
sử dụng thêm máy thu Rake cịn hệ thống MC-CDMA thì sử dụng các kỹ thuật tách sĩng(ORC, EGC, MRC và MMSEC).
Một lần nữa em xin chân thành cảm ơn thầy Nguyễn Duy Nhật Viễn, cùng các thầy cơ trong khoa Điện tử-Viễn thơng trường Đại học Bách khoa Đà Nẵng cùng tất cả các bạn đã giúp đỡ em rất nhiều trong nhưng năm học vừa qua.
Người thực hiện
PHỤ LỤC
Phụ Lục
%% %%%CHUONG TRINH DIEU KHIEN CONG SUAT BUOC CO DINH%%%%% %%%%%%%%%%%%% NUT BUOC CO DINH%%%%%%%%%%%%%%%%% function pushbutton1_Callback(hObject, eventdata, handles)
congsuatphat=str2double(get(handles.edit2,'string')); user=str2double(get(handles.edit1,'string'));
In=14.200; % cong suat nhieu ,In = No*B/nc,No laf mat do cong suat nhieu,B bang tan moi song mang
nc=8.000;
%congsuatcuatungsongmang;
deltaP=0.500; %buoc dieu khien cong suat
NumAngles=2^4; Length=2^8; symbolRate=9.6; NumWaveforms=2; carrierFreq=1.2286; Velocity=36;
C=3e8;
alpha=RayCh1(NumAngles, Length, symbolRate, NumWaveforms,carrierFreq, Velocity); sipow = tinhieu(user);
sigpower1=congsuatphat; %sigpower=abs((20*log(out))/4 phuong phap fixed-step sigpower2=congsuatphat; %phuong phap multi-level
G=8.000;
snrchuan=abs(G/user); % gia tri snr chuan Y1=[]; Y2=[]; e=0.025*deltaP; deltaP1=0.250; for i=1:80 alpha1=randint(1,1,[975 980])*1e-03; snr1=(sigpower1*alpha1^2*G)/((user-1)*sigpower1+In); Y1(i)=sigpower1; if snr1 >= snrchuan sigpower1= sigpower1-deltaP; else sigpower1=sigpower1+deltaP; end end Y=Y1; bar([Y]','group'); xlabel('time(x1.25msec)'); ylabel('cong suat phat(dB)'); title('fixstep');
grid on
%%%%%%%%%CHUONG TRINH DIUE KHIEN CONG SUAT DA MUC%%%%%%%% %%%%%%%%%%%%%%%%% NUT AN DA MUC%%%%%%%%%%%%%%%%%% function pushbutton2_Callback(hObject, eventdata, handles)
congsuatphat=str2double(get(handles.edit2,'string')); user=str2double(get(handles.edit1,'string'));
PHỤ LỤC
In=14.200; % cong suat nhieu ,In = No*B/nc,No laf mat do cong suat nhieu,B bang tan moi song mang
nc=8.000;
deltaP=0.500; %buoc dieu khien cong suat alpha=0.94;
sipow = tinhieu(user);
sigpower1=congsuatphat; %sigpower=abs((20*log(out))/4 phuong phap fixed-step sigpower2=congsuatphat; %phuong phap multi-level
G=8.000;
snrchuan=abs(G/user); % gia tri snr chuan Y1=[]; Y2=[]; e=0.025*deltaP; deltaP1=0.250; for i=1:80 alpha2=randint(1,1,[975 960])*1e-03; snr2=(sigpower2*alpha2^2*G)/((user-1)*sigpower2+In); Y2(i)=sigpower2; if snr2-snrchuan < -5*e sigpower2=sigpower2+3*deltaP1; elseif snr2-snrchuan <-3*e
sigpower2=sigpower2+2*deltaP1; elseif -3*e <= snr2-snrchuan < -e sigpower2=sigpower2+deltaP1; elseif -e <=snr2-snrchuan < e sigpower2=sigpower2;
elseif e <= snr2-snrchuan < 3*e sigpower2=sigpower2 -deltaP1; else sigpower2=sigpower2-2*deltaP1; end end y2=Y2; bar([y2]','group'); xlabel('time(x1.25msec)'); ylabel('cong suat phat(dB)'); title('multilevel');
grid on;
%%%%%%%%%%CHUONG TRINH DIEU KHIEN CONG SUAT DA MUC%%%%%%% %%%%%%%%%%%%%%%%%NUT AN DA MUC%%%%%%%%%%%%%%%%%%% function pushbutton3_Callback(hObject, eventdata, handles)
congsuatphat=str2double(get(handles.edit2,'string')); user=str2double(get(handles.edit1,'string'));
In=14.200; % mat do cong suat nhieu
nc=8.000; %so song mang ,bang he so do loi deltaP=0.0250; %buoc dieu khien cong suat %alpha=0.95 ;
PHỤ LỤC
cuongdo=tinhieu(user)
sigpower2=congsuatphat-1; %phuong phap multi-level G=32.000;
snrchuan=abs(G/user); % gia tri snr chuan Y1=[]; Y3=[]; e=0.5*deltaP; Pbit=1; sigpowerI=In*(snrchuan)/(G-(snrchuan)*(user-1)); [tetra,r]=gtdelta(Pbit); gama=1.3; for i=1:80 %snr2=(sigpower2*alpha^2*G)/(3*sigpower2+In); Y3(i)=sigpower2; alpha=randint(1,1,[981 965]); alpha1=alpha*1e-03;
if (tetra <=0) & (r<=0) % dieu khien de du doan rama(i)=Pbit-tetra;
else
rama(i) =Y3(i)*alpha1^2-sigpowerI; end
if (rama(i) < -5*e) %phuong phap tinh C sigpower2=sigpower2+3*deltaP;
elseif (rama(i) < -3*e)
sigpower2=sigpower2+2*deltaP; elseif (-3*e <= rama(i) < -e) sigpower2=sigpower2 + deltaP; elseif (-e<=rama(i)< e)
sigpower2=sigpower2; elseif ( e <= rama(i) < 3*e) sigpower2=sigpower2-deltaP; else sigpower2=sigpower2-2*deltaP; end end y=Y3*gama; bar([y]','group'); xlabel('time(x1.25msec)'); ylabel('cong suat phat(dB)'); title('predictive');
grid on;
%%%%%%%%%% CHUONG TRINH SO SANH DIEU KHIEN CONG SUAT%%%%% %%%%%%%%% %% CHUONG TRINH CONG SUAT PHAT%%%%%%%%%%%%% function pushbutton1_Callback(hObject, eventdata, handles)
cla(handles.axes1)
user=str2double(get(handles.edit1,'string'));
PHỤ LỤC [Y1,Y2]=dkcs1(user,congsuatphat); Y3=csdudoan(user,congsuatphat); i=1:1:80; %bar([Y1]','grouped') hold on plot(i,Y1,'r-'); plot(i,Y2,'k-'); plot(i,Y3,'b*-'); %axis([0, 80,13, 20]); xlabel('time(x1.25msec)'); ylabel('cong suat phat(dB)');
legend('buoc co dinh','da muc','du doan'); grid on
hold off
%%%%%%%%%%%%%%%% CHUONG TRINH SO SANH SRN%%%%%%%%%%% %% %%%%%%%%%%%%%%%%NUT AN SO SANH SRN%%%%%%%%%%%%% function pushbutton2_Callback(hObject, eventdata, handles)
cla(handles.axes1) user=str2double(get(handles.edit1,'string')); congsuatphat=str2double(get(handles.edit2,'string')); [Y1,Y2]=dkcssnr(user,congsuatphat); Y4=dkdudoansnr(user,congsuatphat); i=1:1:80 hold on plot(i,Y1,'r-'); plot(i,Y2,'k-'); plot(i,Y4,'b-'); %axis([0, 80,3,4]); xlabel('time(x1.25msec)'); ylabel('SNR(dB)');
legend('buoc co dinh','da muc','du doan'); grid on
hold off
% %%%%%%%%%%CHUONG TRINH SO SANH BER%%%%%%%%%%%%%%%% function pushbutton3_Callback(hObject, eventdata, handles)
cla(handles.axes1) user=str2double(get(handles.edit1,'string')); congsuatphat=str2double(get(handles.edit2,'string')); y1=nhapthu(user,congsuatphat); y2=nhapthu2(user,congsuatphat); y3=nhapthu3(user,congsuatphat); hold on axis([5,user,1e-05,1e-01]); semilogy(y1,'r-'); semilogy(y2,'k-'); semilogy(y3,'b-'); %axis([5,user,1e-05,1e-01]);
PHỤ LỤC %axis([4,50,1e-05,1e-01]); %axis([5,user,1e-05,1e-01]); grid on hold off xlabel('number of Users');ylabel('BER'); legend('du doan','buoc co dinh','da muc'); grid on
hold off
%%%%%%%%%% %CHUONG TRINH BASED BANH%%%%%%%%%%%%%%%% %%%%%%%%%%%NUT AN SNR BASED BAND SELECTION%%%%%%%%%%% %%%%%%%%%%%CHUONG TRINH BASE BAND SELECTION%%%%%%%%%% function pushbutton1_Callback(hObject, eventdata, handles)
user=str2double(get(handles.edit1,'string')); congsuat=str2double(get(handles.edit2,'string')); Y=thu(user,congsuat);
H=3000000; for i=1 : user for j=1:8 Y1(i,j)=Y(i,j)/(sum(Y(:,j))-Y(i,j)); end y2(i)=max(Y1(i,:)) ; end b=y2; for i=1:user
%syms y1(i) positive; S(i)=qfunc(b(i)); end f=S; syms y real for i=1:user %P2(i)=int(S,y,0,inf) F= mvnpdf(y); P1=int(F,y,0,inf); P(i)=P1*f(i); k(i)=i^3*(double(P(i)))/H; %P(i)=single(P1(i)) end v2=k; semilogy(v2,'k*-.') xlabel('Number of User'); ylabel('BER');
title('BER cho he thong 1/16'); axis([5,15,1e-06,1e-01]); grid on
% --- Executes on button press in pushbutton2.
%%%%%%%%%%%CHUONG TRINH POWER BASED BAND SELECTION%%%%%% function pushbutton2_Callback(hObject, eventdata, handles)
PHỤ LỤC user=str2double(get(handles.edit1,'string')); congsuat=str2double(get(handles.edit2,'string')); Y=thu(user,congsuat); H=1000000; for i=1:user y1(i)=max(Y(i,:)); end for i=1:user
%syms y1(i) positive; b(i)=y1(i)/(sum(y1)-y1(i)) S(i)=qfunc(b(i)); end f=S; syms y real for i=1:user %P2(i)=int(S,y,0,inf) F= mvnpdf(y); P1=int(F,y,0,inf); P(i)=P1*f(i); k(i)=i^2*(double(P(i)))/H; %P(i)=single(P1(i)) end v1=k; semilogy(v1,'m+-') xlabel('Number of User'); ylabel('BER');
title('BER cho he thong 1/16'); axis([5,15,1e-06,1e-01]); grid on
%%%%%%%%%%%%%%%%%%CHUONG TRINH SO SANH%%%%%%%%%%% function pushbutton3_Callback(hObject, eventdata, handles)
user=str2double(get(handles.edit1,'string')); congsuat=str2double(get(handles.edit2,'string')); v1=thu2(user,congsuat); v2=thu3(user,congsuat); hold on i=1:1:user
title('BER cho he thong 1/16'); semilogy(i,v1,'b*-.'); semilogy(i,v2,'r+-.'); axis([5,15,1e-6,1e-1]); xlabel('Number of User'); ylabel('BER'); axis([5,user,1e-06,1e-01]);
legend('SNR-Based Band Selection','Power-Based Band Selection'); grid on
TÀI LIỆU THAM KHẢO
Các tạp chí Bưu Chính Viễn Thơng
Đặng Văn Thuyết & Nguyễn Tuấn Anh, “Cơ Sở lý thuyết truyền tin”
(Tập 1 và 2), Nhà xuất bản giáo dục,2000.
TS Nguyễn Phạm Anh Dũng, “Thơng tin di động thế hệ 3” (Tập 1 và
2), Tổng cơng ty bưu chính Việt Nam , 2001.
TS Nguyễn Phạm Anh Dũng, “Lý thuyết trải phổ và ứng dụng”, Học
viện cơng nghệ bưu chính Viễn Thơng.
PROAKIS J.G và SALEHIM “ Các hệ thống thơng tin hiện nay trình
bày thơng qua sử dụng MATLAB”
Đặng Ngọc Khoa& Thân Thanh Hương “ MATLAB VÀ ỨNG DỤNG
TRONG VIỄN THƠNG” nhà xuất bản quốc giai HƠ CHIIS MINH
Trang WEB “mathlab.com”
Khaled Fazel, Stefan Kaiser, “Multi-Carrier Spread Spectrum &
Related Topics”, Kluwer Academic Publishers, pp 211-218, 2000.
David J. Sadler, A. Manikas, “A Blind Array Receiver For Multicarrier DS-CDMA in Fading Channel”, IEEE Electronics Letters, Vol. 39, No. 6, Mar 2003.
S. Hara, R. Prasad, “Overview of Multicarrier CDMA”, IEEE
Communications Magazine, pp 126-133, Dec. 1997.
Clint Smith & Danien Collins,”3G Wireless Network” McGraw Hill-
Telecom.
Jean-Paul Linnatz, “Orthogonal Frequency Division
Multiplexing(OFDM)”, Colorado Stade University.