移動通信系統(tǒng)課設(shè)——OFDM系統(tǒng)仿真_第1頁
移動通信系統(tǒng)課設(shè)——OFDM系統(tǒng)仿真_第2頁
移動通信系統(tǒng)課設(shè)——OFDM系統(tǒng)仿真_第3頁
移動通信系統(tǒng)課設(shè)——OFDM系統(tǒng)仿真_第4頁
移動通信系統(tǒng)課設(shè)——OFDM系統(tǒng)仿真_第5頁
免費預(yù)覽已結(jié)束,剩余13頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、移動通信系統(tǒng)課程設(shè)計報告OFDM系統(tǒng)仿真目錄移動通信系統(tǒng)課程設(shè)計報告1(一)題目要求:2(二)相關(guān)原理:21) OFDM : 22) QPSK 調(diào)制:33) 導(dǎo)頻與均衡:34) 循環(huán)前綴:35) 分組交織:4(三)基本思路:4(四)結(jié)果:111)軟解碼與硬解碼情況下不同信噪比的誤碼率: 112)不同信噪比下譯碼相位圖: 11(五)總結(jié)體會:12(六)分工合作:13(七)程序代碼:13(一) 題目要求:1) OFDM128 路傳輸;2) QPSK調(diào)制3) AWGN信道4) 3徑或4徑瑞利衰落信道(二)相關(guān)原理:1) OFDM :將信道分成若干正交子信道,將高速數(shù)據(jù)信號轉(zhuǎn)換成并行的低速子數(shù)據(jù)流,調(diào)

2、制到在每個子信道上進行傳輸。 正交信號 可以通過在接收端采用相關(guān)技術(shù)來分開, 這樣可以減少子信道 之間的相互干擾(ISI)。每個子信道上的信號帶寬小于信道的 相關(guān)帶寬,因此每個子信道上可以看成平坦性衰落, 從而可以 消除碼間串擾,而且由于每個子信道的帶寬僅僅是原信道帶寬 的一小部分,信道均衡變得相對容易。OFD肝載波頻譜5 3-800)-60004000-200002000400060003000頻率2) QPSK 調(diào)制:將每兩個相連比特組在一起形成雙比特碼元,它的四種狀態(tài)用4個不同的相位表示;3)導(dǎo)頻與均衡:在OFDM信息序列中插入已知的導(dǎo)頻序列x n ,通過信道后將其提取得y n ,做頻域

3、除法得傳輸函數(shù)H z = Y亙,再通Xz過線性插值后得到每個信道頻率響應(yīng),均衡濾波傳輸函數(shù)1Hz4)循環(huán)前綴:循環(huán)前綴(Cyclic Prefix, CP)是將OFDM符號尾部的信號搬移到頭部構(gòu)成的。用來消去碼間干擾,通常取長度 Tg (為信道沖激響應(yīng)持續(xù)時間)5)分組交織:為了解決成串的比特差錯問題,采用了交織技術(shù):把一條 消息中的相繼比特分散開的法,即一條信息中的相繼比特以非 相繼式發(fā)送,這樣即使在傳輸過程中發(fā)生了成串差錯, 恢復(fù)成 一條相繼比特串的消息時,差錯也就變成單個(或者長度很短) 的錯誤比特,這時再用信道糾正隨機差錯的編碼技術(shù)( FEC) 消除隨機差錯。糾錯數(shù)bmax D t(三

4、)基本思路:QPSK解調(diào). 解交織 ->卷枳洋碼> 誤碼率玩計說明:1)編碼:使用216卷積碼;相關(guān)代碼:%卷積編碼 %ori_data_t_1=reshape(ori_data_t,num_inf,2*channell); %58*192ori_data_t_2=zeros(num,2*channell);%128*192for i = 1:2*channellseq = ori_data_t_1(:,i)'seq_code = encode216(seq)'ori_data_t_2(:,i) = seq_code;endori_data=reshape(ori_

5、data_t_2,1,2*num*channell);%1*24576編碼函數(shù):function code=encode216(m)%輸入信息序列%g1=1,0,0,0,0,0;g2=1,1,0,0,1,1;trel=poly2trellis(6,40 63);%定義網(wǎng)格m1=m,0,0,0,0,0,0;code=convenc(m1,trel);%卷積碼編碼2)交織:交織深度為32;相關(guān)代碼:%編碼交織%ori_data1=reshape(ori_data,deep,(2*num*channell)/deep)'%768*32 ori_data2=reshape(ori_data1,

6、1,2*num*channell);%1*245763) QPSK調(diào)制:轉(zhuǎn)換為96路相位信號(復(fù)數(shù));代碼:%QPSK調(diào)%拆分成兩行12288%QPSK的未調(diào)制數(shù)據(jù)%生成調(diào)制器對象,設(shè)置%1*12288%拆分成128%拆分成128行,制%ori_data_0=reshape(ori_data2,2,channell*num);列ori_data_1=bi2de(ori_data_0','left-msb')'12288列M=4的數(shù)據(jù)de_OFDM_1=modem.pskmod(4);qpsk調(diào)制QPSK_data=modulate(de_OFDM_1,ori_d

7、ata_1);復(fù)數(shù)形式%channel_data=reshape(QPSK_data,channell,num);行,每行10個復(fù)數(shù)128*10channel_data=reshape(QPSK_data,num,channell);每行96個復(fù)數(shù)128*964)插入導(dǎo)頻:32路已知序列;代碼:%插入導(dǎo)頻信號%pliot_1=2*rand(128,32);pliot_2=2*rand(128,32);%插入的導(dǎo)頻信號,實數(shù)pliot=pliot_1+pliot_2*1i; %插入的導(dǎo)頻信號,復(fù)數(shù)channel_data_1=zeros(128,128);for i = 0:31channel_

8、data_1(:,4*i+1)=pliot(:,i+1);channel_data_1(:,4*i+2)=channel_data(:,3*i+1);channel_data_1(:,4*i+3)=channel_data(:,3*i+2);channel_data_1(:,4*i+4)=channel_data(:,3*i+3); end5) OFDM 調(diào)制:使用IFFT相關(guān)代碼:%OFDM信號產(chǎn)生%IFFT_data=zeros(128,128);%128*128ifft 數(shù)for i = 1:128IFFT_data(:,i)=ifft(channel_data_1(:,i),128);

9、據(jù)endr_ifft_data=real(IFFT_data);% 實部128*128i_ifft_data=imag(IFFT_data);%虛部128*1286)插入循環(huán)前綴:這里選取長度為32;相關(guān)代碼:%加入循環(huán)前綴% r_data=rJff_data(num-num/4+1:num,:);rJff_data;%保護間隔取傳送數(shù)據(jù)的四分之一i_data=i_iff_data(num-num/4+1:num,:);iJff_data; %160*1287)并串轉(zhuǎn)換:轉(zhuǎn)換成1路;代碼:%并串轉(zhuǎn)換%r_out=reshape(r_data,1,(num+num/4)*channel);%1*

10、1600i_out=reshape(i_data,1,(num+num/4)*channel);%1*1600data=r_out+i_out.*1i;8) AWGN :加入信噪比-1020dB的噪聲;代碼:%AWGN 信道 % data_AWGN=awgn(data,SNR,'measured') ;%加入噪聲9)串并轉(zhuǎn)換:轉(zhuǎn)換成128路;代碼:%串并轉(zhuǎn)換%r_rcv_data1=reshape(r_rcv_data,num+num/4,channel);i_rcv_data1=reshape(i_rcv_data,num+num/4,channel);10)OFDM解調(diào):F

11、FT快速算法;代碼:%OFDM解調(diào)FFT% de_OFDM_data=zeros(128,128); for i = 1:128 de_OFDM_data(:,i尸fft(rcv_data(:,i),128);%128*128 矩陣end11)去導(dǎo)頻:取出過信道后導(dǎo)頻序列y n ;12)信道估計:計算收到每一路導(dǎo)頻序列的 Yz,已知導(dǎo)頻序歹U的Xz,得到信道H z二組,利用線性插值得到每一路 Xz信息序列的Hi13)均衡:將每一路信號XJz Ez, Ez ,得到均衡后 HJz的信號頻域YJz,然后得到y(tǒng)'(n);代碼:%信道估計與均衡(新的)depliot=zeros(128,32);

12、 for i = 0:31depliot(:,i+1)=de_OFDM_data(:,4*i+1);enddepliot_1=zeros(128,32);depliot_2=zeros(32,128);de_OFDM_0=zeros(128,32); for i = 1:32depliot_1(:,i)=pliot(:,i)./depliot(:,i);%depliot_2(i,:)=reshape(depliot_1(:,i),1,128);%x=1:128;%hx=1:128;%de_OFDM_0(:,i)=interp1(x,depliot_2(i,:),hx,'pchip

13、9;);%線性插值endde_OFDM_1=zeros(128,128); for i= 0:30de_OFDM_1(:,4*i+1)=depliot_1(:,i+1);de_OFDM_1(:,4*i+2)=depliot_1(:,i+1)+(depliot_1(:,i+2)-depliot_1(:,i+1) /4;de_OFDM_1(:,4*i+3)=depliot_1(:,i+1)+(depliot_1(:,i+2)-depliot_1(:,i+1) de_OFDM_1(:,4*i+4)=depliot_1(:,i+1)+(depliot_1(:,i+2)-depliot_1(:,i+1)

14、 /4*3; endde_OFDM_1(:,125)=depliot_1(:,32);de_OFDM_1(:,126)=depliot_1(:,32);de_OFDM_1(:,127)=depliot_1(:,32);de_OFDM_1(:,128)=depliot_1(:,32);de_OFDM_2=de_OFDM_data.*de_OFDM_1;%還原數(shù)據(jù)de_OFDM_3=; for i = 2:4:126de_OFDM_3=de_OFDM_3,de_OFDM_2(:,i:i+2);%提取出 128*96 數(shù)據(jù)部分end14)并串轉(zhuǎn)換:變?yōu)?6路信息序列;代碼:%并串轉(zhuǎn)換 % de_OF

15、DM_data3=reshape(de_OFDM_3,1,channell*num);%128*9615)QPSK解調(diào):還原調(diào)制前的數(shù)據(jù);代碼:%QPSK解調(diào)%de_OFDM_data3_real=real(de_OFDM_data3);de_OFDM_data3_imag=imag(de_OFDM_data3);de_OFDM_4=zeros(1,2*length(de_OFDM_data3_real);%求差 %sigma=sum(abs(real(de_OFDM_data3)-real(QPSK_data)+abs(imag(de_OFDM_data3)-imag(QPSK_data)/

16、(2*length(de_OFDM_data3_real);fo門=1:length(de_OFDM_data3_real)%求判決到各個位置的概率%re_f1=normpdf(de_OFDM_data3_real(i),-1,sigma);re_0=normpdf(de_OFDM_data3_real(i),0,sigma);re_1=normpdf(de_OFDM_data3_real(i),1,sigma);im_f1=normpdf(de_OFDM_data3_imag(i),-1,sigma);im_0=normpdf(de_OFDM_data3_imag(i),0,sigma);i

17、m_1=normpdf(de_OFDM_data3_imag(i),1,sigma);de_OFDM_4(2*i-1)=(re_f1+re_0*im_f1/(im_f1+im_1)/(re_f1+re_1+re_0); de_OFDM_4(2*i)=(im_f1+im_1)/(im_f1+im_1+im_0);enddata_last_0=de_OFDM_4;%1*2457616)解交織;代碼:%解交織 %data_last_0_0=reshape(data_last_0,(2*num*channell)/deep,deep)'data_last_0_1=reshape(data_la

18、st_0_0,1,2*num*channell);17)卷積譯碼:分別使用維特比譯碼,軟解碼,硬解碼法,得到譯碼結(jié)果;代碼:%卷積碼譯碼%data_last_1=reshape(data_last_0_1,num,channell*2);%128*256 data_last_2=zeros(num_inf,channell*2);%58*256for k = 1:2*channell seq0 = data_last_1(:,k)' seq0=1-2.*seq0; seq0_code = decode216(seq0,1)' data_last_2(:,k) = seq0_co

19、de; end data_last = reshape(data_last_2,1,2*num_inf*channell);%1*14848譯碼函數(shù):function decode=decode216(m,k)%m為碼字序列,硬判決譯碼輸入 k為1,軟判決譯碼輸入k為0trel=poly2trellis(6,40 63);% 定義網(wǎng)格tblen=35;%回朔長度,為約束長度的 5倍 if(k=1)%硬判決譯碼hcode=m<0;decode1=vitdec(hcode,trel,tblen,'term','hard');else%軟判決量化譯碼(3比特量化

20、)index,hcode=quantiz(m,-0.75,-0.5,-0.25,0,0.25,0.5Q75,7,6,5,4,321,0); decode1=vitdec(hcode,trel,tblen,'term','soft',3); end decode=decode1(1:length(decode1)-6);18)誤碼率統(tǒng)計;代碼:%誤碼率統(tǒng)計%error_num=sum(abs(data_last-ori_data_t);bit_error_rate(1,(SNR-SNR_min)/2+1)= error_num/N; % 誤碼率 snr(1,(SN

21、R-SNR_min)/2+1)=SNR; end stem(snr,-10*log10(bit_error_rate),'-*','LineStyle','none'); xlabel('SNR'); ylabel('BER');title('Performance of OFDM under the channel AWGN')(四)結(jié)果:1)軟解碼與硬解碼情況下不同信噪比的誤碼率:Performance of OFDM under the channel AWGN 0soft decode如 h

22、ard decode-2-0.5681012141618SNR(dB)由上圖可以看出,信號誤碼性能隨著信噪比增加而增 加,當信噪比達到10dB的時候誤碼率已經(jīng)低于0.01,信 噪比達到16dB時誤碼率已經(jīng)達到-5量級,再之后出現(xiàn)相 關(guān)波動;另外,由于此次用于測試的數(shù)據(jù)只有 24576個,所以 誤碼率更高的時候誤碼率已經(jīng)變?yōu)?0。同時,在低信噪比時,軟解碼與硬解碼性能差別不大;在信噪比達到8dB之后,軟解碼性能明顯比硬解碼好;2)不同信噪比下譯碼相位圖:Scatter plotScatter plot543210Scatter plot50 In-Phase-1-2-3-4-5由上圖可以看出,在

23、不同信噪比下,相位圖譯碼結(jié)果不一樣;信噪比越大,相位譯碼越清晰;(五)總結(jié)體會:1)這次課設(shè)時間期較長,一邊學(xué)習(xí)一邊編寫,前后花了好幾;最開始搭建基本框架比較順利,通過對課程的理解,成功地理清了思路;2)編寫導(dǎo)頻和均衡部分時,由于書上講得不是很透徹,網(wǎng)上查閱資料也紛繁復(fù)雜,幾乎陷入了瓶頸;后來慢慢摸索,詢問老師,小組討論,同學(xué)交流;慢慢知道了自己的問題 所在,混淆了頻域和時域;3)小組討論后將程序分工,成員各自負責(zé)不同部分,有問題 時一起交流討論,這次團隊協(xié)作非常愉快,并且高效;4)從最開始做的無從下手到現(xiàn)在基本理解吃透,經(jīng)歷了一段 時間。中間也詢問了很多人,查閱了多資料;非常感老師 的指導(dǎo),

24、也希望老師以后講解可以再耐心一些;(六)分工合作:我們小組成員有倪鴻志,旭,裔歡;這次我(倪鴻志)負 責(zé)的是OFDM系統(tǒng),信道的編寫,旭負責(zé)了編碼譯碼部分, 裔歡寫了 QPSK調(diào)制,剩下的均衡,導(dǎo)頻,軟譯碼是大家一起 商量完成的。(七)程序代碼:1)主程序:clc;clear all;%參數(shù)設(shè)置 %p=0.5;%設(shè)定p值channel=128;num=128;channell=96;deep=32;%交織深度num_inf=num/2-6;%每一組信息位bit,注意復(fù)數(shù)包含兩組,58N=channell*2*num_inf;SNR_min=6;SNR_max=20;echo_num=8;ts=

25、1e-5;fd=0;tau=ts3*ts8*ts;pdb=0-3-8;% 采樣時間為 1us,無多普勒頻移bit_error_rate=zeros(echo_num,(SNR_max-SNR_min)/2+1);snr=zeros(1,(SNR_max-SNR_min)/2+1);% 信噪比矩陣初始化for SNR=SNR_min:2:SNR_maxfor echo=1:echo_num;%初始信號產(chǎn)生 % ori_data=rand(1,N);ori_data_t=ori_data<p;% 生成伯努利信息序列1*11136%卷積編碼 % ori_data_t_1=reshape(ori

26、_data_t,num_inf,2*channell); %58*192 ori_data_t_2=zeros(num,2*channell);%128*192for i = 1:2*channellseq = ori_data_t_1(:,i)'seq_code = encode216(seq)'ori_data_t_2(:,i) = seq_code;endori_data=reshape(ori_data_t_2,1,2*num*channell);%1*24576%編碼交織 % ori_data1=reshape(ori_data,deep,(2*num*channel

27、l)/deep)'%768*32ori_data2=reshape(ori_data1,1,2*num*channell);%1*24576%拆分成兩行12288列%QPSK的未調(diào)制數(shù)據(jù) 12288%QPSK 調(diào)制 %ori_data_0=reshape(ori_data2,2,channell*num);ori_data_1=bi2de(ori_data_0','left-msb')'列M=4的數(shù)據(jù)de_OFDM_1=modem.pskmod(4);%生成調(diào)制器對象,設(shè)置qpsk調(diào)制QPSK_data=modulate(de_OFDM_1,ori_da

28、ta_1);%1*12288 復(fù)數(shù)形式%channel_data=reshape(QPSK_data,channell,num);%拆分成 128 行,每行10個復(fù)數(shù)128*10channel_data=reshape(QPSK_data,num,channell);%拆分成 128 行,每行96個復(fù)數(shù)128*96%插入導(dǎo)頻號%pliot_1=2*rand(128,32);pliot_2=2*rand(128,32);%插入的導(dǎo)頻信號,實數(shù)pliot=pliot_1+pliot_2*1i; %插入的導(dǎo)頻信號,復(fù)數(shù)channel_data_1=zeros(128,128);for i = 0:3

29、1channel_data_1(:,4*i+1)=pliot(:,i+1);channel_data_1(:,4*i+2)=channel_data(:,3*i+1);channel_data_1(:,4*i+3)=channel_data(:,3*i+2);channel_data_1(:,4*i+4)=channel_data(:,3*i+3); end%128*10ifft 數(shù)據(jù)%OFDM 信號產(chǎn)生 %IFFT_data=ifft(channel_data);IFFT_data=zeros(128,128);for i = 1:128IFFT_data(:,i尸ifft(channel_

30、data_1(:,i),128);%128*128ifft 數(shù)據(jù)end r_ifft_data=real(IFFT_data);% 實部128*128i_ifft_data=imag(IFFT_data);% 虛部 128*128%加入循環(huán)前綴 % r_data=r_ifft_data(num-num/4+1:num,:);r_ifft_data;% 保護間隔取傳送數(shù)據(jù)的四分之一i_data=i_ifft_data(num-num/4+1:num,:);i_ifft_data; %160*128% 并串車% % r_out=reshape(r_data,1,(num+num/4)*channe

31、l);%1*1600i_out=reshape(i_data,1,(num+num/4)*channel);%1*1600data=r_out+i_out.*1i;%AWGN信道%data_AWGN=awgn(data,SNR,'measured') ;%加入噪聲%瑞利信道 % chan = rayleighchan(ts,fd,tau,pdb);ru_data = filter(chan,data_AWGN);% % % % % %號%r_rcv_data=real(ru_data);i_rcv_data=imag(ru_data);%串并轉(zhuǎn)換%r_rcv_data1=res

32、hape(r_rcv_data,num+num/4,channel);i_rcv_data1=reshape(i_rcv_data,num+num/4,channel);%去前綴%r_rcv_data2=r_rcv_data1(num/4+1:num+num/4,:);i_rcv_data2=i_rcv_data1(num/4+1:num+num/4,:);rcv_data=r_rcv_data2+i_rcv_data2*1i;%OFDM解調(diào)FFT%de_OFDM_data=zeros(128,128);for i = 1:128 de_OFDM_data(:,i尸fft(rcv_data(:

33、,i),128);%128*128 矩陣end%信道估計與均衡(新的)depliot=zeros(128,32);for i = 0:31depliot(:,i+1)=de_OFDM_data(:,4*i+1);enddepliot_1=zeros(128,32);depliot_2=zeros(32,128);de_OFDM_0=zeros(128,32);for i = 1:32depliot_1(:,i)=pliot(:,i)./depliot(:,i);endde_OFDM_1=zeros(128,128);for i= 0:30de_OFDM_1(:,4*i+1)=depliot_1

34、(:,i+1);de_OFDM_1(:,4*i+2)=depliot_1(:,i+1)+(depliot_1(:,i+2)-depliot_1(:,i+1)/4;de_OFDM_1(:,4*i+3)=depliot_1(:,i+1)+(depliot_1(:,i+2)-depliot_1(:,i+1)/2;de_OFDM_1(:,4*i+4)=depliot_1(:,i+1)+(depliot_1(:,i+2)-depliot_1(:,i+1)/4*3;endde_OFDM_1(:,125)=depliot_1(:,32);de_OFDM_1(:,126)=depliot_1(:,32);de

35、_OFDM_1(:,127)=depliot_1(:,32);de_OFDM_1(:,128)=depliot_1(:,32);de_OFDM_2=de_OFDM_data.*de_OFDM_1;%還原數(shù)據(jù)de_OFDM_3=;for i = 2:4:126de_OFDM_3=de_OFDM_3,de_OFDM_2(:,i:i+2);%提取出 128*96 的數(shù)據(jù)部分end%并串轉(zhuǎn)換%de_OFDM_data3=reshape(de_OFDM_3,1,channell*num);%128*96%QPSK解調(diào)%h1 = modem.pskdemod(4);%de_QPSK_data=demodu

36、late(h1,de_OFDM_data3);%demodata=de2bi(de_QPSK_data,'left-msb')'de_OFDM_data3_real=real(de_OFDM_data3);de_OFDM_data3_imag=imag(de_OFDM_data3);de_OFDM_4=zeros(1,2*length(de_OFDM_data3_real);% 求差 %sigma=(sum(de_OFDM_4-ori_data)/(2*length(de_OFDM_data3_real)F2;for i=1:length(de_OFDM_data3_r

37、eal)%求判決到各個位置的概率%re_f1=normpdf(de_OFDM_data3_real(i),-1,sigma);re_0=normpdf(de_OFDM_data3_real(i),0,sigma);re_1=normpdf(de_OFDM_data3_real(i),1,sigma);im_f1=normpdf(de_OFDM_data3_imag(i),-1,sigma);im_0=normpdf(de_OFDM_data3_imag(i),0,sigma);im_1=normpdf(de_OFDM_data3_imag(i),1,sigma);de_OFDM_4(2*i-1)=(re_f1+re_0*im_f1/(im_f1+im_1)/(re_f1+re_1+re_0); de_OFDM_4(2*i)=(im_f1+im_1)/(im_f1+im_1+im_0);enddata_last_0=de_OFDM_4;%1*24576%解交織 %data_last_0_0=reshape(data_last_0,(2*num*channell)/deep,deep)'data_last_0_1=reshape(data_last_0_0,1,2*num*channell);%卷積碼譯碼 % data_last_1=reshape(data_last

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論