1、第8章现代通信系统仿真实验 第第8 8章现代通信系统仿真实验章现代通信系统仿真实验8.1概述概述8.2随机过程随机过程8.3采样定理采样定理8.4脉冲编码调制脉冲编码调制8.5数字基带传输数字基带传输8.6数字频带传输数字频带传输8.7信道编码信道编码8.8扩频通信系统扩频通信系统习题习题第8章现代通信系统仿真实验 8.1概述概述1.计算机仿真计算机仿真计算机仿真的基本思想是通过某种编程语言构建一定的数学模型来模拟现实的过程,从而观察其现象以探求其规律。按照仿真的这一定义,可以总结出仿真的一般步骤,即建模-实验-分析,也就是说,仿真不单纯是对模型的实验,还包括从建模到实验再到分析的全过程。第8
2、章现代通信系统仿真实验 2.MATLAB仿真仿真MATLAB是一种面向科学与工程计算的高级语言,它集科学计算、自动控制、信号处理、神经网络和图像处理等学科的处理功能于一体。与其他高级语言(如BASIC、FORTRAN、C)相比,MATLAB语法规则简单,具有极高的编程效率。它还可以将仿真结果用图形化表示,因而也更加直观,因此成为流行的仿真软件。MATLAB的仿真可以通过以下三种方式实现。第8章现代通信系统仿真实验 1)脚本文件脚本文件有时也简称M文件,它允许用户把命令放在一个简单的文本文件中,然后告诉MATLAB打开文件并执行命令,就如同在MATLAB命令行输入命令一样,而且可以进行复杂的程序
3、设计。M文件中可以调用库函数也可以调用用户编制的函数文件,但这些函数文件需要单独编辑并设置为当前路径。2)工具箱库函数MATLAB提供了解决多门学科的专用工具箱,其中包括很多解决具体问题的函数。通过使用工具箱中的某些函数可以使仿真过程大为简化。第8章现代通信系统仿真实验 3)Simulink动态仿真Simulink是MATLAB提供的实现动态系统建模和仿真的一个软件包,它是为了处理更复杂的和时间有关的动态系统,可以让用户把精力从编程转向模型的构造。它包括一些基本模块和工具箱模块,用户还可自定义某个模块以实现特殊功能。第8章现代通信系统仿真实验 本章所进行的仿真实验采用第一种方式。需要说明的是,
4、在程序的编制中只使用了MATLAB基本函数,而没有使用工具箱函数。这一做法的目的是使读者用心思考现代通信系统中的某些理论,从而学习用数学语言建立模型的能力,加深对理论的理解。第8章现代通信系统仿真实验 另外还有两点需要注意:第一,本章所关注的是对现代通信理论中具体问题的仿真,对MATLAB中的基本函数的使用未作过多的解释,有关MATLAB的基础知识可以参考相关书籍;第二,本章中所编的程序没有考虑算法的最优化,所以并非最高效的,因为那样的代码有时不易理解。这里侧重于问题的解决,因而所列举的代码大多是清晰易懂的。第8章现代通信系统仿真实验 8.2随随 机机 过过 程程1.理论基础理论基础对于平稳随
5、机过程而言,自相关函数特别重要。因为平稳随机过程的统计特性如数字特征等可通过自相关函数来描述;另外,自相关函数还揭示了随机过程的频谱特性。结合1.4节中关于随机过程相关理论的论述可以得到以下两点:第8章现代通信系统仿真实验 1)自相关函数的性质设(t)为平稳随机过程,则它的自相关函数具有如下主要性质:(1)R(0)=E2(t)=S,(t)的平均功率)(2)R()=R(),(R()是偶函数)(3)|R()|R(0),(R()的上界)(4)R()=E2(t),(t)的直流功率)(5)2=R(0)R(),(方差,(t)的交流功率)综上,自相关函数表述了随机过程的几乎所有数字特征,因而以上性质有明显的
6、实用意义。第8章现代通信系统仿真实验 2)频谱特性对任意的确定功率信号f(t),它的功率谱密度PS()可表示为TFPTTS2)(lim)(设(t)的功率谱密度为PS(),(t)的某一实现截短函数为T(t),且T(t)FT(),于是有TFEPEPTTS2)(lim)()(第8章现代通信系统仿真实验 又d)(1)(j2eRTTFETTT于是TFEPEPTTS2)(lim)()(=Tlim2()lim1()TTJTTEFRedTTd)(jeR第8章现代通信系统仿真实验 可见)()(RP即(t)的自相关函数与其功率谱密度之间互为傅里叶变换关系。离散随机过程的分析方法同连续随机过程。2.实例分析实例分析
7、在内产生一个N=1000的独立同分布随机数的离散时间序列,计算该序列Xn的自相关估值,它定义为1 1,2 2第8章现代通信系统仿真实验 11(),0,1,1,1,2,N mxnn mnNnn mnmR mX XmMNmX XmMNm (8.1)同时,用计算的离散傅里叶变换(DFT)求序列Xn的功率谱密度。DFT定义为()xR m第8章现代通信系统仿真实验 2/(2(1)()()MjfmMxxmMfR m eS(8.2)可以用快速傅里叶变换(FFT)算法高效地计算得到。该题目的目的是通过观察分析自相关函数与功率谱密度的曲线来验证随机过程的自相关函数与其功率谱密度之间的关系。第8章现代通信系统仿真
8、实验 首先生成一个随机过程,这里按题目要求用一组独立同分布的随机序列代替。然后,按式(8.1)计算其自相关函数。最后,用FFT指令计算功率谱Px(f)并绘图。其中有一点要注意,因为程序中用到的是随机序列,所以为了增加准确性,应取10次计算的平均值。()xR m第8章现代通信系统仿真实验 3.程序脚本程序脚本1)主程序N=1000;M=50;Rx_av=zeros(1,M+1);%定义自相关初值为0Sx_av=zeros(1,M+1);%定义功率谱初值为0for j=1:10,%为了计算10次平均所做的%循环 X=rand(1,N)1/2;%在(1/2,1/2)内产生一个%=1000的独立同分布
9、随机%数的离散时间序列第8章现代通信系统仿真实验 Rx=Rx_est(X,M);%由函数Rx_est计算X的自相关Sx=fftshift(abs(fft(Rx);%对自相关做离散傅里叶变%换以计算功率谱 Rx_av=Rx_av+Rx;Sx_av=Sx_av+Sx;end;Rx_av=Rx_av/10;%取自相关的10次平均第8章现代通信系统仿真实验 Sx_av=Sx_av/10;%取功率谱的10次平均plot(Rx_av);%绘图指令,画出自相关的曲线axis(0,50,-0.01,0.09);pause;plot(Sx_av);%画出功率谱的曲线axis(0,50,0,0.14);第8章现代
10、通信系统仿真实验 2)函数脚本function Rx=Rx_est(X,M)%对给出的随机序列X计算M点自相关N=length(X);Rx=zeros(1,M+1);for m=1:M+1,%根据(8.2.1)计算Rx(m)for n=1:Nm+1,第8章现代通信系统仿真实验 Rx(m)=Rx(m)+X(n)*X(n+m-1);end;Rx(m)=Rx(m)/(N-m+1);end;4结果分析结果分析1)随机序列的自相关函数随机序列的自相关函数如图8.1所示。第8章现代通信系统仿真实验 图 8.1随机序列的自相关函数曲线第8章现代通信系统仿真实验 从图8.1中可以看出该序列在0附近有一定的相关
11、性,随着m取值的增大,自相关函数近似为0。这正反映了题目中“独立同分布”的序列性质。2)随机序列的功率谱密度随机序列的功率谱密度曲线如图8.2所示。图8.2中的功率谱密度曲线波动较小,此外考虑到只取了50点FFT,近似认为该序列的功率谱为恒定值,所以该序列构成的随机过程可以认为是平稳的。结合前一个自相关曲线,这一结论符合先前理论知识中关于平稳随机过程的论述。第8章现代通信系统仿真实验 图 8.2随机序列的功率谱密度曲线第8章现代通信系统仿真实验 5.思考思考(1)计算X的自相关的函数脚本Rx_est中,为什么m取到M+1,n取到Nm+1?在“Rx(m)=Rx(m)+X(n)*X(n+m1)”中
12、为什么X(n+m1)的括号内是n+m1?“Rx(m)=Rx(m)/(Nm+1)”中为什么除数是Nm+1?(2)本例中讨论的是离散随机序列的情况,对于由连续随机变量构成的随机过程的仿真应该怎样进行?第8章现代通信系统仿真实验 8.3采采 样样 定定 理理1.理论基础理论基础采样定理又名奈奎斯特抽样定理,是信源编码理论中模拟信号数字化方面的一个重要环节。它表述为:若x(t)表示信源发出的样本函数,抽样器以抽样率fs2fm采得样值,则可由此样值无失真地恢复原始信号。这里fm是x(t)频谱中的最高频率,fs称为奈奎斯特抽样频率。第8章现代通信系统仿真实验 2.实例分析实例分析信号x(t)为2,211,
13、11()2,120,tttx tttt 其余(8.3)其波形如图8.3所示。第8章现代通信系统仿真实验 图 8.3信号x(t)的波形第8章现代通信系统仿真实验 要注意的是,该波形图只是为了表示信号的时间和幅度关系,所以未标明单位。首先用解析法编制MATLAB程序,求出信号x(t)的幅度谱,然后用数值法编制MATLAB程序,根据采样定理求出该信号的幅度谱,并比较两者的差别。经过分析,信号x(t)可以变换为如下形式:第8章现代通信系统仿真实验()2()()2tx tt(8.4)根据傅里叶基本变换对及变换性质,可得其傅里叶变换为22()4sin(2)sin()X fcfcf(8.5)第8章现代通信系
14、统仿真实验 下面就根据式(8.5)编写解析法的程序。至于数值法的程序,先要根据采样定理确定一些参数。根据图8.3中波形比较平滑的特点,可以大致估计该信号的带宽正比于信号持续时间的倒数,信号持续时间为4,所以其带宽为0.25,为了安全起见,将带宽值扩大10倍,即取为2.5。由采样定理,奈奎斯特频率为5,即采样间隔为0.2。有了这些基本参数后就可以进行程序的编制,首先在一个更宽的范围-4,4内按上面的分析进行采样,之后用FFT做傅里叶变换。其中计算傅里叶变换时需要确定一个频率分辨率,这里根据0.25这个值,取为0.01。第8章现代通信系统仿真实验 3MATLAB程序脚本程序脚本1)主程序%参数设置
15、ts=0.2;fs=1/ts;df=0.01;f=0:df1:df1*(length(x)1)fs/2;f1=2.5:0.001:2.5;第8章现代通信系统仿真实验%根据采样定理进行抽样x=zeros(1,10),0:0.2:1,ones(1,9),1:-0.2:0,zeros(1,10);%对采样信号进行FFTX,x,df1=fftseq(x,ts,df);X1=X/fs;%解析法计算信号幅度谱y=4*(sinc(2*f1).2-(sinc(f1).2;%绘图指令第8章现代通信系统仿真实验 subplot(2,1,1)plot(f1,abs(y);xlabel(f)title(解析法求得的x
16、(t)幅度谱)subplot(2,1,2)plot(f,fftshift(abs(X1);xlabel(f)title(根据采样定理(数值法)求得的x(t)幅度谱)第8章现代通信系统仿真实验 2)FFT算法程序function M,m,df=fftseq(m,ts,df)fs=1/ts;%确定输入变量的情况if nargin=2 n1=0;else n1=fs/df;第8章现代通信系统仿真实验 endn2=length(m);%确定FFT的计算次数n=2(max(nextpow2(n1),nextpow2(n2);%序列的FFTM=fft(m,n);Vm=m,zeros(1,nn2);第8章现
17、代通信系统仿真实验 4.结果分析结果分析仿真结果如图8.4所示。从仿真结果可以看出,根据采样定理求出的幅度谱与解析法求出的精确解基本一致,其主瓣和主要旁瓣与精确解非常吻合,只是一些幅度很小的拖尾与精确解有细微差别,但这些很小的误差可以忽略不计。这个仿真证明了采样定理的正确性。第8章现代通信系统仿真实验 图 8.4信号幅度谱仿真图第8章现代通信系统仿真实验 5.思考思考在前面的分析中曾提到,为了安全起见,近似估计信号x(t)的带宽为信号持续时间倒数的10倍,这样的做法是否欠妥?采样定理的仿真结果与精确解的高度吻合是否基于这样的取值?第8章现代通信系统仿真实验 8.4脉冲编码调制脉冲编码调制1.理
18、论基础理论基础回顾第2章信源编码理论中脉冲编码调制的内容,首先来看PCM系统原理框图,如图8.5所示。根据以上框图及所学的知识,PCM系统主要由抽样、量化和编码三部分组成。第8章现代通信系统仿真实验 图 8.5PCM系统原理框图第8章现代通信系统仿真实验 1)抽样根据抽样定理,若x(t)表示信源发出的样本函数,抽样器以抽样率fs2fm采得样值,则可以由样值无失真地恢复原始信号,这里fm是x(t)频谱中的最高频率。2)量化接下来,每个信号样值量化成2L个幅度电平之一,L是样值量化后的二进制位数。对于均匀量化器,输出电平标定为,对应的输入信号幅度范围是(k1)xk,这里的是步长,它的值是量化范围与
19、量化级数的商。(21)/2kxk第8章现代通信系统仿真实验 许多信源信号,比如语音波形,具有小幅度信号发生概率大于大幅度信号的特点。然而在均匀量化器的整个信号动态范围内,各电平具有相等的间隔大小,更好的方法是采用非均匀量化器。非均匀量化特性的获得,通常是先让信号通过一个非线性设备对幅度进行压缩,再送入后面的均匀量化器。例如,一个A律对数压缩器具有如下形式的输入-输出幅度特性:第8章现代通信系统仿真实验 1,01ln()1ln1,11lnAxxAAf xAxxAA(8.6)其中:x为归一化值;常数A为压缩系数,国际标准取A=87.6。根据这一对数压缩特性,信号样值被非均匀地量化成相应的幅值。这部
20、分由在框图中的压缩器与量化器完成。第8章现代通信系统仿真实验 3)编码编码器根据PCM编码规则将量化值数字化。编码方法也是多种多样的,现有的编码方法中,若按编码的速度来分大致可分为两大类:低速编码和高速编码。通信中一般都采用第二类。编码器的种类大体上可以归结为三种:逐次比较型、折叠级联型和混合型。经过信道传输的二进制码按照与上面三步相反的逆过程进行解码、扩张和滤波得到输出信号。第8章现代通信系统仿真实验 2.实例分析实例分析1)连续信号的均匀量化产生一个幅度为1、频率=1的正弦波。采用均匀PCM方案,将其进行8级和16级量化。在同一坐标系内绘出原始信号和量化信号的曲线。将两种情况得到的SQNR
21、(信噪比)进行比较。第8章现代通信系统仿真实验 2)离散信号的均匀量化及均匀PCM按照PCM系统原理框图的流程,首先确定输入信号,输入信号分连续和离散两种情况;接着,根据均匀量化的公式写出均匀量化函数,对连续信号和离散序列分别进行均匀量化;得到量化值的同时采用比较排序的方法做均匀PCM编码。产生一个零均值、方差为1的高斯随机变量序列,序列长度为500。用均匀量化找出当量化级的数量为64时的SQNR。求出该序列的前五个值、相应的量化值和相应的码字。第8章现代通信系统仿真实验 3)离散信号的非均匀量化及非均匀PCM对于非均匀PCM,总体的步骤与均匀量化及均匀PCM相同。但有一点不同,即在量化前要先
22、进行A律压缩。A律压缩函数根据A律对数特性函数编写即可,这里程序用到了选择结构。产生一个零均值、方差为1的高斯随机变量序列,序列长度为500。对其进行64电平的A律非线性量化,画出量化误差和输入-输出关系曲线,并求SQNR。第8章现代通信系统仿真实验 3MATLAB程序脚本程序脚本1)连续信号的均匀量化的主程序t=0:0.01:10;a=sin(t);sqnr8,aquan8,code8=u_pcm(a,8);sqnr16,aquan16,code16=u_pcm(a,16);sqnr8%N=8时的信号量化噪声比sqnr16%N=16时的信号量化噪声比第8章现代通信系统仿真实验%信号波形及其量
23、化后的曲线plot(t,a,-,t,aquan8,-.,t,aquan16,-,t,zeros(1,length(t);legend(信号波形,8电平量化,16电平量化,Location,SouthEast)2)离散信号的均匀量化的主程序a=randn(1,500);n=64;b=2.5:.01:2.5;sqnr,a_quan,code=u_pcm(a,64);sqnr,a_quan1,code1=u_pcm(b,64);第8章现代通信系统仿真实验 sqnr%信号的量化信噪比a(1:5)%输入值a_quan(1:5)%量化值code(1:5,:)%码字subplot(2,1,1);plot(b
24、,a_quan1);%量化器输入-输出波形图title(量化器输入-输出波形图)subplot(2,1,2);plot(a-a_quan);%量化误差波形图title(量化误差)第8章现代通信系统仿真实验 3)离散信号的非均匀量化的主程序a=randn(1,500);b=3:.01:3;sqnr,a_quan,code=Ala_pcm(a,64,87.6);sqnr,a_quan1,code1=Ala_pcm(b,64,87.6);sqnr%信号的量化信噪比a(1:5)%输入值a_quan(1:5)%量化值第8章现代通信系统仿真实验 code(1:5,:)%码字 subplot(2,1,1);
25、plot(b,a_quan1);title(量化器输入输出关系);subplot(2,1,2);plot(a-a_quan);title(量化误差);第8章现代通信系统仿真实验 4)A律PCM编码程序function sqnr,a_quan,code=Alaw_pcm(a,n,A)y=Alaw(a,A);sqnr,y_q,code,amax=u_pcm(y,n);a_quan=invAlaw(y_q,A);a_quan=amax*a_quan;sqnr=20*log10(norm(a)/norm(a-a_quan);第8章现代通信系统仿真实验 5)量化及PCM编码程序function sqnr
26、,a_quan,code=u_pcm(a,n)amax=max(abs(a);a_quan=a/amax;b_quan=a_quan;d=2/n;q=d.*0:n1;q=q(n1)/2)*d;%量化值的计算第8章现代通信系统仿真实验 for i=1:n a_quan(find(q(i)-d/2=a_quan)&(a_quan=q(i)+d/2)=.q(i).*ones(1,length(find(q(i)-d/2=a_quan)&(a_quan=q(i)+d/2);b_quan(find(a_quan=q(i)=(i-1).*ones(1,length(find(a_quan=q(i);end
27、a_quan=a_quan*amax;%PCM编码nu=ceil(log2(n);第8章现代通信系统仿真实验 code=zeros(length(a),nu);for i=1:length(a)for j=nu:1:0 if(fix(b_quan(i)/(2j)=1)code(i,(nu-j)=1;b_quan(i)=b_quan(i)2j;end endend第8章现代通信系统仿真实验%SQNR的计算sqnr=20*log10(norm(a)/norm(a-a_quan);6)A律对数压缩特性函数function y=Alaw(x,A)a=max(abs(x);x=x/a;indx=find
28、(abs(x)1/A);if isempty(indx)y(indx)=1/(log(A)+1)*(1+log(abs(x(indx)*A).*sign(x(indx);end7)A律对数压缩特性的逆function x=invAlaw(y,A)indx=find(abs(y)1/(log(A)+1);if isempty(indx)x(indx)=1/A*exp(abs(y(indx)/(1/(log(A)+1)1).*sign(y(indx);end第8章现代通信系统仿真实验 4.结果分析结果分析1)连续信号的均匀量化图8.6所示为正弦信号均匀量化的情况。图中,虚线代表8电平量化的情况,实
29、折线(细实线)代表16电平量化的情况。很明显,16电平量化折线更加逼近原信号波形,这说明随着量化电平数的增加量化结果更好。但随之而来的是计算复杂度的增加。第8章现代通信系统仿真实验 图 8.6连续信号不同电平的均匀量化第8章现代通信系统仿真实验 2)离散信号64电平均匀量化以下是对长度为500的高斯随机变量序列64电平均匀量化和均匀PCM的结果。图8.7 中绘制了量化器的输入-输出关系及量化误差,表8.1中给出了SQNR(信噪比)以及5组具体的输入值、量化值及码字。第8章现代通信系统仿真实验 图 8.7离散信号64电平均匀量化及量化误差第8章现代通信系统仿真实验 从图8.7中可以看出量化器的输
30、入-输出关系近似为一条直线,这正体现了均匀量化的特点。表8.1中选了5个具体的输入值及与其对应的量化值和码字,从中也可以看出量化误差的情况。第8章现代通信系统仿真实验 第8章现代通信系统仿真实验 3)离散信号A律64电平非均匀量化以下是对长度为500的高斯随机变量序列64电平非均匀量化和非均匀PCM的结果。图8.8中同样绘制了量化器的输入-输出关系及量化误差,表8.2中也给出了SQNR(信噪比)以及5组具体的输入值、量化值及码字。第8章现代通信系统仿真实验 图 8.8离散信号64电平非均匀量化及量化误差第8章现代通信系统仿真实验 从图8.8中可以看出,对同样的离散信号进行64电平量化,非均匀量
31、化器的输入-输出关系与图8.7中均匀量化器的输入-输出关系明显不同。图8.8中量化器输入-输出关系曲线的折线形正是其非均匀的体现,在0附近比均匀量化更趋近于直线,表明其对小信号信噪比有改善;但从第二个图中可以看出,某些值的量化误差较大,这是由于对于大信号采用非均匀量化的结果。具体的结果如表8.2所示。第8章现代通信系统仿真实验 第8章现代通信系统仿真实验 从表8.2中可以看出量化误差较大,信噪比明显达不到要求。造成这一结果的原因是表中所列的几个输入值在这个题目中都属于较大的幅值信号。从图8.8中可以看出,误差小、信噪比理想的量化值在0附近,即输入幅值很小。5.思考思考(1)A律量化中用到了一个
32、A律对数压缩特性的逆函数,原因何在?(2)根据以上过程,试对律进行非均匀量化和PCM编码。第8章现代通信系统仿真实验 8.5数字基带传输数字基带传输1.理论基础理论基础首先来回顾一下3.1节中提到的基带传输系统的概念。数字基带系统是指无调制解调器的数字传输系统,数字基带传输系统框图如图8.9所示。第8章现代通信系统仿真实验 图 8.9数字基带传输系统框图第8章现代通信系统仿真实验 在基带传输中一个很重要的问题是码间串扰及误码率的计算,根据第3章的内容,基带传输系统的总误码率为1()()22ennAAPerfcQ(8.7)其中,A为信号的幅值,n为噪声方差的平方根。若已知这两个条件,就可以直接计
33、算出该系统的误码率。但通常噪声的方差是不容易知道的。要计算误码率,就需要根据系统的框图按照误码率的原始定义(式(8.8)进行:第8章现代通信系统仿真实验 eP 传输的错误码元数总码元数(8.8)为此,需要计算错误的码元个数,在接收端采用匹配滤波或相关接收时可以对错误码元进行计数。回顾一下最佳接收理论中的极大似然比法则:112122()1,()()1,()SSSSfxrfxfxrfx判为判为(8.9)在判决时加入一个计数器使得问题有望解决。第8章现代通信系统仿真实验 2.实例分析实例分析将数字基带传输系统中码型变换部分抽去,则基带系统的仿真模型如图8.10所示。其中,信道信号采用均匀随机数,两个
34、高斯随机数发生器给信道引入了加性噪声,将接收滤波器与抽样判决合并成检测器,通过对比输入信源记录差错的个数,最后计算误码率。用Monte Carlo仿真估计Pe,并且画出Pe与SNR的对比图。第8章现代通信系统仿真实验 图 8.10二进制基带通信系统仿真模型第8章现代通信系统仿真实验 先仿真产生随机变量r0和r1,它们构成了检测器的输入。首先产生一个等概出现并且互为统计独立的二进制0和1的序列。为了实现这一点,使用一个产生范围在(0,1)内的均匀随机数发生器,如果产生的随机数在(0,0.5)以内,二进制源的输出就是0,否则就是1。若产生一个0,那么r0=E+n0,r1=n1;如果产生一个1,那么
35、r0=n0,r1=E+n1。第8章现代通信系统仿真实验 利用两个高斯噪声发生器产生加性噪声分量n0和n1,它们的均值是0,方差是2=EN0/2(E为信号能量)。为了方便,可以将信号能量E归一化到1而改变2。应该注意,这样SNR就等于1/(22)。将检测器输出与二进制发送序列进行比较,差错计数器用来计算比特差错率。第8章现代通信系统仿真实验 3MATLAB程序脚本程序脚本1)主程序SNRindB1=0:1:12;SNRindB2=0:0.1:12;for i=1:length(SNRindB1),%根据仿真模型计算误码率 smld_err_prb(i)=smldPe(SNRindB1(i);en
36、d;%根据理论公式计算误码率for i=1:length(SNRindB2),SNR=exp(SNRindB2(i)*log(10)/10);第8章现代通信系统仿真实验 theo_err_prb(i)=Qfunct(sqrt(SNR);end;semilogy(SNRindB1,smld_err_prb,*);%绘制仿真模型的误码率holdsemilogy(SNRindB2,theo_err_prb);%绘制根据理论计算的误码率legend(仿真值,理论值);xlabel(SNR);ylabel(Pe);第8章现代通信系统仿真实验 2)仿真模型的误码率计算函数function p=smldPe
37、(snr_in_dB)E=1;%能量归一化SNR=exp(snr_in_dB*log(10)/10);%将dB值转换为实际比值sgma=E/sqrt(2*SNR);%噪声方差N=10000;%产生二进制信源第8章现代通信系统仿真实验 for i=1:N,temp=rand;%生成(0,1)间均匀分布的10000个值 if(tempr1),decis=0;%上支路输出大于下支路输出判决为0 else decis=1;%下支路输出大于上支路输出判决为0 end;if(decis=dsource(i),numoferr=numoferr+1;%如果判决结果不等于输入信源,则错误计数器加1 end;e
38、nd;p=numoferr/N;%误码率计算第8章现代通信系统仿真实验 3)高斯随机噪声函数function gsrv1,gsrv2=gngauss(m,sgma)if nargin=0,m=0;sgma=1;%如果输入变量缺失,则均值为0,方差为1elseif nargin=1,sgma=m;m=0;%如果输入变量只有一个,则均值为0,方差为输入值end;u=rand;第8章现代通信系统仿真实验 z=sgma*(sqrt(2*log(1/(1-u);%Rayleigh分布的计算u=rand;gsrv1=m+z*cos(2*pi*u);gsrv2=m+z*sin(2*pi*u);4)Q函数fu
39、nction y=Qfunct(x)y=(1/2)*erfc(x/sqrt(2);.结果分析结果分析图8.11为仿真得到的曲线。第8章现代通信系统仿真实验 图 8.11基带传输系统Monte Carlo仿真的差错概率与理论差错概率的比较第8章现代通信系统仿真实验 图8.11给出了在不同的信噪比SNR下,传输N=10 000个比特时的仿真结果。可以看到仿真结果与理论值Pe(Pe=Q(/N0)之间的一致性。注意到图中N=10 000个数据比特的仿真能够可靠地估计出差错概率在Pe=103以下。换句话说,用N=10 000个数据比特,在对Pe的可靠估计下应该至少有10个差错。E第8章现代通信系统仿真实
40、验 此外,注意到仿真值和理论值在低信噪比下完全一致,而在高信噪比下一致性稍差,这是由于引入的高斯噪声在高信噪比下远大于E,对于本题程序给出的“择大判决”法干扰增强,从而使判决错误增多。5.思考思考(1)针对结果分析中提到的不足,应如何改进?(2)本题中信道干扰是用高斯随机噪声代替的,这种方法是否合理?若不合理,应如何改进?本题的模型是否还可以改进?第8章现代通信系统仿真实验 8.6数字频带传输数字频带传输1.理论基础理论基础二进制相移键控(2PSK或BPSK)中,载波的相位随调制信号1或0而改变,通常用相位0和180来分别表示1和0。二进制相移键控已调信号的时域表达式为tnTtgatSnncs
41、BPSKcos)()(8.10)第8章现代通信系统仿真实验 这里,an与2ASK及2FSK时的不同,有1,p1,pna概率为概率为1-因此在某个信号间隔内观察BPSK已调信号时,若g(t)是幅度为1、宽度为Ts的矩形脉冲,则有SBPSK(t)=cosct=cos(ct+fi),fi=0或(8.11)当数字信号传输速率(1/Ts)与载波频率间有确定的倍数关系时,典型的波形如图8.12 所示。第8章现代通信系统仿真实验 图 8.12BPSK信号的典型波形第8章现代通信系统仿真实验 下面按式(8.11)对相移键控进行仿真。2.实例分析实例分析对M=8,产生由式22()cos(2),0,1,1smcm
42、utf tmMTM(8.12)给出的恒定包络的PSK信号波形。为方便计,信号幅度归一化到1。第8章现代通信系统仿真实验 该题目要求仿真一个8PSK波形信号,实质上与2PSK的方法是一致的,区别在于fi的取值为8个,按照式(8.12)写出程序即可。3MATLAB程序脚本程序脚本T=1;M=8;Es=T/2;fc=6/T;%载波频率N=100%抽样数delta_T=T/(N-1);第8章现代通信系统仿真实验 t=0:delta_T:T;u0=sqrt(2*Es/T)*cos(2*pi*fc*t);u1=sqrt(2*Es/T)*cos(2*pi*fc*t+2*pi/M);u2=sqrt(2*Es/
43、T)*cos(2*pi*fc*t+4*pi/M);u3=sqrt(2*Es/T)*cos(2*pi*fc*t+6*pi/M);u4=sqrt(2*Es/T)*cos(2*pi*fc*t+8*pi/M);u5=sqrt(2*Es/T)*cos(2*pi*fc*t+10*pi/M);u6=sqrt(2*Es/T)*cos(2*pi*fc*t+12*pi/M);u7=sqrt(2*Es/T)*cos(2*pi*fc*t+14*pi/M);第8章现代通信系统仿真实验%随后为绘图命令figure(1)subplot(8,1,1);plot(t,u0);subplot(8,1,2);plot(t,u1);
44、subplot(8,1,3);plot(t,u2);subplot(8,1,4);第8章现代通信系统仿真实验 plot(t,u3);subplot(8,1,5);plot(t,u4);subplot(8,1,6);plot(t,u5);subplot(8,1,7);plot(t,u6);subplot(8,1,8);plot(t,u7);第8章现代通信系统仿真实验 4.结果分析结果分析仿真结果如图8.13所示。从仿真图中,可以明显地看出调制后相位的差别。此外需要注意的一点是,该例中调制载波频率fc是符号频率的6倍。5.思考思考根据上述仿真方法,是否可以对ASK和FSK的波形进行仿真?第8章现代
45、通信系统仿真实验 图 8.13恒定幅度的8PSK波形第8章现代通信系统仿真实验 8.7信信 道道 编编 码码8.7.1线性分组码线性分组码1.理论基础理论基础在线性分组码中,一个重要的参数是码的最小汉明距离,它决定了该码的误差校正能力。2.实例分析实例分析一个(10,4)线性分组码的生成矩阵为第8章现代通信系统仿真实验 1001111011101011011001110001111110111001G求全部码字和该码的最小重量。为了求得全部码字,必须要用到长度为4的全部信息序列,并且找出对应的编码序列。因为总共有16个长度为4的二进制序列,所以将有16个码字。第8章现代通信系统仿真实验 令U为
46、2k*k的矩阵,该矩阵的行是长度为k的所有可能的二进制序列,由全部为0的序列开始,并以全部为1的序列结束。各行按下述方法排列:按序列的十进制大小,从上至下由小到大排列。对于k=4 的情况,矩阵U为第8章现代通信系统仿真实验 0000000100100011010001010110011110001001101010111100110111101111U第8章现代通信系统仿真实验 于是有C=UG其中,C是码字矩阵。在这个例子中是16*10的矩阵,它的行是码字。这个码字矩阵为第8章现代通信系统仿真实验 101011001100110010000000000101100111111011011101
47、0001000011110111000010111011100101000010101101110001111011110001110001110011001101101011011010011110110000000000C第8章现代通信系统仿真实验 仔细检查这些码字后可知,这个码字的最小距离dmin=2。3MATLAB程序脚本程序脚本k=4;for i=1:2k for j=k:1:1 if rem(i1,2(j+k+1)=2(j+k)u(i,j)=1;else u(i,j)=0;end echo off;endend 第8章现代通信系统仿真实验 echo on;%定义G为生成矩阵g=1
48、0 0 1 1 1 0 1 1 1;1 1 1 0 0 0 1 1 1 0;0 1 1 0 1 1 0 1 0 1;1 1 0 1 1 1 1 0 0 1;%生成码字c=rem(u*g,2);%求出最小距离w_min=min(sum(c(2:2k,:);第8章现代通信系统仿真实验 4.结果分析结果分析汉明码是(2m1,2mm1)的线性分组码,其最小距离为3,且有一个很简单的奇偶校验矩阵。奇偶校验矩阵是m*(2m1)的矩阵,除去全0序列外,用长为m的全部序列作为它的列。例如,对于m=3,有一个(7,4)的码,它的奇偶校验矩阵用规则形式表示为第8章现代通信系统仿真实验 10011100100111
49、0011101H据此有111100011000100110001G5.思考思考求(15,11)的汉明码的全部码字,并且验证它的最小距离等于3。第8章现代通信系统仿真实验 8.7.2卷积码卷积码1.理论基础理论基础在分组码中,每k个信息比特的序列以某种固定的方式映射为一个 n信道输入的序列,但是与前面的信息比特无关。在卷积码中,每k0个信息比特序列映射为一个长为n0的信道输入序列,但是这个信道输入序列不仅取决于最当前的k0个信息比特,而且还与该编码器的前(L1)k0个输入序列有关。第8章现代通信系统仿真实验 因此,这种编码器有一种有限状态机的结构,在其中的每一时刻,输出序列不但与输入序列有关,而
50、且与编码器的状态有关,这个状态是由编码器的前(L1)k0个输入序列决定的。图8.14给出了k0=2、n0=3和L=4的一种卷积码的方框图。通常,用卷积码的生成序列来定义卷积码,记为g1,g2,gn。一旦给定了生成序列,卷积码就被惟一确定了。第8章现代通信系统仿真实验 图 8.14k0=2、n0=3和L=4的一种卷积码第8章现代通信系统仿真实验 2.实例分析实例分析当信息序列为1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 1时,求图8.14所示的卷积编码器的输出序列。该信息序列的长度是17,它不是k0=2的倍数。因此,现在补一个额外的0就足够了,这样长度即为18。于是就有了下面