matlab qpsk调制 函数,MATLAB_QPSK调制与解调
《MATLAB_QPSK調(diào)制與解調(diào)》由會(huì)員分享,可在線閱讀,更多相關(guān)《MATLAB_QPSK調(diào)制與解調(diào)(11頁(yè)珍藏版)》請(qǐng)?jiān)谌巳宋膸?kù)網(wǎng)上搜索。
1、實(shí)驗(yàn)名稱:QPSK仿真系統(tǒng)一、 實(shí)驗(yàn)?zāi)康?#xff1a;1、學(xué)會(huì)QPSK調(diào)制與解調(diào)系統(tǒng)的構(gòu)成2、學(xué)會(huì)QPSK調(diào)制與解調(diào)系統(tǒng)的各模塊的構(gòu)建3、學(xué)會(huì)誤碼率與誤符號(hào)率的統(tǒng)計(jì)方法以及Matlab算法二、實(shí)驗(yàn)原理:1、QPSK:四進(jìn)制絕對(duì)相移鍵控,也稱為多進(jìn)制數(shù)字相位調(diào)制,利用載波的四種不同相位狀態(tài)來表征數(shù)字信息的調(diào)制方式。2、QPSK的調(diào)制方法有正交調(diào)制方式(雙路二相調(diào)制合成法或直接調(diào)相法)、相位選擇法、插入脈沖法。調(diào)制與解調(diào)系統(tǒng)的構(gòu)成:0,1序列產(chǎn)生器QPSK映射AWGN產(chǎn)生器AWGN產(chǎn)生器QPSK反映射比較器誤比特統(tǒng)計(jì)誤符號(hào)統(tǒng)計(jì)判決器IsQscnsnIrQrbb3、各模塊的實(shí)現(xiàn)方法:(1)、信源的產(chǎn)生:使用ra。
2、ndint(m,n,2) 函數(shù)產(chǎn)生一個(gè)m行n列的隨機(jī)二進(jìn)制數(shù)列(2)、QPSK符號(hào)映射 :將產(chǎn)生的0,1比特流按照QPSK調(diào)制方式進(jìn)行映射,本實(shí)驗(yàn)采用/4 QPSK的調(diào)制方式,圖為:(3)、AWGN信號(hào)產(chǎn)生:AWGN產(chǎn)生器就是產(chǎn)生滿足均值為0,方差為1的高斯白噪聲。實(shí)驗(yàn)中使用randn(m,n)函數(shù)產(chǎn)生一個(gè)m行n列的高斯噪聲序列。(4)、信號(hào)幅度控制:根據(jù)AWGN信道模型,接收信號(hào)可以分別表示為 就是當(dāng)噪聲功率歸一化為1(0均值,方差為1)時(shí),根據(jù)信噪比關(guān)系而計(jì)算出來的信號(hào)平均幅度 (5)、QPSK反映射及判決 :對(duì)接收到的信號(hào)在4種可能的四種信號(hào)向量(1,0), (0,1), (-1,0),。
3、 (0,-1)上投影(即進(jìn)行點(diǎn)積)。投影最大的值所對(duì)應(yīng)的信號(hào)向量就是所發(fā)送信號(hào)的符號(hào)值,然后恢復(fù)出比特流 (6)、誤碼率及誤符號(hào)率統(tǒng)計(jì):誤碼率:將檢測(cè)出來的比特流和發(fā)送的原始比特流進(jìn)行比較,統(tǒng)計(jì)出出現(xiàn)錯(cuò)誤的比特?cái)?shù)誤符號(hào)率:將檢測(cè)出來的比特流變成兩組,構(gòu)成符號(hào),和發(fā)送端符號(hào)映射后的符號(hào)流進(jìn)行比較,只要符號(hào)中任錯(cuò)一bit,就算該符號(hào)出錯(cuò)。統(tǒng)計(jì)出現(xiàn)錯(cuò)誤的符號(hào)數(shù)三、 實(shí)驗(yàn)內(nèi)容:1、 調(diào)制與解調(diào)clear allclose all% 調(diào)制bit_in = randint(1e3, 1, 0 1);bit_I = bit_in(1:2:1e3);bit_Q = bit_in(2:2:1e3);data_I。
4、 = -2*bit_I+1;data_Q = -2*bit_Q+1;data_I1=repmat(data_I,20,1);data_Q1=repmat(data_Q,20,1);for i=1:1e4data_I2(i)=data_I1(i);data_Q2(i)=data_Q1(i);end;f=0:0.1:1;xrc=0.5+0.5*cos(pi*f);data_I2_rc=conv(data_I2,xrc)/5.5;data_Q2_rc=conv(data_Q2,xrc)/5.5;f1=1;t1=0:0.1:1e3+0.9;n0=rand(size(t1);I_rc=data_I2_r。
5、c.*cos(2*pi*f1*t1);Q_rc=data_Q2_rc.*sin(2*pi*f1*t1);QPSK_rc=(sqrt(1/2).*I_rc+sqrt(1/2).*Q_rc);QPSK_rc_n0=QPSK_rc+n0;% 解調(diào)I_demo=QPSK_rc_n0.*cos(2*pi*f1*t1);Q_demo=QPSK_rc_n0.*sin(2*pi*f1*t1);% 低通濾波I_recover=conv(I_demo,xrc); Q_recover=conv(Q_demo,xrc);I=I_recover(11:10010);Q=Q_recover(11:10010);t2=0:。
6、0.05:1e3-0.05;t3=0:0.1:1e3-0.1;% 抽樣判決data_recover=;for i=1:20:10000data_recover=data_recover I(i:1:i+19) Q(i:1:i+19);end;bit_recover=;for i=1:20:20000if sum(data_recover(i:i+19)0data_recover_a(i:i+19)=1;bit_recover=bit_recover 1;elsedata_recover_a(i:i+19)=-1;bit_recover=bit_recover -1;endenderror=0;。
7、dd = -2*bit_in+1;ddd=dd;ddd1=repmat(ddd,20,1);for i=1:2e4ddd2(i)=ddd1(i);endfor i=1:1e3if bit_recover(i)=ddd(i)error=error+1;endendp=error/1000;figure(1)subplot(2,1,1);plot(t2,ddd2);axis(0 100 -2 2);title(原序列);subplot(2,1,2);plot(t2,data_recover_a);axis(0 100 -2 2);title(解調(diào)后序列);2、 誤碼率仿真% QPSK誤碼率分析SN。
8、RindB1=0:2:10;SNRindB2=0:0.1:10;for i=1:length(SNRindB1)pb,ps=cm_sm32(SNRindB1(i);smld_bit_err_prb(i)=pb;smld_symbol_err_prb(i)=ps;end;for i=1:length(SNRindB2)SNR=exp(SNRindB2(i)*log(10)/10);theo_err_prb(i)=Qfunct(sqrt(2*SNR);end;title(QPSK誤碼率分析);semilogy(SNRindB1,smld_bit_err_prb,*);axis(0 10 10e-8。
9、 1);hold on;% semilogy(SNRindB1,smld_symbol_err_prb,o);semilogy(SNRindB2,theo_err_prb);legend(仿真比特誤碼率,理論比特誤碼率);hold off;functiony=Qfunct(x)y=(1/2)*erfc(x/sqrt(2);functionpb,ps=cm_sm32(SNRindB)N=10000;E=1;SNR=10(SNRindB/10);sgma=sqrt(E/SNR)/2;s00=1 0;s01=0 1;s11=-1 0;s10=0 -1;for i=1:Ntemp=rand;if (t。
10、emp0);remessage(1,m1)=1+j;redata(m1,1)=1;redata(m1,2)=1;m2= find( angle(receive)pi/2&angle(receive)-pi&angle(receive)-pi/2&angle(receive)0.5)-1) + 1i*(2*(rand(1,N)0.5)-1); s = (1/sqrt(2)*p; %歸一化n = 10(-Eb_N0(j)/40)*1/sqrt(2)*(randn(1,N) + 1i*randn(1,N); %加性高斯白噪聲r(shí) = s + n; %解調(diào)r_re = real(r); %實(shí)部r_im 。
11、= imag(r); %虛部s_data(r_re = 0 & r_im 0) = 1 + 1*1i;s_data(r_re = 0) = -1 + 1*1i;s_data(r_re = 0 & r_im 0) = 1 - 1*1i;ErrorCount(j) = size(find(p- s_data),2); %錯(cuò)誤的碼元數(shù)endsim_QPSK = ErrorCount/N; theory_QPSK = erfc(sqrt(0.5*(10.(Eb_N0/20) - (1/4)*(erfc(sqrt(0.5*(10.(Eb_N0/20).2; close allfiguresemilogy(Eb_N0,theory_QPSK,b.-);hold onsemilogy(Eb_N0,sim_QPSK,mx-);axis(-4 20 10-3 1)grid on。
總結(jié)
以上是生活随笔為你收集整理的matlab qpsk调制 函数,MATLAB_QPSK调制与解调的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 驱动提取软件_深入分析施耐德工控软件代码
- 下一篇: micropython 串口写文件_Mi