武漢理工大學(xué)移動(dòng)通信實(shí)驗(yàn)報(bào)告_第1頁
武漢理工大學(xué)移動(dòng)通信實(shí)驗(yàn)報(bào)告_第2頁
武漢理工大學(xué)移動(dòng)通信實(shí)驗(yàn)報(bào)告_第3頁
武漢理工大學(xué)移動(dòng)通信實(shí)驗(yàn)報(bào)告_第4頁
武漢理工大學(xué)移動(dòng)通信實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、序號(hào)(學(xué)號(hào)):實(shí)驗(yàn)報(bào)告書實(shí)驗(yàn)課程名稱移動(dòng)通信系統(tǒng)實(shí)驗(yàn)開課學(xué)院 信息工程學(xué)院指導(dǎo)老師姓名 學(xué)生姓名 學(xué)生專業(yè)班級(jí) 2014 年 4 月 20日實(shí)驗(yàn)課程名稱:移動(dòng)通信系統(tǒng)實(shí)驗(yàn)實(shí)驗(yàn)項(xiàng)目名稱AWGN信道中BPSK調(diào)制系統(tǒng)的BER仿真計(jì)算實(shí)驗(yàn)成績(jī)實(shí) 驗(yàn) 者專業(yè)班級(jí)組 別同 組 者/實(shí)驗(yàn)日期2014年4月11日一實(shí)驗(yàn)?zāi)康?掌握二相BPSK調(diào)制的工作原理;2掌握利用MATLAB進(jìn)行誤比特率測(cè)試BER的方法;3掌握AWGN信道中BPSK調(diào)制系統(tǒng)的BER仿真計(jì)算方法。二實(shí)驗(yàn)儀器 1.計(jì)算器及操作系統(tǒng) 2.MATLAB軟件三實(shí)驗(yàn)原理1 仿真概述及原理在數(shù)字領(lǐng)域進(jìn)行的最多的仿真任務(wù)是進(jìn)行調(diào)制解調(diào)器的誤比特率測(cè)試,在

2、相同的條件下進(jìn)行比較的話,接收器的誤比特率性能是一個(gè)十分重要的指標(biāo)。誤比特率的測(cè)試需要一個(gè)發(fā)送器、一個(gè)接收器和一條信道。首先需要產(chǎn)生一個(gè)長(zhǎng)的隨機(jī)比特序列作為發(fā)送器的輸入,發(fā)送器將這些比特調(diào)制成某種形式的信號(hào)以便傳送到仿真信道,我們?cè)趥鬏斝诺郎霞由弦欢ǖ目烧{(diào)制噪聲,這些噪聲信號(hào)會(huì)變成接收器的輸入,接收器解調(diào)信號(hào)然后恢復(fù)比特序列,最后比較接收到的比特和傳送的比特并計(jì)算錯(cuò)誤。誤比特率性能常能描述成二維圖像??v坐標(biāo)是歸一化的信噪比,即每個(gè)比特的能量除以噪聲的單邊功率譜密度,單位為分貝。橫坐標(biāo)為誤比特率,沒有量綱。2 仿真過程及計(jì)算 運(yùn)行發(fā)生器:通過發(fā)送器將偽隨機(jī)序列變成數(shù)字化的調(diào)制信號(hào)。 設(shè)定信噪比:

3、假定SNR為m dB,則Eb/N0=10,用MATLAB假設(shè)SNR單位為分貝。 確定Eb 計(jì)算N0 計(jì)算噪聲的方差n 產(chǎn)生噪聲:因?yàn)樵肼暰哂辛憔?,所以其功率和方差相等。我們產(chǎn)生一個(gè)和信號(hào)長(zhǎng)度相同的噪聲向量,且該向量方差為n。 加上噪聲,運(yùn)行接收器 確定時(shí)間延遲 產(chǎn)生誤差向量 統(tǒng)計(jì)錯(cuò)誤比特:誤差向量“err”中的每一個(gè)非零元素對(duì)應(yīng)著一個(gè)錯(cuò)誤的比特。最后計(jì)算誤比特率BER:每運(yùn)行一次誤比特率仿真,就需要傳輸和接收固定數(shù)量的比特,然后確定接收到的比特中有多少錯(cuò)誤的。使用MATLAB計(jì)算BER: ber=te/length(tx)。四實(shí)驗(yàn)內(nèi)容1. 實(shí)驗(yàn)程序a% Simulation of BPSK

4、AWGNMax_SNR=10;N_trials=1000;N=200;Eb=1;ber_m=0;for trial=1:1:N_trials;trialmsg=round(rand(1,N); % 1,0 sequences=1-msg.*2; %0->1,1->1n=randn(1,N)+j.*randn(1,N); %generate guass white noiseber_v=;for snr_dB=1:2:Max_SNRsnr=10.(snr_dB./10); %snr(db)->snr(decimal)N0=Eb./snr;sgma=sqrt(N0./2);y=s

5、qrt(Eb).*s+sgma.*n;y1=sign(real(y);y2=(1-y1)./2; %1, 0 sequenceerror=sum(abs(msg-y2); %error bitsber_snr=error./N; %berber_v=ber_v,ber_snr;end %for snrber_m=ber_m+ber_v;endber=ber_m./N_trials;ber_theory=;for snr_db=1:2:Max_SNRsnr=10.(snr_db./10);snr_1=qfunc(sqrt(2*snr);ber_theory=ber_theory,snr_1;en

6、di=1:2:Max_SNR;semilogy(i,ber,'-r',i,ber_theory,'*b');xlabel('E_b/N_0(dB)')ylabel('BER')legend('Monte Carlo','Theoretic')2. 實(shí)驗(yàn)程序b%Simulation of QPSK AWGNN_trials=1000;N_number=100;N_snr=10;Es=1;BER_m=0;SER_m=0;for trials=1:N_trials; trials s10=round(ra

7、nd(1,N_number); S=(s10*2-1)./sqrt(2); S1=S(1:2:N_number); S2=S(2:2:N_number);Sc=S1+j.*S2; %generate qpsk signal noise=randn(1,N_number/2)+j.*randn(1,N_number/2);SER_v=; %Symbol error rateBER_v=; %Bit error ratefor snr_db=0:1:N_snr;sgma=(1/2)*sqrt(10.(-snr_db./10); Y=Sc+sgma.*noise;Y_r=sign(real(Y)./

8、sqrt(2);Y_i=sign(imag(Y)./sqrt(2);Y_bit=; for k=1:length(Y_r);Y_bit=Y_bit,Y_r(k),Y_i(k); end;Y_symbol=Y_r+j*Y_i;X_b=S-Y_bit; X_s=Sc-Y_symbol;ber_snr=0; for k=1:N_number if X_b(k)=0;ber_snr=ber_snr+1; end; end;ser_snr=0; for k=1:N_number/2; if X_s(k)=0;ser_snr=ser_snr+1; end; end;BER_v=BER_v,ber_snr.

9、/N_number;SER_v=SER_v,ser_snr./(N_number./2); end; %for SNRBER_m=BER_m+BER_v;SER_m=SER_m+SER_v; end% for trials BER=BER_m./N_trials; SER=SER_m./N_trials; BER_T=; SER_T=; for snr_db=0:1:N_snr;snr=10.(snr_db./10); BER_THEORY=qfunc(sqrt(2.*snr); SER_THEORY=1-(1-(1/2).*erfc(sqrt(snr).2; BER_T=BER_T,BER_

10、THEORY; SER_T=SER_T,SER_THEORY;end;figurei=0:1:N_snr;semilogy(i,BER,'-r',i,BER_T,'*b');legend('BER-simulation','BER-theory');xlabel('Eb/NO(db)');ylabel('BER');figurei=0:1:N_snr;semilogy(i,SER,'-r',i,SER_T,'*b');legend('SER-simulatio

11、n','SER-theory');xlabel('Eb/NO(db)');ylabel('SER');五仿真結(jié)果 1.實(shí)驗(yàn)程序a圖a3. 實(shí)驗(yàn)程序b圖b1圖b2五實(shí)驗(yàn)小結(jié)通過本次實(shí)驗(yàn),掌握了二相BPSK調(diào)制的工作原理及利用MATLAB進(jìn)行誤比特率測(cè)試BER的方法,學(xué)會(huì)了AWGN信道中BPSK調(diào)制系統(tǒng)的BER仿真計(jì)算方法。在實(shí)驗(yàn)過程中我通過不斷的調(diào)試與學(xué)習(xí),對(duì)本次實(shí)驗(yàn)的內(nèi)容有了整體的把握,對(duì)MATLAB的使用也更加熟練,達(dá)到了預(yù)期的效果,收獲很大。實(shí)驗(yàn)課程名稱:移動(dòng)通信系統(tǒng)實(shí)驗(yàn)實(shí)驗(yàn)項(xiàng)目名稱移動(dòng)信道建模的仿真分析實(shí)驗(yàn)成績(jī)實(shí) 驗(yàn) 者專業(yè)班級(jí)組

12、別同 組 者/實(shí)驗(yàn)日期一、實(shí)驗(yàn)?zāi)康? 無線通信信道的建模與仿真是實(shí)現(xiàn)移動(dòng)通信系統(tǒng)仿真與分析的基礎(chǔ),寬帶無線通與移動(dòng)通信信道屬頻率選擇性瑞利衰落信道模型。2 通過信道設(shè)計(jì)實(shí)驗(yàn) 掌握頻率選擇性信道模型的仿真建模方法 掌握模型中瑞利衰落系數(shù)的設(shè)計(jì)方法 掌握多徑數(shù)目、功率和時(shí)延參數(shù)的設(shè)計(jì) 學(xué)會(huì)采用MATLAB語言對(duì)上述參數(shù)進(jìn)行仿真。二、實(shí)驗(yàn)儀器 1.計(jì)算器及操作系統(tǒng) 2.MATLAB軟件三、實(shí)驗(yàn)方案和技術(shù)路線1 選擇路徑數(shù)2 按均勻分布產(chǎn)生各條路徑的延遲3 按功率時(shí)延譜確定對(duì)應(yīng)的各徑的功率4 按Jake模型產(chǎn)生各徑的瑞利衰落系數(shù)5 對(duì)瑞利衰落系數(shù)進(jìn)行統(tǒng)計(jì)分析并與理論值相比較說明:1 路徑數(shù)目2-4自己

13、確定,或采用某個(gè)國(guó)際標(biāo)準(zhǔn)2 每條路徑時(shí)間延遲滿足(0,Tmax)范圍內(nèi)均勻分布,Tmax為自己選擇的最大采樣步長(zhǎng)數(shù)200-600間比較合適,或采用國(guó)際標(biāo)準(zhǔn)3 功率可以按時(shí)延遲譜求得,也可用國(guó)際標(biāo)準(zhǔn)測(cè)量值。功率延遲譜:若采用等功率分配產(chǎn)生功率:Pi=Pt/M;采用指數(shù)分布的功率延遲譜產(chǎn)生功率:P=1/6*exp(-t/6)四、實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)程序如下:% Simulation of Jakes Modelclear all;f_max=30;M=8; N=4*M+2;Ts=1.024e-04;sq=2/sqrt(N);sigma=1/sqrt(2);theta=0;count=0; t0=0.001

14、; for t=0:Ts:0.5 count=count+1; g(count)=0; for n=1:M+1, if n<=Mc_q(count,n)=2*sigma*sin(pi*n/M); %Gain associated with quadrature componentc_i(count,n)=2*sigma*cos(pi*n/M); %Gain associated with inphase componentf_i(count,n)=f_max*cos(2*pi*n/N); %Discrete doppler frequencies of inphase component

15、f_q(count,n)=f_max*cos(2*pi*n/N); %Discrete doppler frequencies of quadrature component elsec_i(count,n)=sqrt(2)*cos(pi/4);c_q(count,n)=sqrt(2)*sin(pi/4);f_i(count,n)=f_max;f_q(count,n)=f_max; end; % end ifg_i(count,n)= c_i(count,n)*cos(2*pi*f_i(count,n)*(t-t0)+theta); %Inphase component for one osc

16、illatorg_q(count,n)= c_q(count,n)*cos(2*pi*f_q(count,n)*(t-t0)+theta); %Quadrature componentforoneoscillator end; %end ntp(count)= sq*sum(g_i(count,1:M+1); % Total Inphase component tp1(count)= sq*sum(g_q(count,1:M+1); % Total quadrature component end; % end count no nagain envelope=sqrt(tp.2+tp1.2)

17、;rmsenv=sqrt(sum(envelope.2)/count); auto_i,lag_i=xcorr(tp,'coeff'); %Auto-correlation associated with inphase component auto_q,lag_q=xcorr(tp,'coeff'); %Auto-correlation associated with quadrature componentlen=length(lag_i); corrx2,lag2=xcorr(tp,tp1,'coeff');aa=-(len-1)/2:1:

18、(len-1)/2; %total duration for lagbb=(len-2001)./2; %mid.points for drawing figures cc=bb+1:1:bb+2001; %for getting the mid-valuesdd=-1000:1:1000;%-tdd=dd*Ts;z=2.*pi.*f_max*tdd;sigma0=1;T_bessel=sigma0.2.*besselj(0,z);figure;plot(tdd,auto_i(cc),'-',tdd,T_bessel,'*'); %in-phasexlabel(

19、't(Second)');ylabel('Auto-correlation');legend('In-component');figure;plot(tdd,auto_q(cc),'-',tdd,T_bessel,'*'); %quadraturexlabel('t(Second)');ylabel('Auto-correlation');legend('Q-component');figure;co1=1:1000;semilogy(co1*Ts,envelope(

20、1:1000);xlabel('t(Second)');ylabel('Rayleigh Coef.');%-length_r=length(envelope);pdf_env=zeros(1,501);count=0;temp=round(100.*envelope);for k=1:length_r if temp(k)<=500 count=count+1;pdf_env(1,temp(k)+1)=pdf_env(1,temp(k)+1)+1; endendcountpdf_env=pdf_env./count./0.01;sgma2=0.5;x=0

21、:0.01:5;pdf_theory=(x./sgma2).*exp(-1.*x.2./(2.*sgma2);figure;plot(x,pdf_env,'-',x,pdf_theory,'*');legend('Simulated','Theoretic');xlabel('r');ylabel('PDF of r');五仿真結(jié)果圖1圖2圖3圖4六.實(shí)驗(yàn)小結(jié)通過本次實(shí)驗(yàn),我進(jìn)行了無線通信信道的建模與仿真,認(rèn)識(shí)到它是實(shí)現(xiàn)移動(dòng)通信系統(tǒng)仿真與分析的基礎(chǔ),寬帶無線通信與移動(dòng)通信信道屬頻率選擇性瑞利衰落信道

22、模型。通過信道設(shè)計(jì)實(shí)驗(yàn),基本掌握了頻率選擇性信道模型的仿真建模方法以及模型中瑞利衰落系數(shù)的設(shè)計(jì)方法,學(xué)會(huì)了多徑數(shù)目、功率和時(shí)延參數(shù)的設(shè)計(jì)和采用MATLAB語言對(duì)上述參數(shù)進(jìn)行仿真。實(shí)驗(yàn)過程中,我通過不斷調(diào)試與修改,終于成功完成了任務(wù),加深對(duì)MATLAB的應(yīng)用的同時(shí)掌握了相關(guān)的知識(shí)。實(shí)驗(yàn)課程名稱:移動(dòng)通信系統(tǒng)實(shí)驗(yàn)實(shí)驗(yàn)項(xiàng)目名稱CDMA通信系統(tǒng)仿真實(shí)驗(yàn)成績(jī)實(shí) 驗(yàn) 者專業(yè)班級(jí)組 別同 組 者/實(shí)驗(yàn)日期一、實(shí)驗(yàn)?zāi)康?. CDMA通信具有很多通信特點(diǎn),不僅被IS-95移動(dòng)通信系統(tǒng)使用,目前已成為3G的主要技術(shù)。2. 通過實(shí)驗(yàn):(1)掌握直接序列擴(kuò)頻發(fā)射機(jī)與接收機(jī)的組成與仿真;(2)仿真驗(yàn)證AWGN信道下單用

23、戶直接序列擴(kuò)頻系統(tǒng)的BER性能;(3)仿真驗(yàn)證平坦瑞利信道下單用戶直接序列擴(kuò)頻系統(tǒng)的BER性能;(4)觀察存在干擾用戶時(shí)的系統(tǒng)性能變化。二、實(shí)驗(yàn)儀器1.計(jì)算器及操作系統(tǒng)2.Matlab軟件三、實(shí)驗(yàn)原理仿真基帶直接序列擴(kuò)頻系統(tǒng):1. 采用BPSK或QPSK映射2. 擴(kuò)頻序列可以是隨機(jī)產(chǎn)生,可以是m序列,也可以是Gold碼,長(zhǎng)度自選3. 最后對(duì)BER或SER隨信噪比變化畫圖與理論單用戶的結(jié)果比較,并對(duì)仿真結(jié)果進(jìn)行分析.四、實(shí)驗(yàn)方案與技術(shù)路線1. 確定用戶數(shù)目、信道特征以及調(diào)制方式2. 確定基帶擴(kuò)頻仿真系統(tǒng)的原理結(jié)構(gòu)圖,按照框圖設(shè)計(jì)一個(gè)CDMA系統(tǒng),并進(jìn)行仿真。信源卷積編碼交織編碼加擾碼擴(kuò)頻調(diào)制AW

24、GN信道調(diào)制解擴(kuò)信宿解卷積解交織去擾碼3. 用MATLAB進(jìn)行仿真,統(tǒng)計(jì)BER或SER隨信噪比的關(guān)系,繪出曲線4. 對(duì)統(tǒng)計(jì)試驗(yàn)的結(jié)果與單用戶的理論值進(jìn)行比較5. 對(duì)仿真結(jié)果進(jìn)行分析五、仿真結(jié)果1.仿真主程序%main_IS95_forward.m %此函數(shù)用于IS-95前向鏈路系統(tǒng)的仿真,包括擴(kuò)%頻調(diào)制,匹配濾波,RAKE接收等相關(guān)通信模塊。%仿真環(huán)境: 加性高斯白噪聲信道. %數(shù)據(jù)速率 = 9600 KBps% clear allclose allclcdisp('-start-'); global ZiZqZs show R GiGqclear j; show = 0; %

25、控制程序運(yùn)行中的顯示SD = 0; % 選擇軟/硬判決接收%-主要的仿真參數(shù)設(shè)置-BitRate = 9600; %比特率ChipRate = 1228800; %碼片速率N = 184; %源數(shù)據(jù)數(shù)MFType = 1; % 匹配濾波器類型-升余弦R = 5;%+Viterbi生成多項(xiàng)式+G_Vit = 1 1 1 1 0 1 0 1 1; 1 0 1 1 1 0 0 0 1;%Viterbi生成多項(xiàng)式矩陣K = size(G_Vit, 2); %列數(shù)L = size(G_Vit, 1); %行數(shù)%+ %+Walsh矩陣+WLen = 64; %walsh碼的長(zhǎng)度Walsh = reshap

26、e(1;0*ones(1, WLen/2), WLen , 1); %32個(gè)1 0行%Walsh = zeros(WLen ,1); %+ %+擴(kuò)頻調(diào)制PN碼的生成多項(xiàng)式+%Gi = 1 0 1 0 0 0 1 1 1 0 1 0 0 0 0 1' %Gq = 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1' Gi_ind = 15, 13, 9, 8, 7, 5, 0' %i路PN碼生成多項(xiàng)式參數(shù)Gq_ind = 15, 12, 11, 10, 6, 5, 4, 3, 0' %q路PN碼生成多項(xiàng)式參數(shù)Gi = zeros(16, 1); %16

27、×1的0矩陣Gi(16-Gi_ind) = ones(size(Gi_ind);%根據(jù)Gi_ind配置i路PN碼生成多項(xiàng)式Zi = zeros(length(Gi)-1, 1); 1; % I路信道PN碼生成器的初始狀態(tài)Gq = zeros(16, 1); %16×1的0矩陣Gq(16-Gq_ind) = ones(size(Gq_ind); %根據(jù)Gq_ind配置q路PN碼生成多項(xiàng)式Zq = zeros(length(Gq)-1, 1); 1; % Q路信道PN碼生成器的初始狀態(tài)%+ %+擾碼生成多項(xiàng)式+Gs_ind = 42, 35, 33, 31, 27, 26, 2

28、5, 22, 21, 19, 18, 17, 16, 10, 7, 6, 5, 3, 2, 1, 0' Gs = zeros(43, 1); %43×1的0矩陣Gs(43-Gs_ind) = ones(size(Gs_ind); %根據(jù)Gs_ind配置擾碼生成多項(xiàng)式Zs = zeros(length(Gs)-1, 1); 1; % 長(zhǎng)序列生成器的初始狀態(tài)%+%+AWGN信道+ EbEc = 10*log10(ChipRate/BitRate);%處理增益EbEcVit = 10*log10(L); EbNo = -1: 0.5 : 1; %仿真信噪比范圍(dB) %EbNo

29、= -2 : 0.5 : -1.5; %+%-%-主程序-ErrorsB = ; ErrorsC = ; NN = ; if (SD = 1) % 判斷軟/硬判決接收fprintf('n SOFT Decision Viterbi Decodernn'); else fprintf('n HARD Decision Viterbi Decodernn'); end for i=1:length(EbNo) %根據(jù)EbNo多次運(yùn)行fprintf('nProcessing %1.1f (dB)', EbNo(i);%輸出當(dāng)前EbNo值iter = 0

30、;ErrB = 0; ErrC = 0; while (ErrB<300) & (iter<150) drawnow; %+發(fā)射機(jī)+ TxData = (randn(N, 1)>0);%生成源數(shù)據(jù) % 速率為19.2Kcps TxChips, Scrambler = PacketBuilder(TxData, G_Vit, Gs); %產(chǎn)生IS-95前向鏈路系統(tǒng)的發(fā)送數(shù)據(jù)包 % 速率為1.2288Mcps x PN MF = Modulator(TxChips, MFType, Walsh);%實(shí)現(xiàn)IS-95前向鏈路系統(tǒng)的數(shù)據(jù)調(diào)制 %+ %+信道+ noise = 1

31、/sqrt(2)*sqrt(R/2)*( randn(size(x) + j*randn(size(x)*10(-(EbNo(i) - EbEc)/20);%生成噪聲序列 r = x+noise;%加入噪聲 %+ %+接收機(jī)+ RxSD = Demodulator(r, PN, MF, Walsh); %軟判決,速率為19.2 KcpsRxHD = (RxSD>0); % 定義接收碼片的硬判決 if (SD) RxData Metric= ReceiverSD(RxSD, G_Vit, Scrambler); %軟判決 else RxData Metric= ReceiverHD(RxH

32、D, G_Vit, Scrambler); %硬判決 end %+ if(show) subplot(311); plot(RxSD, '-o'); title('Soft Decisions'); %軟判決結(jié)果圖 subplot(312); plot(xor(TxChips, RxHD), '-o'); title('Chip Errors');%RAKE接收機(jī)輸入符號(hào)與發(fā)送碼相比出錯(cuò)的碼 subplot(313); plot(xor(TxData, RxData), '-o'); %硬判決接收機(jī)與發(fā)送數(shù)據(jù)相比的

33、出錯(cuò)碼title('Data Bit Errors. Metric = ', num2str(Metric); pause; end if(mod(iter, 50)=0) %每50次保存一次fprintf('.'); save TempResultsErrBErrC N iter %保存結(jié)果 end ErrB = ErrB + sum(xor(RxData, TxData);%求出錯(cuò)比特?cái)?shù)ErrC = ErrC + sum(xor(RxHD, TxChips); %求出錯(cuò)碼數(shù)iter = iter+ 1;%迭代次數(shù) end ErrorsB = ErrorsB;

34、 ErrB; %存儲(chǔ)各EbNo值下的出錯(cuò)比特?cái)?shù)ErrorsC = ErrorsC; ErrC; %存儲(chǔ)各EbNo值下的出錯(cuò)碼數(shù) NN = NN; N*iter; %存儲(chǔ)各EbNo值下的總數(shù)據(jù)碼數(shù)目 save SimData * %保存當(dāng)前迭代的數(shù)據(jù)end %+誤碼率計(jì)算+ PerrB = ErrorsB./NN; %出錯(cuò)比特比例%PerrB1 = ErrorsB1./NN1; PerrC = ErrorsC./NN; %出錯(cuò)碼比例Pbpsk= 1/2*erfc(sqrt(10.(EbNo/10); %EbNo的余誤差PcVit= 1/2*erfc(sqrt(10.(EbNo-EbEcVit)/

35、10);%EbNo-EbEcVit的余誤差Pc = 1/2*erfc(sqrt(10.(EbNo-EbEc)/10);%EbNo-EbEc的余誤差%+%+性能仿真顯示+ figure; semilogy(EbNo(1:length(PerrB), PerrB, 'b-*'); hold on;%信噪比誤碼率圖% %semilogy(EbNo(1:length(PerrB1), PerrB1, 'k-o'); hold on; % semilogy(EbNo(1:length(PerrC), PerrC, 'b-o'); grid on; % se

36、milogy(EbNo, Pbpsk, 'b-.'); % %semilogy(EbNo, PcVit, 'k-.x'); ylabel('BER'); % semilogy(EbNo, Pc, 'b-.x'); xlabel('信噪比/dB'); ylabel('誤碼率');grid on; % legend('Pb of System (HD)', 'Pb of System (SD)', 'Pc before Viterbi of System'

37、,% . 'Pb of BPSK with no Viterbi (theory)', 'Pc on Receiver (theory)'); % % legend('Pb of System', 'Pc before Viterbi of System', . %'Pb of BPSK with no Viterbi (theory)', %'Pc before Viterbi (theory)', 'Pc on Receiver (theory)');%+disp('-e

38、nd-');調(diào)用程序:%VitEnc.mfunction y = VitEnc(G, x); % 此函數(shù)根據(jù)生成多項(xiàng)式進(jìn)行Viterbi編碼%+variables+% G 生成多項(xiàng)式的矩陣% x 輸入數(shù)據(jù)(二進(jìn)制形式) % y Viterbi編碼輸出序列%+ K = size(G, 1); %每個(gè)數(shù)據(jù)比特的碼片數(shù)L = length(x); %輸入數(shù)據(jù)的長(zhǎng)度yy = conv2(G, x'); %二維卷積yy = yy(:, 1:L); %根據(jù)L重新設(shè)定yy長(zhǎng)度y = reshape(yy,K*L, 1);%矩陣變形y = mod(y, 2); %模二運(yùn)算%SoftVitDec

39、.mfunction xx, BestMetric = SoftVitDec(G, y, ZeroTail); % % 此函數(shù)是實(shí)現(xiàn)軟判決輸入的Viterbi譯碼 %+variables+% G 生成多項(xiàng)式的矩陣% y 輸入的待譯碼序列 % ZeroTail 判斷是否包含0尾% xx Viterbi譯碼輸出序列 % BestMetric 最后的最佳度量%+ L = size(G, 1); % 輸出碼片數(shù)K= size(G, 2); % 生成多項(xiàng)式的長(zhǎng)度 N = 2(K-1); % 狀態(tài)數(shù) T = length(y)/L; % 最大柵格深度 OutMtrx = zeros(N, 2*L); %輸

40、出矩陣的定義for s = 1:N in0 = ones(L, 1)*0, (dec2bin(s-1), (K-1)-'0'); in1 = ones(L, 1)*1, (dec2bin(s-1), (K-1)-'0'); out0 = mod(sum(G.*in0)'), 2); out1 = mod(sum(G.*in1)'), 2); OutMtrx(s, :) = out0, out1; %生成輸出矩陣end OutMtrx = sign(OutMtrx-1/2); PathMet = 100; zeros(N-1), 1); % 初始狀

41、態(tài) = 100 PathMetTemp = PathMet(:,1); %副本Trellis = zeros(N, T); %柵格的矩陣Trellis(:,1) = 0 : (N-1)'%給第一列賦值 y = reshape(y, L, length(y)/L);%矩陣按輸出碼片數(shù)變形for t = 1:T %主柵格計(jì)算循環(huán) yy = y(:, t); %取出y的第t列 for s = 0:N/2-1 B0 ind0 = max( PathMet(1+2*s, 2*s+1) + OutMtrx(1+2*s, 0+1:L) * yy; OutMtrx(1+(2*s+1), 0+1:L)*

42、yy ); B1 ind1 = max( PathMet(1+2*s, 2*s+1) + OutMtrx(1+2*s, L+1:L) * yy; OutMtrx(1+(2*s+1), L+1:L) * yy ); PathMetTemp(1+s, s+N/2) = B0; B1; %改變狀態(tài) Trellis(1+s, s+N/2, t+1) = 2*s+(ind0-1); 2*s + (ind1-1);%生成柵格矩陣 end PathMet = PathMetTemp;%賦狀態(tài)值 end xx = zeros(T, 1);%生成單列0矩陣,輸出變量 if (ZeroTail) %確定最佳度量

43、BestInd = 1; else Mycop, BestInd = max(PathMet); %非0尾,取最大值所在位置end BestMetric = PathMet(BestInd); %得到最后的最佳度量xx(T) = floor(BestInd-1)/(N/2); %賦值xx最后一個(gè)數(shù) NextState = Trellis(BestInd, (T+1); %從柵格矩陣獲得初態(tài)for t=T:-1:2 xx(t-1) = floor(NextState/(N/2);%倒序生成xx NextState = Trellis( (NextState+1), t); %從柵格矩陣獲得次態(tài)

44、end if (ZeroTail) xx = xx(1:end-K+1);%限定譯碼輸出序列長(zhǎng)度 end %ReceiverSD.mfunction DataOut, Metric = ReceiverSD(SDchips, G, Scrambler); % 此函數(shù)用于實(shí)現(xiàn)基于Viterbi譯碼的發(fā)送數(shù)據(jù)的恢復(fù)%+variables+% SDchips 軟判決RAKE接收機(jī)輸入符號(hào)% G Viterbi編碼生成多項(xiàng)式矩陣% Scrambler 擾碼序列% DataOut 接收數(shù)據(jù)(二進(jìn)制形式) % Metric Viterbi譯碼最佳度量%+ if (nargin = 1)%判斷只有SDchi

45、ps傳入時(shí)在此生成Viterbi編碼生成多項(xiàng)式矩陣 G = 1 1 1 1 0 1 0 1 1; 1 0 1 1 1 0 0 0 1; end % 速率=19.2 KBps SDchips = SDchips.*sign(1/2-Scrambler);%解擾 INTERL = reshape(SDchips, 16, 24);%解交織SDchips = reshape(INTERL', length(SDchips), 1); % 速率=19.2 KBps DataOut Metric = SoftVitDec(G, SDchips, 1);%實(shí)現(xiàn)軟判決輸入的Viterbi譯碼 %Re

46、ceiverHD.mfunction DataOut, Metric = ReceiverHD(HDchips, G, Scrambler); % 此函數(shù)用于實(shí)現(xiàn)基于Viterbi譯碼的硬判決接收機(jī)%+variables+%HDchips 硬判決RAKE接收機(jī)輸入符號(hào)% G Viterbi編碼生成多項(xiàng)式矩陣% Scrambler 擾碼序列% DataOut 接收數(shù)據(jù)(二進(jìn)制形式) % Metric Viterbi譯碼最佳度量%+ if (nargin = 1) %判斷只有HDchips傳入時(shí)在此生成Viterbi編碼生成多項(xiàng)式矩陣 G = 1 1 1 1 0 1 0 1 1; 1 0 1 1

47、1 0 0 0 1; end % 速率=19.2 KBps HDchips = xor(HDchips, Scrambler);%解擾 INTERL = reshape(HDchips, 16, 24);%解交織HDchips = reshape(INTERL', length(HDchips), 1);%速率=19.2 KBps DataOut Metric = VitDec(G, HDchips, 1);%維特比解碼 %*end of file*% *beginning of file*%VitDec.mfunction xx, BestMetric = VitDec(G, y, ZeroTail); % % 此函數(shù)是實(shí)現(xiàn)硬判決輸入的Viterbi譯碼 %+variables+% G 生成多項(xiàng)式的矩陣% y 輸入的待譯碼序列 % ZeroTail 判斷是否包含0尾% xx Viterbi譯碼輸出序列

溫馨提示

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

評(píng)論

0/150

提交評(píng)論