基于某matlab的QPSK与BPSK信号性能比较仿真.doc

上传人:夺命阿水 文档编号:17690 上传时间:2022-07-01 格式:DOC 页数:17 大小:309.20KB
返回 下载 相关 举报
基于某matlab的QPSK与BPSK信号性能比较仿真.doc_第1页
第1页 / 共17页
基于某matlab的QPSK与BPSK信号性能比较仿真.doc_第2页
第2页 / 共17页
基于某matlab的QPSK与BPSK信号性能比较仿真.doc_第3页
第3页 / 共17页
基于某matlab的QPSK与BPSK信号性能比较仿真.doc_第4页
第4页 / 共17页
基于某matlab的QPSK与BPSK信号性能比较仿真.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《基于某matlab的QPSK与BPSK信号性能比较仿真.doc》由会员分享,可在线阅读,更多相关《基于某matlab的QPSK与BPSK信号性能比较仿真.doc(17页珍藏版)》请在课桌文档上搜索。

1、word目 录第一章概述2第二章QPSK通信系统原理与仿真22.1 QPSK系统框图介绍2QPSK信号的调制原理3QPSK信号产生方法3QPSK星座图4QPSK解调原理与误码率分析4QPSK解调方法4QPSK系统误码率5QPSK信号在AWGN信道下仿真5第三章BPSK通信系统原理与仿真6BPSK信号的调制原理6BPSK解调原理与误码率分析7第四章QPSK与BPSK性能比拟8QPSK与BPSK在多信道下比拟仿真8纵向比拟分析8横向比拟分析10仿真结果分析10误码率分析10频带利用率比拟10附录11代码111代码211代码314代码416第一章 概述QPSK是英文Quadrature Phase

2、Shift Keying的缩略语简称,意为正交相移键控,是一种数字调制方式。它以其抗干扰性能强、误码性能好、频谱利用率高等优点,广泛应用于数字微波通信系统、数字卫星通信系统、宽带接人、移动通信与有线电视系统之中。BPSK是英文Binary Phase Shift Keying的缩略语简称,意为二相相移键控,是利用偏离相位的复数波浪组合来表现信息键控移相方式的一种。它使用了基准的正弦波和相位反转的波浪,使一方为0,另一方为1,从而可以同时传送承受2值(1比特)的信息。本文所研究的QPSK系统与二进制的BPSK系统相比,具有以下特点:1. 在传码率一样的情况下,四进制数字调制系统的信息速率是二进制

3、系统的2倍。2. 在一样信息速率条件下,四进制数字调制系统的传码率是二进制系统的1/4倍,这一特点使得四进制码元宽度是二进制码元宽度的2倍,码元宽度的加大,可增加每个码元的能量,也可减小码间串扰的影响。3. 由于四进制码元速率比二进制的降低,所需信道带宽减小。4. 在接收系统输入信噪比一样的条件下,四进制数字调制系统的误码率要高于二进制系统。5. 四进制数字调制系统较二进制系统复杂,常在信息速率要求较高的场合。基于以上优点,在数字信号的调制方式中QPSKQuadrature Phase Shift Keying四相移键控是目前最常用的一种卫星数字信号调制方式,它具有较高的频谱利用率、较强的抗干

4、扰性,在电路上实现也较为简单,因而被WCDMA和CDMA2000等第三代移动通信系统采用。第二章 QPSK通信系统原理与仿真2.1 QPSK系统框图介绍在图的系统中,发送方,QPSK数据源采用随机生成,信源编码采用差分编码,编码后的信号经QPSK调制器,经由发送滤波器进入传输信道。接收方,信号首先经过相位旋转,再经匹配滤波器解调,经阈值比拟得到未解码的接收信号,差分译码后得到接收信号,与信源发送信号相比拟,由此得到系统误码率,同时计算系统误码率的理论值,将系统值与理论值进展比拟。对于信道,这里选取的是加性高斯白噪声Additive White Gaussian Noise以与多径Rayleig

5、h衰落信道Multipath RayleighFading Channel。QPSK数据源差分编码器QPSK调制器发送滤波器衰减相位旋转相位同步积分与去除符号同步器阈值比拟差分译码器计算BER噪声图2.1 QPSK系统框图在实验中,选用的是差分码。差分码又称为相对码,在差分码中利用电平跳变来分别表示1或0,分为传号差分码和空号差分码。传号差分码:当输入数据为“1时,编码波型相对于前一码电平产生跳变;输入为“0时,波型不产生跳变。空号差分码:当输入数据为“0时,编码波型相对于前一码电平产生跳变;输入为“1时,波型不产生跳变。2.2 QPSK信号的调制原理2.2.1 QPSK信号产生方法QPSK信

6、号通常由图所示的调相法产生,输入的二进制序列经过一个串/并转换器后分为两路二进制序列,这里假设两路序列为a,b,并通过平衡调制器分别对同相载波与正交载波进展二相调制,得到如图中的虚线矢量。QPSK信号每个码元含有2比特的信息,现用ab代表这两个比特。两个比特有4种组合,即00、01、10和11。它们和相位之间的关系通常都按格雷码的规律安排,如表2-1所示。图2.2 调相法产生QPSK信号 图2.3 信号矢量2.2.2 QPSK星座图在本次系统仿真中使用仿真代码产生QPSK信号星座图,具体代码如附录代码1。运行得到的信号星座图如图,:表2-1 QPSK编码规如此abA方式B方式00101101表

7、中一组间隔均匀的受调制相位2.3 QPSK解调原理与误码率分析2.3.1 QPSK解调方法由于QPSK信号可以看作两个正交2PSK信号的叠加,解调框图如图2.6,用相干解调方法,即用两路正交的相干载波,可以很容易的别离出这两路正交的2PSK信号。解调后的两路基带信元a和b,经过并串变换后,成为串行数据输出。图2.4 A方式信号星座图 图2.5 B方式信号星座图2.3.2 QPSK系统误码率在QPSK体制中,由其矢量图图可以看出,因噪声的影响使接收端解调时发生错误判决,是由于信号矢量的相位发生偏离造成的。例如,设发送矢量的相位为,它代表基带信元“11,假如因噪声的影响使接收矢量的相位变成,如此将

8、误判为“01。当各个发送矢量以等概率出现时,合理的判决门限应该设在和相邻矢量等距离的位置。在图中对于矢量“11来说,判决门限应该设在和。当发送“11时,接收信号矢量的相位假如超出这一围图图2.6 QPSK信号解调原理框图 图2.7 QPSK噪声容限中阴影区,如此将发生错判。设为接收矢量包括信号和噪声相位的概率密度,如此发生错误的概率为:省略计算和Pe的繁琐过程,直接给出计算结果:上式计算出的是QPSK信号的误码率。假如考虑其误比特率,正交的两路相干解调方法和2PSK中采用的解调方法一样。所以其误比特率的计算公式也和2PSK的误码率公式一样。2.4 QPSK信号在AWGN信道下仿真仿真代码见附录

9、代码2。运行结果如图2.8:图2.8 AWGN环境下QPSK系统的仿真和理论结果由运行结果可以看出,仿真值与理论值根本吻合,误码率值随信噪比增大而下降。第三章 BPSK通信系统原理与仿真3.1 BPSK信号的调制原理图3.1 模拟调制方法图3.2 键控调制方法BSPK信号通常有2种调制方式,分别如图3.1、3.2所示。在2PSK中,通常用初始相位0和p分别表示二进制“1和“0。因此,2PSK信号的时域表达式为 式中,表示第n个符号的绝对相位:因此,上式可以改写为3.2 BPSK解调原理与误码率分析BPSK信号的解调器原理方框图3.3和波形图3.4,这里给出的解调框图采用相干解调的接收方法。图3

10、.3 BPSK信号相干解调框图波形图中,假设相干载波的基准相位与2PSK信号的调制载波的基准相位一致通常默认为0相位。但是,由于在2PSK信号的载波恢复过程中存在着的相位模糊,即恢复的本地载波与所需的相干载波可能同相,也可能反相,这种相位关系的不确定性将会造成解调出的数字基带信号与发送的数字基带信号正好相反,即“1变为“0,“0变为“1,判决器输出数字信图3.4 相干解调波形示意图号全部出错。这种现象称为2PSK 方式的“倒现象或“反相工作。这也是2PSK方式在实际中很少采用的主要原因。另外,在随机信元序列中,信号波形有可能出现长时间连续的正弦波形,致使在接收端无法识别信元的起止时刻。第四章

11、QPSK与BPSK性能比拟4.1 QPSK与BPSK在多信道下比拟仿真QPSK仿真程序见代码3。BPSK仿真程序见代码4。下面对QPSK与BPSK在多信道下的BER-SNR曲线进展横向与纵向的比拟,如表4-1所示。4.1.1 纵向比拟分析图中依次给出LOS信道、莱斯平坦衰落信道、莱斯频率选择性衰落、瑞利平坦衰落信道、瑞利频率选择性衰落。比拟频率选择性衰落和其相应的平坦衰落,可发现频率选择性衰落比相应的平坦衰落的性能差。比拟莱斯信道和瑞利信道,可发现不存在视距分量的瑞利信道比存在视距分量的任何莱斯信道的性能差。表4-1 QPSK与BPSK在多信道下性能比拟信道QPSKBPSKLOS莱斯平坦衰落莱

12、斯频率选择性衰落信道QPSKBPSK瑞利平坦衰落瑞利频率选择性衰落4.1.2 横向比拟分析一样信道下,BPSK调制的系统误码率小于QPSK调制。本次仿真过程中,莱斯平坦衰落信道下两者误码率差异显著。4.2 仿真结果分析4.2.1 误码率分析由前面介绍的误码率容可以看出,QPSK判决门限为,BPSK的判决门限为。因此一样系统情况下的误码率BPSK优于QPSK。4.2.2 频带利用率比拟在传码率一样的情况下,四进制数字调制系统的信息速率是二进制系统的2倍。频带利用率公式在一样信号速率的情况下,QPSK和BPSK系统的带宽是一样的,但是由于QPSK每个信号都是四进制的,QPSK每个信号包含2bit信

13、息,所以比特率就是BPSK的两倍,因而其频带利用率即为BPSK的两倍。BPSK系统理论的频带利用率最大为1,但是在实际的实现中不能达到1,而在QPSK系统中,频带利用率可以超过1。附 录代码1function qpskconstellationA(M)M=4;x=0:M-1;scatterplot(pskmod(x,M); % A方式QPSK信号grid on;returnfunction qpskconstellationB(M)M=4;x=0:M-1;scatterplot(pskmod(x,M,pi/4); % B方式QPSK信号grid on;return代码2function x,b

14、its=random_binary(nbits,nsamples)x=zeros(1,nbits*nsamples);bits=round(rand(1,nbits);for m=1:nbitsfor n=1:nsamples index=(m-1)*nsamples+n; x(1,index)=(-1)bits(m);endendreturnfunction c,lags=vxcorr(a,b)%计算a b 的互相关系数,返回C是列向量,长度为ab的长度和减1a=a(:);b=b(:);M=length(a);maxlag=M-1;lags=-maxlag:maxlag;A=fft(a,2n

15、extpow2(2*M-1);%快速傅立叶变换B=fft(b,2nextpow2(2*M-1);c=ifft(A.*conj(B);%快速傅立叶反变换c=c(end-maxlag+1:end,1);c(1:maxlag+1,1);nr nc=size(a);if(nrnc) c=c; lags=lags.;endreturnfunction BER_MC=MCQPSKrun(N,Eb,N0,ChanAtt,TimingBias,TimingJitter,PhaseBias,PhaseJitter)fs=1e+6; % 采样速率SymRate=1e+5; % 信号速率Ts=1/fs; % 采样周

16、期TSym=1/SymRate; % 信号周期SymToSend=N; % 发送信号数ChanBW=4.99e+5; % 带宽MeanCarrierPhaseError=PhaseBias; % 载波相位均值StdCarrierPhaseError=PhaseJitter; % 相位误差标准差MeanSymbolSyncError=TimingBias; % 符号同步误差均值StdSymbolSyncError=TimingJitter; % 符号同步误差标准差ChanGain=10(-ChanAtt/20); % 信道增益TxBitClock=Ts/2; % 发送机时钟RxBitClock=

17、Ts/2; % 接收机时钟%接收机输入端噪声标准差和信号幅度RxNoiseStd=sqrt(10(N0-30)/10)*(fs/2);TxSigAmp=sqrt(10(Eb-30)/10)*SymRate);%分配缓存SampPerSym=fs/SymRate;probe1=zeros(SymToSend+1)*SampPerSym,1);probe1counter=1;probe2=zeros(SymToSend+1)*SampPerSym,1);probe2counter=1;%计已传输信号的个数TxSymSent=1;RxSymDemod=0;%发送和接收数据缓冲区unused,Sour

18、ceBitsI=random_binary(SymToSend,1);unused,SourceBitsQ=random_binary(SymToSend,1);%差分编码TxBitsI=SourceBitsI*0;TxBitsQ=SourceBitsQ*0;for k=2:length(TxBitsI) TxBitsI(k)=or(and(not(xor(SourceBitsI(k),SourceBitsQ(k),xor(SourceBitsI(k),TxBitsI(k-1),and(xor(SourceBitsI(k),SourceBitsQ(k),xor(SourceBitsQ(k),T

19、xBitsQ(k-1); TxBitsQ(k)=or(and(not(xor(SourceBitsI(k),SourceBitsQ(k),xor(SourceBitsQ(k),TxBitsQ(k-1),and(xor(SourceBitsI(k),SourceBitsQ(k),xor(SourceBitsI(k),TxBitsI(k-1);end%产生复信号TxBits=(TxBitsI*2)-1)+(sqrt(-1)*(TxBitsQ*2)-1);RxIntegrator=0; %初始化接收机积分器TxBitClock=2*TSym; %初始化发送机%设计信道滤波器,产生滤波器参数序列b,a

20、=butter(2,ChanBW/(fs/2);b=1;a=1;junk,FilterState=filter(b,a,0);%开始仿真循环while TxSymSentTSym TxSymSent=TxSymSent+1; TxBitClock=mod(TxBitClock,TSym); TxOutput=TxBits(TxSymSent)*TxSigAmp;end%信号经过信道滤波器 Rx,FilterState=filter(b,a,TxOutput,FilterState);%加高斯白噪声 Rx=(ChanGain*Rx)+(RxNoiseStd*(randn(1,1)+sqrt(-1

21、)*randn(1,1);%基于接收机载波同步误差的相位旋转 PhaseRotation=exp(sqrt(-1)*2*pi*(MeanCarrierPhaseError+(randn(1,1)*StdCarrierPhaseError)/360); Rx=Rx*PhaseRotation; probe1(probe1counter)=Rx; probe1counter= probe1counter+1;%更新接收机积分去除器 RxIntegrator=RxIntegrator+Rx; probe2(probe2counter)=RxIntegrator; probe2counter= pro

22、be2counter+1;%更新接收机时钟,判断是不是适合采样 RxBitClock=RxBitClock+Ts; RxTSym=TSym*(1+MeanSymbolSyncError+(StdSymbolSyncError*randn(1,1);if RxBitClockRxTSym %解调信号 RxSymDemod=RxSymDemod+1; RxBitsI(RxSymDemod)=round(sign(real(RxIntegrator)+1)/2; RxBitsQ(RxSymDemod)=round(sign(imag(RxIntegrator)+1)/2; RxBitClock=Rx

23、BitClock-TSym; RxIntegrator=0;endend%差分解码SinkBitsI=SourceBitsI*0;SinkBitsQ=SourceBitsQ*0;for k=2:RxSymDemod SinkBitsI(k)=or(and(not(xor(RxBitsI(k),RxBitsQ(k),xor(RxBitsI(k),RxBitsI(k-1),and(xor(RxBitsI(k),RxBitsQ(k),xor(RxBitsQ(k),RxBitsQ(k-1); SinkBitsQ(k)=or(and(not(xor(RxBitsI(k),RxBitsQ(k),xor(R

24、xBitsQ(k),RxBitsQ(k-1),and(xor(RxBitsI(k),RxBitsQ(k),xor(RxBitsI(k),RxBitsI(k-1);end%在输入和输出100字节中寻找最优时延C,Lags=vxcorr(SourceBitsI(10:110),SinkBitsI(10:110);MaxC,LocMaxC=max(C);BestLag=Lags(LocMaxC);%调整时延if BestLag0 SourceBitsI=SourceBitsI(BestLag+1:length(SourceBitsI); SourceBitsQ=SourceBitsQ(BestLag

25、+1:length(SourceBitsQ);elseif BestLag0 SinkBitsI=SinkBitsI(-BestLag+1:length(SinkBitsI); SinkBitsQ=SinkBitsQ(-BestLag+1:length(SinkBitsQ);end%将序列调整成一样长度TotalBits=min(length(SourceBitsI),length(SinkBitsI);TotalBits=TotalBits-20;SourceBitsI=SourceBitsI(10:TotalBits);SourceBitsQ=SourceBitsQ(10:TotalBit

26、s);SinkBitsI=SinkBitsI(10:TotalBits);SinkBitsQ=SinkBitsQ(10:TotalBits);Errors=sum(SourceBitsI = SinkBitsI)+sum(SourceBitsQ = SinkBitsQ);BER_MC=Errors/(2*length(SourceBitsI);returnfunction MCQPSKBEREb=22:0.5:26;N0=-50;ChannelAttenuation=70;EbN0dB=(Eb-ChannelAttenuation)-N0;EbN0=10.(EbN0dB./10);BER_T=

27、0.5*erfc(sqrt(EbN0);N=round(100./BER_T);BER_MC=zeros(size(Eb);for k=1:length(Eb) BER_MC(k)=MCQPSKrun(N(k),Eb(k),N0,ChannelAttenuation,0,0,0,0); disp(simulation,num2str(k*100/length(Eb),%plate);endfigure(1);semilogy(EbN0dB,BER_MC,o,EbN0dB,2*BER_T,-);xlabel(Eb/N0(dB);ylabel(bit error rate);legend(MC B

28、ER Estimate,Theoretical BER);grid;return代码3function peideal,pesystem=qpsk_berest(xx,yy,ebn0db,eb,tb,nbw)%xx为输入序列,yy为输出序列,ebn0db为信噪比,eb为单个信号能力,tb信号周期,nbw噪声带宽n1 n2=size(xx);nx=n1*n2;n3 n4=size(yy);ny=n3*n4;n5 n6=size(ebn0db);neb=n5*n6;%接收机带宽设定为rs/2nbwideal=1/(2*tb*2);for m=1:neb peideal(m)=0.0; % 初始化

29、pesystem(m)=0.0; % 初始化%计算n0和噪声方差 string1=Eb/N0=,num2str(ebn0db(m); disp(string1) ebn0(m)=10(ebn0db(m)/10); n0=eb/ebn0(m); % 噪声功率 sigma=sqrt(n0*nbw*2); % 方差 sigma1=sqrt(n0*nbwideal*2); % 理想方差 b=sqrt(2*eb/tb)/sqrt(sum(abs(xx).2)/nx);for n=1:nx theta=angle(xx(n);if(theta0) theta=theta+2*pi;end%接收信号的相位旋

30、转 xxx(n)=b*xx(n)*exp(-i*(theta-(pi/4); yyy(n)=yy(n)*exp(-i*(theta-(pi/4); d1=real(xxx(n); d2=imag(xxx(n); d3=real(yyy(n); d4=imag(yyy(n); pe1=q(d1/sigma1)+q(d2/sigma1); pe2=q(d3/sigma)+q(d4/sigma); peideal(m)=peideal(m)+pe1; pesystem(m)=pesystem(m)+pe2;endendpeideal=(1/2)*peideal./nx;pesystem=(1/2)*

31、pesystem./nx;returnfunction QPSKThreeray(p0,p1,p2,delay)NN=256; %发送的信号数tb=0.5; %信号周期fs=16; %每信号的采样数ebn0db=1:2:14; %信噪比矢量%产生QPSK信号x=random_binary(NN,fs)+i*random_binary(NN,fs);delay0=0;delay1=0;delay2=delay;%设置瑞利信道gain1=sqrt(p1)*abs(randn(1,NN)+i*randn(1,NN);gain2=sqrt(p2)*abs(randn(1,NN)+i*randn(1,N

32、N);for k=1:NN for kk=1:fs index=(k-1)*fs+kk; ggain1(1,index)=gain1(1,k); ggain2(1,index)=gain2(1,k); endendy1=x;for k=1:delay2 y2(1,k)=y1(1,k)*sqrt(p0);endfor k=(delay2+1):(NN*fs) y2(1,k)=y1(1,k)*sqrt(p0)+y1(1,k-delay1)*ggain1(1,k)+y1(1,k-delay2)*ggain2(1,k);end%匹配滤波器b=-ones(1,fs);b=b/fs;a=1;y=filte

33、r(b,a,y2);%应用半解析方法,进展误码率估计。cor lags=vxcorr(x,y);cmax=max(max(abs(cor);nmax=find(abs(cor)=cmax);timelag=lags(nmax);corrmag=cmax;theta=angle(cor(nmax);y=y*exp(-i*theta);hh=impz(b,a);ts=1/fs;nbw=(fs/2)*sum(hh.2);index=(10*fs+8:fs:(NN-10)*fs+8);xx=x(index);yy=y(index-timelag+1);n1 n2=size(y2);ny2=n1*n2;

34、eb=tb*sum(sum(abs(y2).2)/ny2;eb=eb/2;peideal,pesystem=qpsk_berest(xx,yy,ebn0db,eb,tb,nbw);figuresemilogy(ebn0db,peideal,b*-,ebn0db,pesystem,r+-)xlabel(E_b/N_0);ylabel(Probability of Error);gridaxis(0 14 10(-10) 1)return代码4function bpskThreeray(p0,p1,p2,delay)NN=256;tb=0.5;fs=16;ebn0db=1:2:14;x=rando

35、m_binary(NN,fs);delay0=0;delay1=0;delay2=delay;gain1=sqrt(p1)*abs(randn(1,NN)+i*randn(1,NN);gain2=sqrt(p2)*abs(randn(1,NN)+i*randn(1,NN);for k=1:NNfor kk=1:fs index=(k-1)*fs+kk; ggain1(1,index)=gain1(1,k); ggain2(1,index)=gain2(1,k);endendy1=x;for k=1:delay2 y2(1,k)=y1(1,k)*sqrt(p0);endfor k=(delay2

36、+1):(NN*fs) y2(1,k)=y1(1,k)*sqrt(p0)+y1(1,k-delay1)*ggain1(1,k)+y1(1,k-delay2)*ggain2(1,k);endb=-ones(1,fs);b=b/fs;a=1;y=filter(b,a,y2);cor lags=vxcorr(x,y);cmax=max(max(abs(cor);nmax=find(abs(cor)=cmax);timelag=lags(nmax);corrmag=cmax;theta=angle(cor(nmax);y=y*exp(-i*theta);hh=impz(b,a);ts=1/fs;nbw

37、=(fs/2)*sum(hh.2);index=(10*fs+8:fs:(NN-10)*fs+8);xx=x(index);yy=y(index-timelag+1);n1 n2=size(y2);ny2=n1*n2;eb=tb*sum(sum(abs(y2).2)/ny2;eb=eb/2;peideal,pesystem=qpsk_berest(xx,yy,ebn0db,eb,tb,nbw);figuresemilogy(ebn0db,peideal,b*-,ebn0db,pesystem,r+-)xlabel(E_b/N_0);ylabel(Probability of Error);gridaxis(0 14 10(-10) 1)return17 / 17

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号