《通信工具箱》PPT课件.ppt_第1页
《通信工具箱》PPT课件.ppt_第2页
《通信工具箱》PPT课件.ppt_第3页
《通信工具箱》PPT课件.ppt_第4页
《通信工具箱》PPT课件.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

第8章通信工具箱,8.1MATLAB信源编/译码方法8.2差错控制编/译码方法8.3调制与解调8.4通信系统性能仿真8.5实验九通信系统仿真实验,在MATLAB的CommunicationToolbox(通信工具箱)中提供了许多仿真函数和模块,用于对通信系统进行仿真和分析。主要包括两部分内容:通信函数命令和Simulink的CommunicationsBlockset(通信模块集)仿真模块。用户既可以在MATLAB的工作空间中直接调用工具箱中的函数,也可以使用Simulink平台构造自己的仿真模块,以达到扩充工具箱的内容。通信工具箱中的函数名称和内容列表,其内容包含:,SignalSources(信号源函数);SignalAnalysisfunction(信号分析函数);SourceCoding(信源编码);ErrorControlCoding(差错控制编码函数);LowerLevelFunctionforErrorControlCoding(差错控制编码的底层函数);Modulation/Demodulation(调制/解调函数)SpecialFilters(特殊滤波器设计函数);LowerLevelFunctionforSpecialsFilters(设计特殊滤波器的底层函数);ChannelFunctions(信道函数);GalosiFieldComputation(有限域估计函数);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的长度与sig矢量的长度相同。(3)采用训练序列和Lloyd算法优化标量算法的函数lloyds()格式:parition,codebook=lloyds(training_set,ini_codebook)功能:用训练集矢量training_set优化标量量化参数partition和码本codebook。ini_codebook是码本codebook的初始值。,例8-1用训练序列和Lloyd算法,对一个正弦信号数据进行标量化。MATLAB程序如下:N=23;%以3比特传输信道t=0:100*pi/20;u=cos(t);p,c=lloyds(u,N);%生成分界点矢量和编码手册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解码函数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:pi/50:2*pi;x=sawtooth(3*t);Originalsignalinitcodebook=-1:.1:1;InitialguessatcodebookOptimizeparameters,usinginitialcodebookandorder1.predictor,codebook,partition=dpcmopt(x,1,initcodebook);QuantizexusingDPCM.encodedx=dpcmenco(x,codebook,partition,predictor);Trytorecoverxfromthemodulatedsignal.decodedx,equant=dpcmdeco(encodedx,codebook,predictor);distor=sum(x-decodedx).2)/length(x)Meansquareerrorplot(t,x,t,equant,*);,程序运行输出distor=8.6801e-004结果如图8.3所示。,图8.3DPCM预测量化误差,8.2差错控制编/译码方法,在通信系统中,差错控制编/译码技术被广泛地用于检查和纠正信息在传递过程中发生的错误。在发送端,差错控制编码添加了一定的冗余码元到信源序列;接收时就利用这些冗余信息来检测和纠正错误。纠错编码主要有分组码和卷积码两种类型。MATLAB通信工具箱提供了一系列函数用于有限域计算。概率解码中最常用的是Viterbi解码,用于卷积码解码。常用的纠错编码方法包括线性分组码、海明码、循环码、BCH码、Reed-Solomon码和卷积码。,1.纠错编码函数encode()及译码函数decode()格式:code=encode(msg,N,K,method,opt)功能:用method指的方法完成纠错编码。其中msg代表信息码元;method是允许的编码方法,包括hamming、linear等,opt是一个可选择的优化参数。格式:msg=decode(code,n,k,method)功能:用指定的method方式进行译码。为了正确地复制出信源序列,编码和译码的调用方式必须相同。,2.卷积纠错编码函数convenc()格式:code=convenc(msg,trellis)功能:利用poly2trellis函数定义的格形trellis结构,对二进制矢量信息msg进行卷积编码。编码器的初始状态为零状态。,3.将卷积编码多项式转换成格形(trellis)结构函数poly2trellis()格式:trellis=poly2trellis(constrainlength,codegenerator)功能:将前向反馈卷积编码器的多项式转换成一格形(trellis)结构。,4.利用Viterbi算法译卷积码函数vitdec()格式:decoded=vitdec(code,trellis,tblen,opmode,dectype)功能:利用Viterbi算法译卷积码。Code为poly2trellis函数或istrellis函数定义的格形trellis结构的卷积码。参数tblen取正整数,表示记忆(traceback)深度。参数opmode代表解码操作模型。,例8.4使用hamming和cyclic方法对同一个信号进行编码,并且采取线性选项进行Hamming编码,然后进行解码恢复原信号。MATLAB程序如下:n=7;Codewordlengthk=4;Messagelengthm=log2(n+1);Expressnas2m-1.msg=randint(100,1,0,2k-1);ColumnofdecimalintegersCreatevariouscodes.codehamming=encode(msg,n,k,hamming/decimal);parmat,genmat=hammgen(m);,codehamming2=encode(msg,n,k,linear/decimal,genmat);ifcodehamming=codehamming2disp(ThelinearmethodcancreateHammingcode.)endcodecyclic=encode(msg,n,k,cyclic/decimal);Decodetorecovertheoriginalmessage.decodedhamming=decode(codehamming,n,k,hamming/decimal);decodedcyclic=decode(codecyclic,n,k,cyclic/decimal);if(decodedhamming=msg采样频率Fc=15;载波频率t=0:0.025:2;采样时间x=sin(pi*t,2*pi*t);信号y=ammod(x,Fc,Fs);z=amdemod(y,Fc,Fs);plot(t,x(:,1),-,t,z(:,1),-)绘制调制信号hold;plot(t,x(:,2),-o,t,z(:,2),-*)绘制调制信号图程序运行结果如图8.4所示。,3模拟频率调制函数fmmod和解调函数fmdemody=fmmod(x,Fc,Fs,freqdev),使用频率调制对信号x进行调制,载波信号频率为Fc(Hz),采样速率为Fs(Hz),Fs必须大于或等于2*Fc,freqdev为调制信号的频率偏离常数。y=fmmod(x,Fc,Fs,freqdev,ini_phase),指定调制信号的初始相位,以弧度为单位。z=fmdemod(y,Fc,Fs,freqdev),使用频率解调从载波信号中对信号y解调,载波信号频率为Fc(Hz),采样速率为Fs(Hz),Fs必须大于或等于2*Fc,freqdev为调制信号的频率偏离常数。z=fmdemod(y,Fc,Fs,freqdev,ini_phase),指定调制信号的初始相位,以弧度为单位。,例8.8以下代码对两信道输出信号进行频率调制和解调Fs=8000;SamplingrateofsignalFc=3000;Carrierfrequencyt=0:Fs/Fs;Samplingtimess1=sin(2*pi*300*t)+2*sin(2*pi*600*t);Channel1s2=sin(2*pi*150*t)+2*sin(2*pi*900*t);Channel2x=s1,s2;Two-channelsignaldev=50;Frequencydeviationinmodulatedsignaly=fmmod(x,Fc,Fs,dev);Modulatebothchannels.z=fmdemod(y,Fc,Fs,dev);Demodulatebothchannels.,4相位调制函数pmmod和解调函数pmdemody=pmmod(x,Fc,Fs,phasedev),使用相位调制对信号x进行调制,载波信号频率为Fc(Hz),采样速率为Fs(Hz),Fs必须大于或等于2*Fc,freqdev为调制信号的相位偏离常数。y=pmdemod(x,Fc,Fs,phasedev,ini_phase),指定调制信号的初始相位,以弧度为单位。z=pmdemod(y,Fc,Fs,phasedev),使用相位解调对相位调制信号y解调,载波信号频率为Fc(Hz),采样速率为Fs(Hz),Fs必须大于或等于2*Fc,freqdev为调制信号的相位偏离弧度数。z=pmmod(y,Fc,Fs,phasedev,ini_phase),指定调制信号的初始相位,以弧度为单位。,例8.9对一模拟信号进行相位调制,经信道AWGN(即叠加高斯白噪声),解调并绘制原始信号与解调后信号波形。MATLAB程序如下:Preparetosampleasignalfortwoseconds,atarateof100samplespersecond.Fs=100;Samplingratet=0:2*Fs+1/Fs;TimepointsforsamplingCreatethesignal,asumofsinusoids.x=sin(2*pi*t)+sin(4*pi*t);,Fc=10;Carrierfrequencyinmodulationphasedev=pi/2;Phasedeviationforphasemodulationy=pmmod(x,Fc,Fs,phasedev);Modulate.y=awgn(y,10,measured,103);Addnoise.z=pmdemod(y,Fc,Fs,phasedev);Demodulate.Plottheoriginalandrecoveredsignals.figure;plot(t,x,k-,t,z,g-);legend(Originalsignal,Recoveredsignal);程序运行结果如图8.5所示。,图8.5相位调制解调信号,5模拟单边带幅度调制函数ssbmod和解调函数ssbdemody=ssbmod(x,Fc,Fs),采取单边带幅度调制方法,信号x以频率Fc(Hz)调制一载波信号,以下边带为期望的频带,载波信号和x的采样频率为Fs(Hz),调制信号具备零初始相位。y=ssbmod(x,Fc,Fs,ini_phase),指定了初始相位,以弧度为单位。y=ssbmod(x,fc,fs,ini_phase,upper),以上边带为期望的频带。z=ssbdemod(y,Fc,Fs),单边带幅度解调,其他定义同ssbmod。z=ssbdemod(y,Fc,Fs,ini_phase)z=ssbdemod(y,Fc,Fs,ini_phase,num,den),例8.10以下代码解调一个上边带和下边带信号。MATLAB程序如下:Fc=12000;Fs=270000;t=0:1/Fs:0.01;s=sin(2*pi*300*t)+2*sin(2*pi*600*t);y1=ssbmod(s,Fc,Fs,0);Lower-sidebandmodulatedsignaly2=ssbmod(s,Fc,Fs,0,upper);Upper-sidebandmodulatedsignals1=ssbdemod(y1,Fc,Fs);Demodulatelowersidebands2=ssbdemod(y2,Fc,Fs);Demodulateuppersideband,Plotresultstoshowthatthecurvesoverlap.figure;plot(t,s1,r-,t,s2,k-);legend(Demodulationofuppersideband,Demodulationoflowersideband)程序运行结果如图8.6所示。,图8.6单边带幅度调

温馨提示

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

评论

0/150

提交评论