MATLAB仿真報告
《MATLAB仿真報告》由會員分享,可在線閱讀,更多相關《MATLAB仿真報告(22頁珍藏版)》請在裝配圖網上搜索。
1、 無線通信 (MATLAB課后作業(yè)仿真) 姓 名: 學 院: 學 號: 班 級: 指導教師: 一、分集仿真 現給出最大比合并(MRC)、等增益合并(EGC)和選擇性合并的分集合并程序,理解各程序,完成以下習題。將程序運行結果及各題目的解答寫入word中: 1. 用matlab分別運行“BPSKMRC.m”、“BPSKEGC.m”以及“BPSKSEL.m” (a)在程序中標注“注釋
2、”處加上注釋(英文或中文) BPSKMRC.m注釋 nd = 10000; %設置每個循環(huán)中的符號數 snr_in_dB=[0:15] ; ber=zeros(1,length(snr_in_dB)); for snr_num=1:length(snr_in_dB) SNR=exp(snr_in_dB(snr_num)*log(10)/10); nloop=100; % 循環(huán)次數 noe = 0; % 錯誤數 nod = 0; % 傳輸的數量 for iii=1:nloop data1=rand(1,nd)>0.5; dat
3、a2=2.*data1-1; %以下為衰減量的計算 %在瑞利信道下 code_rate=1; E=1; sigma=E/sqrt(2*SNR*code_rate); n =[randn(1,nd) + j*randn(1,nd)]; h1 =1/sqrt(2)*[randn(1,nd) + j*randn(1,nd)]; % 瑞利信道 data41=data2.*h1+sigma.*n; h11=conj(h1); %計算信道質量指數的復共軛 data411 = data41.*h11; %計算組合后的價值
4、 %***************************************** n =[randn(1,nd) + j*randn(1,nd)]; h2 =1/sqrt(2)*[randn(1,nd) + j*randn(1,nd)]; % 瑞利信道 data42=data2.*h2+sigma.*n; h22=conj(h2); data422 =data42.*h22; %***************************************** data4=data411+data422;%在兩個不相關的信道下的信號進行
5、組合 % BPSK 解調 demodata1=data4 > 0; %誤碼率 noe2=sum(abs(data1-demodata1)); nod2=length(data1); noe=noe+noe2; nod=nod+nod2; end %輸出結果 ber(snr_num) = noe/nod end; %結尾 figure; semilogy(snr_in_dB,ber,O-); hold on semilogy(snr_in_dB,0.5*erfc(sqrt(2*10.^(snr_in_dB
6、/10))/sqrt(2)),+-); hold on semilogy(snr_in_dB,0.5.*(1-sqrt((10.^(snr_in_dB/10))./(10.^(snr_in_dB/10)+1))),-); ylabel(BER); xlabel(E_b/N_0 [dB]); legend(simulation BPSK MRC L=2,theory gngauss BPSK,theory reyleigh ); BPSKEGC.m注釋 nd = 10000; %設置每個循環(huán)中的符號數 snr_in_dB=[0:15] ; ber=z
7、eros(1,length(snr_in_dB)); for snr_num=1:length(snr_in_dB) SNR=exp(snr_in_dB(snr_num)*log(10)/10); nloop=100; % 設置循環(huán)次數 noe = 0; % 錯誤數量 nod = 0; % 傳輸數量 for iii=1:nloop data1=rand(1,nd)>0.5; data2=2.*data1-1; %衰減量的計算 %瑞利信道下 code_rate=1; E=1; sigma=E/sqrt(2*SNR*
8、code_rate); n =[randn(1,nd) + j*randn(1,nd)]; h1 =1/sqrt(2)*[randn(1,nd) + j*randn(1,nd)]; % 瑞利信道 data41=data2.*h1+sigma.*n; h11=conj(h1)./abs(h1); %取信道質量指數的單位向量 data411 = data41.*h11; %計算組合后在信道1下的價值 %***************************************** n =[randn(1,nd) + j*ra
9、ndn(1,nd)]; h2 =1/sqrt(2)*[randn(1,nd) + j*randn(1,nd)]; %瑞利信道 data42=data2.*h2+sigma.*n; h22=conj(h2)./abs(h2); data422 =data42.*h22; %***************************************** data4=data411+data422; %BPSK 解調 demodata1=data4 > 0; %誤碼率計算 noe2=sum(abs(data1-demoda
10、ta1)); nod2=length(data1); noe=noe+noe2; nod=nod+nod2; end %結果輸出 ber1(snr_num) = noe/nod end; %結尾 figure; semilogy(snr_in_dB,ber1,O-); hold on semilogy(snr_in_dB,0.5*erfc(sqrt(2*10.^(snr_in_dB/10))/sqrt(2)),+-); hold on semilogy(snr_in_dB,0.5.*(1-sqrt((10.^(snr
11、_in_dB/10))./(10.^(snr_in_dB/10)+1))),-); ylabel(BER); xlabel(E_b/N_0 [dB]); legend(simulation BPSK EGC L=2,theory gngauss BPSK,theory reyleigh ); BPSKSEL.m注釋 snr_in_dB=0:15; for k=1:length(snr_in_dB) k N=10000; E=1; SNR=10^(snr_in_dB(k)/10); sigma=E/sqrt(2*SNR); f
12、or i=1:N a=rand; if(a<0.5) data(i)=-1; else data(i)=1; end end numofber=0; totolnumber=0; while numofber<1 totolnumber=totolnumber+1; for i=1:N H1 =1/sqrt(2)*[rand + j*rand]; %第一個瑞利信道 H2 =1/sqrt(2)*[rand + j*rand]; %第二個瑞利信道 H=[H1;H2]; y1=H(1)*data(i)+sigma*(rand + j*r
13、and); %在第一個信道下計算數據 y2=H(2)*data(i)+sigma*(rand + j*rand); %在第二個信道下計算數據 y=[abs(y1),abs(y2)]; s=max(y); %選擇其中最大的數據 if (s==abs(y2)) s=y2/H2; else s=y1/H1; end data2=sign(real(s)); if (data2~=data(i)) numofber=numofber+1; %計算誤比特率 end end end p(k)=numofber/(N*totolnumber); %
14、計算誤碼率 end figure; semilogy(snr_in_dB,p,O-); hold on semilogy(snr_in_dB,0.5*erfc(sqrt(2*10.^(snr_in_dB/10))/sqrt(2)),+-); hold on semilogy(snr_in_dB,0.5.*(1-sqrt((10.^(snr_in_dB/10))./(10.^(snr_in_dB/10)+1))),-); ylabel(BER); xlabel(E_b/N_0 [dB]); legend(simulation BPSK SEL L=2,theo
15、ry gngauss BPSK,theory reyleigh); (b)觀察信噪比變化10dB,誤比特率變化多少? MRC誤比特率變化:0.0588-0.0017=0.0571 EGC誤比特率變化:0.0650-0.0018=0.0632 SEL 誤比特率變化:0.1733-0.0030=0.1703 (c)程序中給出的是2分集,將其換為3分集,觀察信噪比變化10dB,誤比特率變化多少? MRC 誤比特率變化:0.0248-0.0001=0.0247 EGC 誤比特率變化:0.0330-0.0002=0.0328 SEl 誤比特率變化
16、:0.1780-0.0003=0.1777 (d)將最大比合并和等增益合并及選擇式合并的誤比特率曲線,畫在一張圖上,比較這三種合并方法的優(yōu)劣。 由圖可得,MRC方法所得到的誤碼率是最小的,性能也最穩(wěn)定;EGC方法在誤碼率和穩(wěn)定性方面次之;SEL方法在同一SNR下得到的誤碼率最高,而且穩(wěn)定性很差,有時候能夠得到比MRC、EGC更低的誤碼率,有時候就不行,增大SNR只能使BER總體趨向下降,不保證增大SNR就能直接降低BER。 二、調制解調仿真 現給出bpsk、qpsk及“書上習題”的調制解調程序,理解各程序,完成以下習題。將程序運行結果及各題目的解答寫入word中
17、: 1.用matlab運行書上習題中的“bpskqpsk125.m” (a)說明bpsk、qpsk解調判決方法 答:由該m文件可得,其中的判決設置為: BPSK:if a (zero mean)noise sample is larger than sqrt(Eb) a wrong decsion is made. 如果一個噪聲的樣值比平均比特能量大的話,那么就會產生錯誤的判決。 QPSK:if the constellation point angle is within pi/4 ang -pi/4 a corerect decision is made. 如果星座點上的角偏
18、差在pi/4和-pi/4之間的話,判決就正確了。 (b)誤比特率為1e-2、1e-3及1e-4時的Eb/N0分別是多少? 答:運行該程序,可以得出如下的圖像: 當誤比特率在1e-2時其Eb/N0=4.3dB 當誤比特率在1e-3時其Eb/N0=6.8dB 當誤比特率在1e-4時其Eb/N0=8.3dB (c)從物理意義上說明為什么bpsk、qpsk誤比特率曲線是重疊的 答:QPSK為四元相位調制,而BPSK為二元相位調制。因此,從判決的區(qū)域來看BPSK的誤碼率(誤符號率)是必然大于QPSK的。但是從另一個角度看,每一個QPSK的符號相當于是由兩個BPSK的符號組合而成
19、(如11是由二進制的兩個1組成),最基本的比特的差錯性能都是一樣的,因此BPSK和QPSK的誤比特率是相同的。 (d)當samples減少為100000,10000,1000時觀察誤比特率曲線的變化,你得出什么結論。 答:當samples=100000,10000,1000時,圖像分別為: 此時誤差已經非常明顯 2.用matlab運行“bpsk.m”、“qpsk.m” (a)在各程序中標注“注釋”處加上注釋(英文或中文) BPSK: data1=rand(1,nd)>0.5; %返回一組行向量 code_rate=1; E=1; sig
20、ma=E/sqrt(2*SNR*code_rate)%計;算編碼后高斯分布隨機變量標準差 for i=1:nd if (data1(i)==0), data4(i)=-E+Gngauss(sigma); %傳0碼時加入高斯分布白噪聲干擾 else data4(i)=E+Gngauss(sigma); %傳1碼時加入高斯分布白噪聲干擾 end; end; %BPSK 解調 demodata1=data4 > 0; % data4中每個元素和0比較 %
21、誤碼率 noe2=sum(abs(data1-demodata1)); %計算誤碼個數 nod2=length(data1); %計算總碼數 noe=noe+noe2; nod=nod+nod2; end ber(snr_num) = noe/nod %計算誤碼率 end; QPSK: ber=zeros(1,length(snr_in_dB)); for snr_num=1:length(snr_in_dB) SNR=exp(snr_in_dB(snr_num)*log(10)/10);%計算信噪比 nloop=100; % 設置循環(huán)次數
22、 noe = 0; % 錯誤數量 nod = 0; %傳輸數量 for iii=1:nloop data=rand(1,nd*ml)>0.5; %生成同相分量 data1=2*data-1 %此為正交分量 % QPSK 調制 [tout]=qpskmod(data1,1,nd,ml); code_rate=1; E=1/sqrt(2); sigma=E/sqrt(2*SNR*code_rate); %計算編碼后高斯分布隨機變量標準差 for i=1:nd, [gsrv1,gsrv2]=Gngauss(sig
23、ma); tout(i)=tout(i)+gsrv1+j*gsrv2; %sigma=E/sqrt(2*SNR*code_rate); %n = 1/sqrt(2)*[randn(1,nd) + j*randn(1,nd)]; %sigma.*n %注釋:另一種高斯白噪聲產生方法 end; %QPSK 解調 [demodata]=qpskdemod(tout,1,nd,ml); demodata1=demodata > 0; %與原始碼元對比判決,得到正確的碼元數 demodata=demoda
24、ta1; %誤碼率 noe2=sum(abs(data-demodata)); %錯誤碼元數 nod2=length(data1); %總碼元數 noe=noe+noe2; nod=nod+nod2; end ber(snr_num) = noe/nod; %計算誤碼率 (b)說明加性高斯白噪聲的產生方法,請再給出一種加性高斯白噪聲的產生方法,并驗證其正確性。 原始方法為Gngauss.m if nargin == 0, m=0; sgma=1; elseif nargin == 1, sgma=m; m=0; end; u=rand;
25、 z=sgma*(sqrt(2*log(1/(1-u)))); u=rand; gsrv1=m+z*cos(2*pi*u); gsrv2=m+z*sin(2*pi*u); nargin為輸入變量的個數,如果nargin為零,即空號,產生均值為0,標準差為1的高斯分布系列。如果傳號,產生均值為0,方差為m的隨機序列。 另一種方法:y = awgn(m,n,p) 產生一個m行n列的高斯白噪聲的矩陣,p以dBW為單位指定輸出噪聲的強度。但與實際差距較大。 data2=2*data1-1; d
26、ata4=awgn(data2,snr_in_dB(snr_num)) (c)參考“bpskqpsk125.m”的畫圖功能,給出Eb/N0---誤比特率曲線和高斯信道下的理論誤比特率曲線。 Bpsk時,在末尾加上如下程序段,得到圖樣: figure; semilogy(snr_in_dB,ber,O); hold on semilogy(snr_in_dB,0.5*erfc(sqrt(2*10.^(snr_in_dB/10))/sqrt(2)),+); ylabel(BER); xlabel(E_b/N_0 [dB]); legend(simulation BPSK,theo
27、ry gngauss BPSK ); Qpsk時,在末尾加上如下程序段,得到圖樣: figure; semilogy(snr_in_dB,ber,O); hold on semilogy(snr_in_dB,0.5*erfc(sqrt(2*10.^(snr_in_dB/10))/sqrt(2)),+); ylabel(BER); xlabel(E_b/N_0 [dB]); legend(simulation QPSK,theory gngauss QPSK ); (d)觀察nd及nloop參數變化時,曲線的現象,并說明原因。 答:當參數nd、參數nloop足夠大
28、時,Eb/N0---誤比特率曲線越平滑,可以從圖得到信噪比越大誤碼率越小的結論;當參數nd、參數nloop足夠小時,Eb/N0---誤比特率曲線越不平滑,不能從圖得到信噪比越大誤碼率越小的結論。 原因:參數nd的意義為Number of symbols that simulates in each loop,即每個循環(huán)運算中取的符號個數,而nloop的意義為Number of simulation loops,即循環(huán)次數。參數取得越大,當然仿真精確性越高,參數越低,仿真精確性就越低。(此處就不附圖樣了)(e)畫出不同信噪比條件下的的星座圖,解釋其對誤碼率的影響。 BPSK的不同性噪比條件下
29、的星座圖如下: QPSK的不同性噪比條件下的星座圖如下: 結論:性噪比越大,落在判決范圍內的的點越多,即誤碼率越低。 (f)通過程序畫出QPSK和BPSK的Eb/N0---誤比特率曲線,觀察曲線的現象,能得出什么結論。 答:由之前的結果可以看到,二者的誤比特率曲線是一致的。 3.若信源是你的學號,結合程序說明其在qpsk (調制mod)和(解調demod)子程序中的具體實現過程。 學號為11211041, 將其編碼:0001 0001 0010 0001 0001 0000 0100 0001 ,將其做正負電平值變換,之后編程: Qpsk調制: m2=ml
30、./2; paradata2=paradata; count2=0; for jj=1:nd isi = zeros(para,1); isq = zeros(para,1); for ii = 1 : m2 isi = isi + 2.^( m2 - ii ) isq = isq + 2.^( m2 - ii ) ; end iout((1:para),jj)=isi/sqrt(2); qout((1:para),jj)=isq/sqrt(2); count2=count2+ml; end 用isi和isp這兩個集合存儲虛
31、部和實部,每次取出兩個信號進行調制,得到編碼為11(1/sqrt(2), 1/sqrt(2)),10(1/sqrt(2), -1/sqrt(2)),01(-1/sqrt(2), 1/sqrt(2)),00(-1/sqrt(2), -1/sqrt(2)) 解調 demodata=zeros(para,ml*nd); demodata((1:para),(1:ml:ml*nd-1))=idata((1:para),(1:nd)); demodata((1:para),(2:ml:ml*nd))=qdata((1:para),(1:nd)); 解調時將數據按先虛部后實部的順序存入demod
32、ata里面,在根據主程序的方法demodata1=demodata > 0,判斷0或是1 4.針對題目2中的BPSK、QPSK, (a)若信道使信號幅度呈瑞利衰落,畫出Eb/N0---誤比特率曲線和瑞利衰落下的理論誤比特率曲線 ,說明與題目2觀察結果的異同,并說明原因。 (a)bpsk: Qpsk: 結論:加性高斯噪聲的誤比特率比瑞利信道的誤比特率高,說明在瑞利信道對信號的影響大,我們可以通過提高信噪比來降低誤碼率。 (b)若信道使信號幅度呈萊斯衰落,更改K值的大小,畫出Eb/N0---誤比特率曲線、瑞利衰落下的理論誤比特率曲線和高斯信道下的理論誤比特率曲線,觀察曲線的現象,能得出什么結論。 Bpsk: Qpsk 從上述兩圖可以看出當信噪比較小時,萊斯信道衰落接近于瑞利信道 ,當信噪比逐漸增大時,萊斯信道越來越接近高斯信道。
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 植樹問題講課
- 小小圖書館賈世喜
- 小班數學:變得一樣多
- 蘇教版三年級數學上冊教學ppt課件58:解決問題的策略復習
- 小學科學六下《拓展與應用》-公開課一等獎ppt課件
- 高中英語人教版選修七Unit-2-Robots-ppt課件
- 第九章長期負債課件
- 皮膚免疫系統(tǒng)課件
- 辦公樓施工現場消防安全管理要求規(guī)范課件
- freeroi在功能磁共振roi分析中的應用
- 《永遇樂&#183;京口北固亭懷古》用典講解課件
- 《秋天的雨》微課課件
- 護患溝通技巧-課件
- 《高等數學B》第十章___微分方程與差分方程__第6節(jié)__差分與差分方程的概念_、……課件
- 英語(人教版)九年級總復習題型訓練補全對話(含最新原創(chuàng)題)課件