C pP , ta cú thể viết nhƣ
5.2 Giới thiệu một vài vớ dụ sử dụng cụng cụ mụ phỏng xDSLsimu3.
First
Thử nghiệm đầu tiờn mụ phỏng VDSL sử dụng cỏc trỡnh con và tiền tham số
Simple
Một vớ dụ chớnh về việc sử dụng cỏc định dạng đặc biệt (scenario và tfplan).
GUI_VDSL
Vớ dụ về sử dụng giao diện đồ hoạ ngƣời dựng cho mụ phỏng VDSL (GUI).
PBO
Chƣơng trỡnh mụ phỏng cho VDSL sử dụng PBO tham chiếu tần số. SDSL Examples
Chƣơng trỡnh đỏnh giỏ cỏc dịch vụ SDSL cú quan tõm đến cỏc giới hạn nhiễu và cỏc tốc độ bit cũng nhƣ khoảng cỏch tối đa cú thể đạt đƣợc. ADSL
Mụ phỏng cỏc performance numbers của ETSI ADSL VDSL
Mụ phỏng cỏc performance numbers của ETSI VDSL
First Example
Đõy là chƣơng trỡnh đầu tiờn chỉ ra cỏch thức mụ phỏng một VDSL sử dụng cỏc trỡnh con và cỏc định dạng cú sẵn. Để chạy chƣơng trỡnh đầu tiờn, ta chuyển thƣ mục làm việc về src\examples\first và gừ startup <ENTER> trong cửa sổ lệnh của MATLAB. Đõy là đoạn chƣơng trỡnh hƣớng dẫn Matlab cỏc thƣ mục cần thiết để tiến hành một mụ phỏng. Tiếp sau đú chạy chƣơng trỡnh
Luận văn tốt nghiệp cao học Trần Trung Tuyến Trung Tuyến
Khi này sẽ cú một vài tham số ra dƣới dạng text trờn cửa sổ lệnh (bao gồm cỏc tốc độ bit ở cả hai phớa NT và LT cũng nhƣ tỷ lệ tốc độ bit hƣớng xuống và hƣớng lờn) và một vài cửa sổ đồ hoạ.
Hỡnh đầu tiờn sẽ thể hiện sơ đồ mạng của kịch bản.
Hỡnh thứ hai thể hiện mặt nạ PSD đƣợc sử dụng cho dịch vụ VDSL đang mụ phỏng. Tiếp theo đú là cỏc hỡnh minh hoạ PSD của mỗi dịch vụ đó đƣợc tớnh toỏn tại cỏc đầu NT và LT bao gồm mật độ phổ cụng suất tớn hiệu nhận, mật độ phổ cụng suất nhiễu alien và nhiễu tổng.
Sau đõy là một vài mụ tả ngắn về chƣơng trỡnh
Chƣơng trỡnh bắt đầu với việc khởi tạo cấu trỳc của tham số vào ex nhƣ là một biến toàn cục. Tiếp theo là kiểm tra sự tƣơng thớch về mặt số học.
Tiếp đến là thiết lập cỏc thụng số mụ phỏng theo cỏc định dạng cú trƣớc:
scenario='FSAN scenario FTTEx #1';
Tờn của kịch bản (bao gồm topo mạng và lƣu lƣợng mạng). Tờn này phải phự hợp với một tờn nào đú trong danh sỏch kịch bản mà ta sẽ thiết lập trong phần tiếp theo.
gui.vdslDuplex = 'VDSL-FDD';
Xỏc định tờn của kế hoạch thời gian/tần số (time/frequency plan) đƣợc sử dụng trong kịch bản. Tờn này cũng phải phự hợp với một tờn nào đú trong danh sỏch kế hoạch thời gian/tần số mà ta sẽ thiết lập trong phần tiếp theo.
ex.param = setupParam;
Thiết lập cỏc giỏ trị mặc định cho cỏc tham số mụ phỏng, cỏc tham số này đƣợc lƣu trong cấu trỳc ex.param .
Trong hai dũng tiếp theo, danh sỏch cỏc kế hoạch thời gian/tần số đƣợc thiết lập bằng việc đƣa vào cỏc định dạng về HAM band và một vài nhiễu loạn từ cỏc dịch vụ khỏc. Điều này là cần thiết bởi vỡ cỏc dịch vụ đang cựng tồn tại trờn mạch vũng đang xột cũng là cỏc nguồn gõy nhiễu loạn lờn dịch vụ ta đang khảo sỏt
[ex.tfplist, ex.param.HAMBandName] = itu_tfplanHAM([]); ex.tfplist = fsan_modelsMISC(ex.tfplist);
Luận văn tốt nghiệp cao học Trần Trung Tuyến Trung Tuyến
Hai dũng tiếp theo thiết lập một danh sỏch cỏc định dạng về mó đƣờng truyền của cỏc dịch vụ xDSL đang khảo sỏt.
ex.lclist = setupLClist;
ex.lclist = etsi_lcdefsADSL(ex.lclist);
Một danh sỏch cỏc định dạng cỏp cần thiết để đặc trƣng cho cỏc đặc tớnh mạch vũng cũng đƣợc thiết lập:
ex.clist = etsi_cables([]);
Dũng lệnh sau sẽ thực hiện việc thờm cỏc kế hoạch thời gian/tần số của cỏc dịch vụ đang khảo sỏt (modem) vào danh sỏch.
ex.tfplist = etsi_tfplansVDSL(ex.tfplist);
Tiếp đến, một danh sỏch cỏc kịch bản (traffic/topology) sẽ đƣợc khởi tạo:
gui.ttlist = fsan_loopsVDSL([]);
Cõu lệnh sau giỳp ta lấy một kịch bản cụ thể từ danh sỏch cỏc kịch bản.
ex.tt = getList(gui.ttlist,scenario);
Vài dũng cuối trong phần khởi tạo nhằm xỏc định những dịch vụ nào sẽ đƣợc nghiờn cứu trong mụ phỏng và kế hoạch thời gian/tần số nào đƣợc sử dụng cho cỏc dịch vụ này. Danh sỏch cỏc modem khảo sỏt đƣợc lƣu trong
ex.param.modemlist qua cõu lệnh:
ex.param.modemlist=['VDSL';'ADSL'];
Và cỏc dũng lệnh sau nhằm mục đớch ghộp tờn dịch vụ vào một kế hoạch thời gian/tần số cụ thể đó xỏc định: xDSL=getList(ex.param.xDSLlist,'VDSL'); xDSL.used=gui.vdslDuplex; ex.param.xDSLlist=setList(ex.param.xDSLlist,xDSL.name,xDSL); xDSL.name='ADSL'; xDSL.used='ADSL'; ex.param.xDSLlist=insertList(ex.param.xDSLlist,xDSL);
Sau khi đó xỏc định xong cỏc kịch bản mụ phỏng, bƣớc đầu tiờn tiến hành mụ phỏng là ta thể hiện cấu trỳc mạng trờn màn hỡnh đồ hoạ cựng với mặt nạ PSD của modem VDSL
Luận văn tốt nghiệp cao học Trần Trung Tuyến Trung Tuyến
figure(1);
plotTTstructure(ex.tt);
% Thể hiện mặt nạ PSD của modem
tfplan = getList(ex.tfplist,gui.vdslDuplex); figure(2);
gui.fax.min=1e3; gui.fax.max=12e6; plotTFplan(tfplan,'Lin',gui.fax); drawnow; % vẽ
Sau đú chƣơng trỡnh sẽ thực hiện tớnh toỏn bằng việc gọi trỡnh con
evalExperiment cỏc kết quả sẽ đƣợc trả về trong cấu trỳc result bao gồm tớn hiệu và nhiễu của mỗi modem tại phớa NT cũng nhƣ LT.
result = evalExperiment;
Bƣớc tiếp theo là thể hiện cỏc kết quả số trong cửa sổ lệnh
format compact [bitrate_LT, bitrate_NT]=calcXDSLresult(ex,result); sprintf('LT Rates') bitrate_LT sprintf('NT Rates') bitrate_NT sprintf('Ratio') bitrate_NT./bitrate_LT
Cuối cựng, cỏc kết quả mụ phỏng bao gồm cỏc tớn hiệu nhận đƣợc và nhiễu ở cả hai đầu modem sẽ đƣợc thể hiện trờn màn hỡnh đồ hoạ:
for current=1:length(result), figure;
% Plot the LT side
subplot(211) x=result{current};
tmp_str=sprintf('Simulation Result, Modem %d (%s-%s)\n',... current,...
ex.tt.topology{x.Modem.LT_Node}{3},... ex.tt.topology{x.Modem.NT_Node}{3}); plotResult(ex,result,current,'LT',[],[],tmp_str);
% Plot the NT side
subplot(212)
tmp_str=sprintf('%s-%s\n',...
Luận văn tốt nghiệp cao học Trần Trung Tuyến Trung Tuyến ex.tt.topology{x.Modem.NT_Node}{3}); plotResult(ex,result,current,'NT',[],[],tmp_str); end Simple Example
Để chạy chƣơng trỡnh đầu tiờn, ta chuyển thƣ mục làm việc về
src\examples\first và gừ startup <ENTER> trong cửa sổ lệnh của MATLAB. Đõy là đoạn chƣơng trỡnh hƣớng dẫn Matlab cỏc thƣ mục cần thiết để tiến hành một mụ phỏng. Tiếp sau đú chạy chƣơng trỡnh ExMain.m. Chƣơng trỡnh này khỏ giống với chƣơng trỡnh trờn, chỉ khỏc phần thiết đặt thụng số ban đầu. Trong trỡnh con ExMain.m cú sử dụng userDefinitionsExample1.m để khởi tạo cỏc tham số cú thể thay đổi do ngƣời dựng. Sau khi xỏc định xong kịch bản chớnh của mụ phỏng bao gồm cỏc thụng số mụ phỏng chung, danh sỏch cỏc kế hoạch thời gian/tần số, xỏc định cỏp, mó đƣờng truyền, trỡnh con
userDefinitionsExample1.m sẽ giỳp xỏc định cỏc thụng số do ngƣời sử dụng thiết lập:
Thờm một kế hoạch thời gian/tần số vào danh sỏch
[ex.tfplist, ex.param.HAMBandName] = etsi_tfplanHAM(ex.tfplist);
Xỏc định tờn kịch bản, tờn dịch vụ, khởi tạo danh sỏch kịch bản (traffic/topology)
gui.scenario = 'My own Scenario'; gui.vdslDuplex = 'VDSL-XXX'; gui.ttlist = [];
Trong bƣớc tiếp theo, tham số ex.param.xDSLlist đƣợc đặt cụ thể (‗VDSL‘) và phải phự hợp với một kế hoạch thời gian/tần số ‗VDSL-XXX‘
xDSL=getList(ex.param.xDSLlist,'VDSL'); xDSL.used=gui.vdslDuplex;
ex.param.xDSLlist=setList(ex.param.xDSLlist,'VDSL',xDSL);
Tiếp theo sử dụng hàm getList để thờm cỏc kế hoạch thời gian/tần số mặc định vào danh sỏch và sau đú là sửa đổi chỳng theo yờu cầu ngƣời dựng:
tmp_tfplan=getList(ex.tfplist,ex.param.HAMBandName); % khởi tạo tmp_tfplan
tmp_tfplan.name=gui.vdslDuplex;
tmp_tfplan.PSD.downstream ='calcPSD([.3e6 -160 .3e6 -60 3.5e6 -60 3.5e6 - 160],''Linear'',ex.param.frequency.f)';
Luận văn tốt nghiệp cao học Trần Trung Tuyến Trung Tuyến 160],''Linear'',ex.param.frequency.f)'; tmp_tfplan.timeDivision.up=1; tmp_tfplan.timeDivision.down=1; tmp_tfplan.timeDivision.sync=1; tmp_tfplan.PSD.PBO.method='None'; tmp_tfplan.PSD.PBO.param.freq=2e6; tmp_tfplan.PSD.PBO.param.len=0; tmp_tfplan.PSD.PBO.param.maxlen=500; tmp_tfplan.lcname='VDSL-theo'; tmp_tfplan.PSD.active.upstream=[0.3e6 10e6]; tmp_tfplan.PSD.active.downstream=[0.3e6 10e6]; tmp_tfplan.PSD.HAM.active=1; ex.tfplist=insertList(ex.tfplist,tmp_tfplan);
Lƣu ý rằng sau khi thực hiện cỏc dũng lệnh trờn một kế hoạch thời gian/tần số mới sẽ đƣợc định nghĩa và thờm vào danh sỏch bằng hàm insertList
Trong bƣớc tiếp theo ta sẽ thay đổi một vài thụng số về mó đƣờng truyền:
lc=getList(ex.lclist,tmp_tfplan.lcname); lc.param.efficiencyLoss=0.15;
ex.lclist=setList(ex.lclist,lc.name,lc); lcPrintTheo(lc);
Sử dụng hàm getList để lấy mó đƣờng truyền từ danh sỏch. Sau đú tiến hành thay đổi cỏc giỏ trị, cuối cựng sử dụng hàm setList để đƣa mó đƣờng truyền đó thay đổi trở lại danh sỏch. Dũng lệnh cuối cựng ở trờn cú nhiệm vụ in tờn mó đƣờng truyền ra cửa sổ lệnh MATLAB.
Cỏc dũng lệnh sau sẽ xỏc định cấu trỳc kịch bản (traffic/topology ) mụ phỏng % Use our own scenario
tt.name=gui.scenario; tt.topology={{0, '', 'CO', ''},... {500, 'DTAG_40o', 'N1', '500m'},... {500, 'DTAG_40o', 'N2', '500m'},... {500, 'DTAG_40o', 'N3', '500m'},... {1500, 'DTAG_40o', 'C', '1500m'},... {500, 'DTAG_40o', 'N4', '500m'}};
% Từ node tới node, tfplan, no gui.modems
tt.traffic= {{1, 2, 'VDSL', 3},... {1, 2, 'ADSL', 4},... {1, 3, 'VDSL', 4},...
{1, 4, 'ISDN-2B1Q', 3},... {1, 4, 'ADSL', 1},...
Luận văn tốt nghiệp cao học Trần Trung Tuyến Trung Tuyến
{1, 5, 'HDSL-1', 3},... {5, 6, 'VDSL', 3},... {5, 6, 'ADSL', 4}};
gui.ttlist=insertList(gui.ttlist,tt); % Thờm vào danh sỏch (dựng cho GUI)
ex.tt=tt; % Xỏc định cấu trỳc tt
Cõu lệnh cuối cựng trong userDefinitionsExample1.m nhằm thiết lập danh sỏch modem cần khảo sỏt (ở đõy ta chỉ khảo sỏt modem VDSL).
ex.param.modemlist=['VDSL'];
Example GUI_VDSL
Đõy là một vớ dụ cho việc sử dụng giao diện đồ hoạ cho mụ phỏng VDSL. Để tiến hành mụ phỏng ta gọi trỡnh uiMain.m ở thƣ mục examples/GUI_VDSL.
Cỏc tham số vào
Luận văn tốt nghiệp cao học Trần Trung Tuyến Trung Tuyến
Hỡnh 5.1
Với giao diện nà ta cú thể lựa chọn một kịch bản trong số cỏc kịch bản FSAN đó đƣợc định nghĩa sẵn. Việc thiết lập lƣu lƣợng và topo mạng cho kịch bản cũng đƣợc thực hiện ở đõy. Trong danh sỏch lựa chọn thứ hai cho phộp ta lựa chọn một mụ hỡnh nhiễu FSAN đó đƣợc định nghĩa từ trƣớc để ỏp dụng vào kịch bản. Danh sỏch thứ 3 cho phộp lựa chọn phƣơng thức truyền dẫn của modem VDSL. Mặt nạ phổ của phƣơng thức này sau đú sẽ đƣợc thể hiện trờn màn hỡnh đồ hoạ. Tiếp đến là lựa chọn phƣơng thức PBO VDSL, cú 4 phƣơng thức đó đƣợc định nghĩa sẵn: tham chiếu độ dài (RefLen), tham chiếu tần số (RefFreq), tham chiếu nhiễu (RefNoise) và tham chiếu FEXT (RefFEXT).
Luận văn tốt nghiệp cao học Trần Trung Tuyến Trung Tuyến
Nếu khụng muốn sử dụng PBO thỡ chọn ‗none‘. Cú hai tham số PBO cần phải thiết lập: độ dài (cho phƣơng phỏp RefLen, RefFEXT), tần số (RefFreq). Với phƣơng phỏp RefFreq, thỡ cần phải cho trƣớc độ dài tối đa.
Trong trƣờng hợp sử dụng phƣơng thức truyền song cụng phõn chia thời gian thỡ cần phải chọn khoảng thời gian phõn định hƣớng lờn và hƣớng xuống (nếu dựng phƣơng thức phõn chia theo tần số thỡ chọn 1 và 1)
Trong chƣơng trỡnh này ta phải thiết lập 3 cờ:
Fast calculation: Xỏc định phƣơng thức tớnh toỏn
Forces HAM band : Xỏc định xem band HAM cú đƣợc thể hiện trờn mặt nạ PSD VDSL khụng.
Test modem:
Ngoài ra ta cũn cú thể thay đổi một vài giỏ trị của tham số đầu vào chung: Nhiễu nền (dBm/Hz)
SNR tối đa cho phộp (dB)
NEXT, FEXT và xuyờn nhiễu mạch thứ 3(3cXT) ở mức tần số 1MHz.
Cỏc tham số ra
Sau khi thực hiện tớnh toỏn, cỏc kết quả đƣợc đƣa ra trờn màn hỡnh đồ hoạ bao gồm cỏc thụng số về tốc độ bit và cỏc đƣờng cong tớn hiệu, nhiễu ở cả hai phớa NT, LT.
ở danh sỏch gúc trờn cựng bờn trỏi, cho phộp ta lựa chọn vẽ từ bất kỳ modem đƣợc mụ phỏng nào. Bằng việc nhấn nỳt PlotIt, modem này sẽ đƣợc vẽ lại ở một cửa sổ riờng, vỡ thế cho phộp ta tiến hành một vài thao tỏc khỏc nhƣ zooming…
Trong cửa sổ kết quả:
Màu lơ biểu thị cho tớn hiệu nhận đƣợc. Màu đỏ biểu thị cho nhiễu tổng
Màu xanh biểu thị cho nhiễu alien.