调制解调作业.doc_第1页
调制解调作业.doc_第2页
调制解调作业.doc_第3页
调制解调作业.doc_第4页
调制解调作业.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

现给出bpsk、qpsk及“书上习题”的调制解调程序,理解各程序,完成以下习题。将程序运行结果及各题目的解答写入word中:1.用matlab运行书上习题中的“bpskqpsk125.m” (a)说明bpsk、qpsk解调判决方法BPSK 实部0,判1,实部载波相位配合起来,则需要把二进制数据变换为四进制数据,这就是说需要把二进制数字序列中每两个比特分成一组,共有四种组合,即00,01,10,11,其中每一组称为双比特码元。每一个双比特码元是由两位二进制信息比特组成,它们分别代表四进制四个符号中的一个符号。QPSK中每次调制可传输2个信息比特,这些信息比特是通过载波的四种相位来传递的。解调器根据星座图及接收到的载波信号的相位来判断发送端发送的信息比特。(b)误比特率为1e-2、1e-3及1e-4时的Eb/N0分别是多少? BPSKQPSK1e-24.354.351e-36.796.791e-48.408.40 (c)从物理意义上说明为什么bpsk、qpsk误比特率曲线是重叠的因为bpsk是双极性信号,成对出错概率为Prpair(Sj,Sk)=Q(s(1-Re(jk)= Q(2EbN0)对等概率发送的二进制信号,成对出错率等于符号错误概率,也等于误比特率。Qpsk是那双正交信号,用相干接收机接收,成对错误概率为PrpairSj,Sk=QEbN01-Rejk= Q(2EbN0)由联合边界计算的误码率是成对错误概率的两倍,误比特率是误码率的一半(d)当samples减少为100000,10000,1000时观察误比特率曲线的变化,你得出什么结论。1e6个点1e5个点1e4个点1e3个点结论,取样点越少,在同等信噪比下误码率越大。取样点越多,曲线越光滑。 2.用matlab运行“bpsk.m”、“qpsk.m” (a)在各程序中标注“注释”处加上注释(英文或中文)BPSK.mdata1=rand(1,nd)0.5; % 注释返回一组行向量,nd个码元%* Attenuation Calculation * code_rate=1; E=1; sigma=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 Demodulation * demodata1=data4 0; % 注释:data4中每个元素和0比较,比较结果为真(1)和假(0),然后再将这些0,1赋值给demodata1 %* Bit Error Rate (BER) * noe2=sum(abs(data1-demodata1); % 注释:计算误码个数nod2=length(data1); % 注释:计算总码数noe=noe+noe2;nod=nod+nod2;end %* Output result *ber(snr_num) = noe/nod %注释:计算误码率,误码除以总传递码数QPSK.mSNR=exp(snr_in_dB(snr_num)*log(10)/10% 注释:计算信噪比for iii=1:nloop %* Data generation * data=rand(1,nd*ml)0.5; % 注释:生成 同相分量 data1=2*data-1 % 注释:原始数据流分成两部分,此为正交分量%* QPSK Modulation * tout=qpskmod(data1,1,nd,ml); %* Attenuation Calculation *%* gngauss channel* code_rate=1; E=1/sqrt(2); sigma=E/sqrt(2*SNR*code_rate) % 注释:计算编码后高斯分布随机变量标准差 for i=1:nd, gsrv1,gsrv2=Gngauss(sigma); 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 Demodulation * demodata=qpskdemod(tout,1,nd,ml); demodata1=demodata 0; %注释:与原始码元对比判决,得到正确的码元数 demodata=demodata1;%* Bit Error Rate (BER) * noe2=sum(abs(data-demodata); % 注释:计算错误码元数nod2=length(data1); % 注释:总码元数noe=noe+noe2;nod=nod+nod2;end %* Output result *ber(snr_num) = noe/nod; % 注释:计算误码率end;isi = isi + 2.( m2 - ii ) .* paradata2(1:para),ii+count2); %注释:产生同相分量isq = isq + 2.( m2 - ii ) .* paradata2(1:para),m2+ii+count2); %注释:产生正交分量 (b)说明加性高斯白噪声的产生方法,请再给出一种加性高斯白噪声的产生方法,并验证其正确性。原始方法为Gngauss.mif nargin = 0, m=0; sgma=1;elseif nargin = 1, sgma=m; m=0;end;u=rand; % a uniform random variable in (0,1) z=sgma*(sqrt(2*log(1/(1-u); % a Rayleigh distributed random variableu=rand; % another uniform random variable in (0,1) 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; data4=awgn(data2,snr_in_dB(snr_num) (c)参考“bpskqpsk125.m”的画图功能,给出Eb/N0-误比特率曲线和高斯信道下的理论误比特率曲线。 BPSK误比特率曲线和高斯信道下的理论误比特率曲线 QPSK误比特率曲线和高斯信道下的理论误比特率曲线clear all% qpsk.m% Simulation program to realize QPSK transmission system%* Preparation part%*ml=2; sr=25600; % ml:Number of modulation levels (BPSK:ml=1, QPSK:ml=2, 16QAM:ml=4)br=sr .* ml; % Bit ratend =100; % Number of symbols that simulates in each loopsnr_in_dB=0:18 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); % 注释:将SNR(dB)转化为倍数%* START CALCULATION *nloop=100; % Number of simulation loopsnoe = 0; % Number of error datanod = 0; % Number of transmitted datafor iii=1:nloop %* Data generation * data=rand(1,nd*ml)0.5; % 注释:随机产生相应数目的0-1信号 data1=2*data-1 % 注释:将单极性0-1信号转化为双极性的-1,1信号%* QPSK Modulation * tout=qpskmod(data1,1,nd,ml); %* Attenuation Calculation *%* gngauss channel* code_rate=1; E=1/sqrt(2); sigma=E/sqrt(2*SNR*code_rate); % 注释:产生高斯白噪声 for i=1:nd, gsrv1,gsrv2=Gngauss(sigma); 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 Demodulation * demodata=qpskdemod(tout,1,nd,ml); demodata1=demodata 0; %注释:将加噪信号进行解调之后进行判决,大于零的判决为1,小于0的判决为0 demodata=demodata1;%* Bit Error Rate (BER) * noe2=sum(abs(data-demodata); % 注释:每一次循环的误比特数,相加之后为整个过程的误比特数nod2=length(data1); % 注释:每次循环的总的比特数,相加之后为整个过程的比特总数noe=noe+noe2;nod=nod+nod2;end %* Output result *ber(snr_num) = noe/nod; % 注释:对应于特定SNR的误码率end;ber(snr_num)figure;semilogy(snr_in_dB,0.5*erfc(sqrt(2*10.(snr_in_dB/10)/sqrt(2),-);hold on;semilogy(snr_in_dB,ber,O);hold onylabel(BER);xlabel(E_b/N_0 dB);legend(QPSK,Sim QPSK);grid on%* end of file * (d)观察nd及nloop参数变化时,曲线的现象,并说明原因。以BPSK曲线为例,QPSK同理nd=100时nd=1000时nd=10000时可见nd越大,所绘制曲线越接近于理论值,因为采样点增多了 (e)画出不同信噪比条件下的的星座图,解释其对误码率的影响。星座图程序如下clear all% qpsk.m% Simulation program to realize QPSK transmission system%* Preparation part%*ml=2; sr=25600; % ml:Number of modulation levels (BPSK:ml=1, QPSK:ml=2, 16QAM:ml=4)br=sr .* ml; % Bit ratend =100; % Number of symbols that simulates in each loopsnr_in_dB=0:20 tout=zeros(1,100);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); % 注释:将SNR(dB)转化为倍数%* START CALCULATION *nloop=10; % Number of simulation loopsnoe = 0; % Number of error datanod = 0; % Number of transmitted datafor iii=1:nloop %* Data generation * data=rand(1,nd*ml)0.5; % 注释:随机产生相应数目的0-1信号 data1=2*data-1 % 注释:将单极性0-1信号转化为双极性的-1,1信号%* QPSK Modulation * tout=qpskmod(data1,1,nd,ml); %* Attenuation Calculation *%* gngauss channel* code_rate=1; E=1/sqrt(2); sigma=E/sqrt(2*SNR*code_rate); % 注释:产生高斯白噪声 for i=1:nd, gsrv1,gsrv2=Gngauss(sigma); 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 Demodulation * demodata=qpskdemod(tout,1,nd,ml); demodata1=demodata 0; %注释:将加噪信号进行解调之后进行判决,大于零的判决为1,小于0的判决为0 demodata=demodata1;%* Bit Error Rate (BER) * noe2=sum(abs(data-demodata); % 注释:每一次循环的误比特数,相加之后为整个过程的误比特数nod2=length(data1); % 注释:每次循环的总的比特数,相加之后为整个过程的比特总数noe=noe+noe2;nod=nod+nod2;end %* Output result *ber(snr_num) = noe/nod; % 注释:对应于特定SNR的误码率end;tout=tout;scatterplot(tout)%* end of file *SNR=5DB时 SNR=10DB SNR=20DB时信噪比越大,星座图分布越分散,说明越好进行判决。 (f)通过程序画出QPSK和BPSK的Eb/N0-误比特率曲线,观察曲线的现象,能得出什么结论。QPSK和BPSK的理论曲线完全相同3.若信源是你的学号,结合程序说明其在qpsk (调制mod)和(解调demod)子程序中的具体实现过程。 我的学号是09274070,首先进行编码。0对应(0000),1(对应(0001),最后9对应(0101),QPSK mod程序中,将输入data变为:data=0000 1001 0010 0111 0010 0000 0111 0000; 首先将输入的串行二进制信息序列经串并变换。QPSK利用载波的四种不同相位来表示信息,由于每一种载波相位代表两个比特信息,因此每个四进制码元可以用两个二进制码元的组合来表示,两个二进制码元中的前一个码元用a表示,后一个码元用b表示,QPSK信号可以看做两个正交2PSK信号的合成。下图表示QPSK正交调制器 解调时,同相支路和正交支路分别采用相干解调方式解调,得到I(t)和Q(t),经过抽样判决和并/串转换器,将上下支路的并行数据转为串行,下图为解调器4.针对题目2中的BPSK、QPSK, (a)若信道使信号幅度呈瑞利衰落,画出Eb/N0-误比特率曲线和瑞利衰落下的理论误比特率曲线 ,说明与题目2观察结果的异同,并说明原因。瑞利信道产生chan = rayleighchan(ts,fd) 该函数构建了一个单一路径的瑞利衰落信道对象。Ts是信号采样时间(s),fd是最大多普勒频偏(Hz)BPSK瑞利信道QPSK瑞利信道瑞利信道下理论误比特率与实际相差很多,因为高斯信道中误比特率是按照Q函数来衰减,但是瑞利中是按照倒数衰减, (b)若信道使信号幅度呈莱斯衰落,更改K值的大小,画出Eb/N0-误比特率曲线、瑞利衰落下的理论误比特率曲线和高斯信道下的理论误比特率曲线,观察曲线的现象,能得出什么结论。BPSK K=20 BPSK K=10 BPSK K=5 BPSK K=1QPSKK=20K=10K=5K=1对于BPSK与QPSK,K值越大,实际曲线与理论曲线的偏差值越小附录:QPSK莱斯信道程序clear all% qpsk.m% Simulation program to realize QPSK transmission system%* Preparation part%*ml=2; sr=25600; % ml:Number of modulation levels (BPSK:ml=1, QPSK:ml=2, 16QAM:ml=4)br=sr .* ml; % Bit ratend =100; % Number of symbols that simulates in each loopsnr_in_dB=0:18 K=1;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); % 注释:将SNR(dB)转化为倍数%* START CALCULATION *nloop=100; % Number of simulation loopsnoe = 0; % Number of error datanod = 0; % Number of transmitted datafor iii=1:nloop %* Data generation * data=rand(1,nd*ml)0.5; % 注释:随机产生相应数目的0-1信号 data1=2*data-1 % 注释:将单极性0-1信号转化为双极性的-1,1信号%* QPSK Modulation * tout=qpskmod(data1,1,nd,ml); %* Attenuation Calculation *%* gngauss channel* code_rate=1; E=1/sqrt(2); sigma=E/sqrt(2*SNR*code_rate); % 注释:产生高斯白噪声 for i=1:nd, gsrv1,gsrv2=Gngauss(sigma); 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; n =randn(1,nd) + j*randn(1,nd);h1 =sqrt(K/(K+1)+1/sqrt(1/(K+1)*randn(1,nd) + j*randn(1,nd); % Rayleigh channeldata41=tout.*h1+sigma.*n;h11=conj(h1); %注释:取共轭data411 = data41.*h11; %注释:%* QPSK Demodulation * demodata=qpskdemod(tout,1,nd,ml); demodata1=demodata 0; %注释:将加噪信号进行解调之后进行判决,大于零的判决为1,小于0的判决为0 demodata=demodata1;%* Bit Error Rate (BER) * noe2=sum(abs(data-demodata); % 注释:每一次循环的误比特数,相加之后为整个过程的误比特数nod2=length(data1); % 注释:每次循环的总的比特数,相加之后为整个过程的比特总数noe=noe+noe2;nod=nod+nod2;end %* Output result *ber(snr_num) = noe/nod; % 注释:对应于特定SNR的误码率end;ber(snr_num)figure;semilogy(snr_in_dB,0.5*erfc(sqrt(2*10.(snr_in_dB/10)/sqrt(2),-);hold on;semilogy(snr_in_dB,ber,O);hold onylabel(BER);xlabel(E_b/N_0 dB);legend(QPSK,Sim QPSK,K=1);grid on%* end of file *BPSK莱斯信道误比特率clear all% bpsk.m% Simulation program to realize BPSK transmission system%* Preparation part *ml=1; % Number of modulation levelsnd = 100; % Number of symbols that simulates in each loopIPOINT=8; % Number of oversamplessnr_in_dB=0:10 ; ber=zeros(1,length(snr_in_dB);K=1;for snr_num=1:length(snr_in_dB) SNR=exp(snr_in_dB(snr_num)*log(10)/10);%* START CALCULATION *nloop=100; % Number of simulation loopsnoe = 0; % Number of error datanod = 0; % Number of

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论