资源描述:
《《通信工具箱》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章通信工具箱8.1MATLAB信源编/译码方法8.2差错控制编/译码方法8.3调制与解调8.4通信系统性能仿真8.5实验九通信系统仿真实验在MATLAB的CommunicationToolbox(通信工具箱)中提供了许多仿真函数和模块,用于对通信系统进行仿真和分析。主要包括两部分内容:通信函数命令和Simulink的CommunicationsBlockset(通信模块集)仿真模块。用户既可以在MATLAB的工作空间中直接调用工具箱中的函数,也可以使用Simulink平台构造自己的仿真模块,以达到扩充工具箱的内容。通信工具箱中的函数名称和内容列表,其内容包含:SignalSour
2、ces(信号源函数);SignalAnalysisfunction(信号分析函数);SourceCoding(信源编码);ErrorControlCoding(差错控制编码函数);LowerLevelFunctionforErrorControlCoding(差错控制编码的底层函数);Modulation/Demodulation(调制/解调函数)SpecialFilters(特殊滤波器设计函数);LowerLevelFunctionforSpecialsFilters(设计特殊滤波器的底层函数);ChannelFunctions(信道函数);GalosiFieldComputati
3、on(有限域估计函数);Utilities(实用工具函数)。在MATLAB通信工具箱中提供了两种信源编译码的方法:标量量化和预测量化。1.标量量化(1)信源编码中的律或A律压扩计算函数compand()格式:out=compand(in,param,V,method)功能:实现律或A律压扩,其中param为值,V为峰值。压扩方式由method指定。8.1MATLAB信源编/译码方法(2)产生量化索引和量化输出值的函数quantiz()格式:indx=quantiz(sig,partition)功能:根据判断向量partition,对输入信号sig产生量化索引indx,indx的长度与
4、sig矢量的长度相同。(3)采用训练序列和Lloyd算法优化标量算法的函数lloyds()格式:[parition,codebook]=lloyds(training_set,ini_codebook)功能:用训练集矢量training_set优化标量量化参数partition和码本codebook。ini_codebook是码本codebook的初始值。[例8-1]用训练序列和Lloyd算法,对一个正弦信号数据进行标量化。MATLAB程序如下:N=2^3;%以3比特传输信道t=[0:100]*pi/20;u=cos(t);[p,c]=lloyds(u,N);%生成分界点矢量和编码手
5、册[index,quant,distor]=quantiz(u,p,c);%量化信号plot(t,u,t,quant,'*');该程序运行结果如图8.1所示。2.预测量化根据过去发送的信号来估计下一个将要发送的信号值。(1)差分脉冲调制编码函数dpcmenco()格式:indx=dpcmenco(sig,codebook,partition,predictor)功能:返回DPCM编码的编码索引indx。其中参数sig为输入信号,predictor为预测器传递函数,其形式为[0,t1,…,tm]。预测误差的量化参数由partition和predictor指定。(2)信源编码中的DPCM
6、解码函数dpcmdeco()格式:sig=dpcmdeco(indx,codebook,predictor)功能:根据DPCM信号编码索引indx进行解码。predictor为指定的预测器,codebook为码本。(3)用训练数据优化差分脉冲调制参数的函数dpcmopt()格式:predictor=dpcmopt(training_set,ord)功能:对给定训练集的预测器进行估计,训练集及其顺序由training_set和ord指定,预测器由predictor输出。例8.3用训练数据优化DPCM方法,对一个锯齿波信号数据进行预测量化MATLAB程序如下:clccleart=[0:p
7、i/50:2*pi];x=sawtooth(3*t);%Originalsignalinitcodebook=[-1:.1:1];%Initialguessatcodebook%Optimizeparameters,usinginitialcodebookandorder1.[predictor,codebook,partition]=dpcmopt(x,1,initcodebook);%QuantizexusingDPCM.encodedx=dpcmen