移動通信系統(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頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

2、。正交信號可以通過在接收端采用相關(guān)技術(shù)來分開,這樣可以減少子信道之間的相互干擾(ISI) 。每個子信道上的信號帶寬小于信道的相關(guān)帶寬,因此每個子信道上可以看成平坦性衰落,從而可以消除碼間串?dāng)_,而且由于每個子信道的帶寬僅僅是原信道帶寬的一小部分,信道均衡變得相對容易。2) QPSK調(diào)制:將每兩個相連比特組在一起形成雙比特碼元,它的四種狀態(tài)用4個不同的相位表示;3) 導(dǎo)頻與均衡:在OFDM信息序列中插入已知的導(dǎo)頻序列,通過信道后將其提取得,做頻域除法得傳輸函數(shù),再通過線性插值后得到每個信道頻率響應(yīng),均衡濾波傳輸函數(shù);4) 循環(huán)前綴:循環(huán)前綴(Cyclic Prefix, CP)是將OFDM符號尾部

3、的信號搬移到頭部構(gòu)成的。用來消去碼間干擾,通常取長度(為信道沖激響應(yīng)持續(xù)時間)5) 分組交織:為了解決成串的比特差錯問題,采用了交織技術(shù):把一條消息中的相 繼比特分散開的方法,即一條信息中的相繼比特以非相繼方式發(fā)送,這樣即使在傳輸過程中發(fā)生了成串差錯,恢復(fù)成一條相繼比特串的消息時,差錯也就變成單個(或者長度很短)的錯誤比特,這時再用信道糾正隨機(jī)差錯的編碼技術(shù)(FEC)消除隨機(jī)差錯。糾錯數(shù)(三) 基本思路:說明:1) 編碼:使用216卷積碼;相關(guān)代碼:%卷積編碼%ori_data_t_1=reshape(ori_data_t,num_inf,2*channell); %58*192ori_dat

4、a_t_2=zeros(num,2*channell); %128*192for i = 1:2*channell seq = 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編碼函數(shù):function code=encode216(m)%輸入信息序列%g1=1,0,0,0,0,0;g2=1,1,0,0,1,1;trel=poly2trellis(6,40 6

5、3);%定義網(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*32ori_data2=reshape(ori_data1,1,2*num*channell); %1*245763) QPSK調(diào)制:轉(zhuǎn)換為96路相位信號(復(fù)數(shù));代碼:%QPSK調(diào)制%ori_data_0=reshape(ori_data2,2,channell*num); %拆分成兩行12288列ori_da

6、ta_1=bi2de(ori_data_0','left-msb')' %QPSK的未調(diào)制數(shù)據(jù) 12288列M=4的數(shù)據(jù)de_OFDM_1=modem.pskmod(4); %生成調(diào)制器對象,設(shè)置qpsk調(diào)制QPSK_data=modulate(de_OFDM_1,ori_data_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行,每

7、行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í)數(shù)pliot=pliot_1+pliot_2*1i; %插入的導(dǎo)頻信號,復(fù)數(shù)channel_data_1=zeros(128,128);for i = 0:31 channel_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(

8、:,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);for i = 1:128 IFFT_data(:,i)=ifft(channel_data_1(:,i),128); %128*128ifft數(shù)據(jù)endr_ifft_data=real(IFFT_data); %實(shí)部 128*128i_ifft_data=imag(IFFT_data); %虛部 128*1286) 插入循環(huán)前綴:這里選取長度為32;相關(guān)代碼:%加

9、入循環(huán)前綴%r_data=r_ifft_data(num-num/4+1:num,:);r_ifft_data; %保護(hù)間隔取傳送數(shù)據(jù)的四分之一i_data=i_ifft_data(num-num/4+1:num,:);i_ifft_data; %160*1287) 并串轉(zhuǎn)換:轉(zhuǎn)換成1路;代碼:%并串轉(zhuǎn)換%r_out=reshape(r_data,1,(num+num/4)*channel); %1*1600i_out=reshape(i_data,1,(num+num/4)*channel); %1*1600data=r_out+i_out.*1i;8) AWGN:加入信噪比-1020dB的

10、噪聲;代碼:%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):FFT快速算法;代碼:%OFDM解調(diào)FFT%de_OFDM_data=zeros(128,128);for i = 1:128 de_OFDM_data(:,i)=fft(rcv_data(:,i),

11、128); %128*128矩陣end11) 去導(dǎo)頻:取出過信道后導(dǎo)頻序列;12) 信道估計(jì):計(jì)算收到每一路導(dǎo)頻序列的,已知導(dǎo)頻序列的,得到信道,利用線性插值得到每一路信息序列的;13) 均衡:將每一路信號,得到均衡后的信號頻域 ,然后得到;代碼:%信道估計(jì)與均衡(新的)depliot=zeros(128,32);for i = 0:31 depliot(:,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:32 depl

12、iot_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'); %線性插值endde_OFDM_1=zeros(128,128);for i= 0:30 de_OFDM_1(:,4*i+1)=depliot_1(:,i+1); de_OFDM_1(:,4*i+2)=depliot_1(:,i+1)+(depliot_1(:,i+

13、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_OFDM_1(:,127)=depliot_1(:,32);de_OFDM_1(:,128)=depliot_1

14、(:,32);de_OFDM_2=de_OFDM_data.*de_OFDM_1; %還原數(shù)據(jù)de_OFDM_3=;for i = 2:4:126 de_OFDM_3=de_OFDM_3,de_OFDM_2(:,i:i+2); %提取出128*96數(shù)據(jù)部分end14) 并串轉(zhuǎn)換:變?yōu)?6路信息序列;代碼:%并串轉(zhuǎn)換%de_OFDM_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_i

15、mag=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)/(2*length(de_OFDM_data3_real);for i=1:length(de_OFDM_data3_real) %求判決到各個位置的概率% re_f1=normpdf(de_OFDM_data3_real(i),-1,sigma); re_0=nor

16、mpdf(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)

17、=(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_last_0_0,1,2*num*channell);17) 卷積譯碼:分別使用維特比譯碼,軟解碼,硬解碼方法,得到譯碼結(jié)果;代碼:%卷積碼譯碼%data_last_1=reshape(data_last_0_1,num,channell*2); %

18、128*256data_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_code;enddata_last = reshape(data_last_2,1,2*num_inf*channell); %1*14848譯碼函數(shù):function decode=decode216(m,k)%m為碼字序列,硬判決譯碼輸入k

19、為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比特量化) index,hcode=quantiz(m,-0.75,-0.5,-0.25,0,0.25,0.5,0.75,7,6,5,4,3,2,1,0); decode1=vitdec(hcode,trel,tblen,'term',&

20、#39;soft',3);enddecode=decode1(1:length(decode1)-6);18) 誤碼率統(tǒng)計(jì);代碼:%誤碼率統(tǒng)計(jì)%error_num=sum(abs(data_last-ori_data_t);bit_error_rate(1,(SNR-SNR_min)/2+1)= error_num/N; %誤碼率snr(1,(SNR-SNR_min)/2+1)=SNR;endstem(snr,-10*log10(bit_error_rate),'-*','LineStyle','none');xlabel('SN

21、R'); ylabel('BER'); title('Performance of OFDM under the channel AWGN')(四) 結(jié)果:1) 軟解碼與硬解碼情況下不同信噪比的誤碼率:由上圖可以看出,信號誤碼性能隨著信噪比增加而增加,當(dāng)信噪比達(dá)到10dB的時候誤碼率已經(jīng)低于0.01,信噪比達(dá)到16dB時誤碼率已經(jīng)達(dá)到-5量級,再之后出現(xiàn)相關(guān)波動;另外,由于此次用于測試的數(shù)據(jù)只有24576個,所以誤碼率更高的時候誤碼率已經(jīng)變?yōu)?。同時,在低信噪比時,軟解碼與硬解碼性能差別不大;在信噪比達(dá)到8dB之后,軟解碼性能明顯比硬解碼好; 2) 不同

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

23、始做的無從下手到現(xiàn)在基本理解吃透,經(jīng)歷了一段時間。中間也詢問了很多人,查閱了許多資料;非常感謝老師的指導(dǎo),也希望李老師以后講解可以再耐心一些;(六) 分工合作:我們小組成員有倪鴻志,王旭,周裔歡;這次我(倪鴻志)負(fù)責(zé)的是OFDM系統(tǒng),信道的編寫,王旭負(fù)責(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ù)包含兩組

24、,58N=channell*2*num_inf;SNR_min=6;SNR_max=20;echo_num=8;ts=1e-5;fd=0;tau=ts 3*ts 8*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_

25、data<p; % 生成伯努利信息序列 1*11136%卷積編碼%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*channell seq = 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)

26、; %1*24576%編碼交織%ori_data1=reshape(ori_data,deep,(2*num*channell)/deep)' %768*32ori_data2=reshape(ori_data1,1,2*num*channell); %1*24576%QPSK調(diào)制%ori_data_0=reshape(ori_data2,2,channell*num); %拆分成兩行12288列ori_data_1=bi2de(ori_data_0','left-msb')' %QPSK的未調(diào)制數(shù)據(jù) 12288列M=4的數(shù)據(jù)de_OFDM_1=mode

27、m.pskmod(4); %生成調(diào)制器對象,設(shè)置qpsk調(diào)制QPSK_data=modulate(de_OFDM_1,ori_data_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í)數(shù)pliot=pliot

28、_1+pliot_2*1i; %插入的導(dǎo)頻信號,復(fù)數(shù)channel_data_1=zeros(128,128);for i = 0:31 channel_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%OFDM信號產(chǎn)生%IFFT_data=ifft(channel_data); %128*10iff

29、t數(shù)據(jù)IFFT_data=zeros(128,128);for i = 1:128 IFFT_data(:,i)=ifft(channel_data_1(:,i),128); %128*128ifft數(shù)據(jù)endr_ifft_data=real(IFFT_data); %實(shí)部 128*128i_ifft_data=imag(IFFT_data); %虛部 128*128%加入循環(huán)前綴%r_data=r_ifft_data(num-num/4+1:num,:);r_ifft_data; %保護(hù)間隔取傳送數(shù)據(jù)的四分之一i_data=i_ifft_data(num-num/4+1:num,:);i_i

30、fft_data; %160*128%并串轉(zhuǎn)換%r_out=reshape(r_data,1,(num+num/4)*channel); %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=

31、real(ru_data);i_rcv_data=imag(ru_data);%串并轉(zhuǎn)換%r_rcv_data1=reshape(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=

32、zeros(128,128);for i = 1:128 de_OFDM_data(:,i)=fft(rcv_data(:,i),128); %128*128矩陣end%信道估計(jì)與均衡(新的)depliot=zeros(128,32);for i = 0:31 depliot(:,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:32 depliot_1(:,i)=pliot(:,i)./depliot(:,i);endd

33、e_OFDM_1=zeros(128,128);for i= 0:30 de_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)/2; de_OFDM_1(:,4*i+4)=depliot_1(:,i+1)+(depliot_1(:,i+2)-depliot_1(:,i+1)/4*3;endd

34、e_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:126 de_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,chan

35、nell*num); %128*96%QPSK解調(diào)%h1 = modem.pskdemod(4);%de_QPSK_data=demodulate(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_

36、data)/(2*length(de_OFDM_data3_real)2;for i=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_ima

37、g(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_0_1,num,channell*2); %128*2

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論