《通信工具箱》PPT课件.ppt

上传人:小飞机 文档编号:5611721 上传时间:2023-08-02 格式:PPT 页数:42 大小:317.49KB
返回 下载 相关 举报
《通信工具箱》PPT课件.ppt_第1页
第1页 / 共42页
《通信工具箱》PPT课件.ppt_第2页
第2页 / 共42页
《通信工具箱》PPT课件.ppt_第3页
第3页 / 共42页
《通信工具箱》PPT课件.ppt_第4页
第4页 / 共42页
《通信工具箱》PPT课件.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《《通信工具箱》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《通信工具箱》PPT课件.ppt(42页珍藏版)》请在三一办公上搜索。

1、第8章 通信工具箱,8.1 MATLAB信源编/译码方法8.2 差错控制编/译码方法 8.3 调制与解调8.4 通信系统性能仿真8.5 实验九 通信系统仿真实验,在MATLAB的Communication Toolbox(通信工具箱)中提供了许多仿真函数和模块,用于对通信系统进行仿真和分析。主要包括两部分内容:通信函数命令和Simulink的Communications Blockset(通信模块集)仿真模块。用户既可以在MATLAB的工作空间中直接调用工具箱中的函数,也可以使用Simulink平台构造自己的仿真模块,以达到扩充工具箱的内容。通信工具箱中的函数名称和内容列表,其内容包含:,Si

2、gnal Sources(信号源函数);Signal Analysis function(信号分析函数);Source Coding(信源编码);Error Control Coding(差错控制编码函数);Lower Level Function for Error Control Coding(差错控制编码的底层函数);Modulation/Demodulation(调制/解调函数)Special Filters(特殊滤波器设计函数);Lower Level Function for Specials Filters(设计特殊滤波器的底层函数);Channel Functions(信道函数

3、);Galosi Field Computation(有限域估计函数);Utilities(实用工具函数)。,在MATLAB通信工具箱中提供了两种信源编译码的方法:标量量化和预测量化。1.标量量化,(1)信源编码中的,律或A律压扩计算函数compand(),格式:out=compand(in,param,V,method)功能:实现,律或A律压扩,其中param为,值,V为峰值。压扩方式由method指定。,8.1 MATLAB信源编/译码方法,(2)产生量化索引和量化输出值的函数quantiz()格式:indx=quantiz(sig,partition)功能:根据判断向量partition

4、,对输入信号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

5、,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)信源编码中

6、的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=

7、0:pi/50:2*pi;x=sawtooth(3*t);Original signalinitcodebook=-1:.1:1;Initial guess at codebook Optimize parameters,using initial codebook and order 1.predictor,codebook,partition=dpcmopt(x,1,initcodebook);Quantize x using DPCM.encodedx=dpcmenco(x,codebook,partition,predictor);Try to recover x from the m

8、odulated signal.decodedx,equant=dpcmdeco(encodedx,codebook,predictor);distor=sum(x-decodedx).2)/length(x)Mean square errorplot(t,x,t,equant,*);,程序运行输出distor=8.6801e-004结果如图8.3所示。,图8.3 DPCM预测量化误差,8.2 差错控制编/译码方法,在通信系统中,差错控制编/译码技术被广泛地用于检查和纠正信息在传递过程中发生的错误。在发送端,差错控制编码添加了一定的冗余码元到信源序列;接收时就利用这些冗余信息来检测和纠正错误。

9、纠错编码主要有分组码和卷积码两种类型。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)功能:

10、用指定的method方式进行译码。为了正确地复制出信源序列,编码和译码的调用方式必须相同。,2.卷积纠错编码函数convenc()格式:code=convenc(msg,trellis)功能:利用poly2trellis函数定义的格形trellis 结构,对二进制矢量信息msg进行卷积编码。编码器的初始状态为零状态。,3.将卷积编码多项式转换成格形(trellis)结构函数poly2trellis()格式:trellis=poly2trellis(constrainlength,codegenerator)功能:将前向反馈卷积编码器的多项式转换成一格形(trellis)结构。,4.利用Vite

11、rbi 算法译卷积码函数vitdec()格式:decoded=vitdec(code,trellis,tblen,opmode,dectype)功能:利用Viterbi 算法译卷积码。Code为poly2trellis函数或istrellis函数定义的格形trellis结构的卷积码。参数tblen 取正整数,表示记忆(traceback)深度。参数opmode代表解码操作模型。,例8.4 使用hamming和cyclic方法对同一个信号进行编码,并且采取线性选项进行Hamming编码,然后进行解码恢复原信号。MATLAB程序如下:n=7;Codeword lengthk=4;Message l

12、engthm=log2(n+1);Express n as 2m-1.msg=randint(100,1,0,2k-1);Column of decimal integers Create various codes.codehamming=encode(msg,n,k,hamming/decimal);parmat,genmat=hammgen(m);,codehamming2=encode(msg,n,k,linear/decimal,genmat);if codehamming=codehamming2 disp(The linear method can create Hamming

13、code.)endcodecyclic=encode(msg,n,k,cyclic/decimal);Decode to recover the original message.decodedhamming=decode(codehamming,n,k,hamming/decimal);decodedcyclic=decode(codecyclic,n,k,cyclic/decimal);if(decodedhamming=msg&decodedcyclic=msg)disp(All decoding worked flawlessly in this noiseless world.)en

14、d,程序运行结果如下:The linear method can create Hamming code.All decoding worked flawlessly in this noiseless world.,8.3 调制与解调,根据调制信号的不同,可将调制分为模拟调制和数字调制。模拟调制的输入信号为连续变化的模拟量,数字调制的调制信号是离散的数字量。在对调制进行仿真模拟有带通的和基带的两种选择。带通仿真的载波信号包含于传输模型中。由于载波信号的频率远高于输入信号,根据抽样定理,抽样频率必须至少大于两倍的载波频率才能正确地恢复信号,因此对高频信号的模拟仿真效率低、速度慢。为了加速模拟仿

15、真,一般使用基带仿真,也称为低通对等方法。基带仿真使用带通信号的复包络。,(1)带通模拟调制函数amod()格式:y=ammod(x,Fc,Fs,method)功能:用载波为Fc(Hz)的信号来调制模拟信号x,采样频率为Fs(Hz),Fc Fs。变量Fs可以是标量也可以为一个二维的矢量。二维矢量中第一个值为采样频率,第二个值为调制载波的初相,初相以弧度表示,默认值为0。根据采样定理,采样频率必须大于或等于调制信号最高频率的两倍。字符串变量method指定所用的调制方式,见表8.3。,(2)带通模拟解调函数ademod()格式:z=amdemod(y,Fc,Fs,method.)功能:对载波为F

16、c的调制信号y进行解,采样频率Fs,FcFs。它是amod函数的逆过程,amod与ademod选择的调制方式必须相同,否则不容易正确复制出源信号。该函数在解调中用到一个低通滤波器,低通滤波器传输函数的分子、分母由输入参数num、den指定,低通滤波器的采样时间等于1/Fs。当num=0或缺省时,函数使用一个默认的巴特沃斯低通滤波器,可由num,den=butter(5,Fc*2/Fs)生成。字符串变量method指定所用的调制方式,见表8.3。,例8.7 使用MATLAB对一信号进行幅度调制。MATLAB程序如下:Fs=100;采样频率 Fc=15;载波频率 t=0:0.025:2;采样时间

17、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,in

18、i_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;Sampling rate of signalFc=3000;Carrier frequencyt=0:Fs/Fs;Sampling timess1

19、=sin(2*pi*300*t)+2*sin(2*pi*600*t);Channel 1s2=sin(2*pi*150*t)+2*sin(2*pi*900*t);Channel 2x=s1,s2;Two-channel signaldev=50;Frequency deviation in modulated signaly=fmmod(x,Fc,Fs,dev);Modulate both channels.z=fmdemod(y,Fc,Fs,dev);Demodulate both channels.,4相位调制函数pmmod和解调函数pmdemody=pmmod(x,Fc,Fs,phase

20、dev),使用相位调制对信号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),指定调制信号的初始相位,以弧度为单位。,例

21、8.9 对一模拟信号进行相位调制,经信道AWGN(即叠加高斯白噪声),解调并绘制原始信号与解调后信号波形。MATLAB程序如下:Prepare to sample a signal for two seconds,at a rate of 100 samples per second.Fs=100;Sampling ratet=0:2*Fs+1/Fs;Time points for sampling Create the signal,a sum of sinusoids.x=sin(2*pi*t)+sin(4*pi*t);,Fc=10;Carrier frequency in modulat

22、ionphasedev=pi/2;Phase deviation for phase modulationy=pmmod(x,Fc,Fs,phasedev);Modulate.y=awgn(y,10,measured,103);Add noise.z=pmdemod(y,Fc,Fs,phasedev);Demodulate.Plot the original and recovered signals.figure;plot(t,x,k-,t,z,g-);legend(Original signal,Recovered signal);程序运行结果如图8.5所示。,图8.5 相位调制解调信号,

23、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,i

24、ni_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-sideband modulated signaly2=ssbmod(s,Fc,Fs,0,upper);Upper-sideband modulated signals1=ssbdemod(y1,Fc,Fs);Demodulate lower sidebands2=ssbdemod(y2,Fc,Fs)

25、;Demodulate upper sideband,Plot results to show that the curves overlap.figure;plot(t,s1,r-,t,s2,k-);legend(Demodulation of upper sideband,Demodulation of lower sideband)程序运行结果如图8.6所示。,图8.6 单边带幅度调制和解调信号,6数字调制和解调函数fskmod,fskdemod,modnormy=fskmod(x,M,freq_sep,nsamp),M元频率键控调制,输出y为调制信号x的复包络,M必须是2的整数次幂。数

26、字码符取值范围是0,M-1区间内的整数。freq_sep为频率步长,nsamp表示输出y的每个符号的采样个数,必须为大于1的正整数。根据Nyquist采样理论,freq_sep和M必须满足(M-1)*freq_sep=1。如果x是个矩阵,则函数按列执行。,y=fskmod(x,M,freq_sep,nsamp,Fs),指定y的采样速率Fs。y=fskmod(x,M,freq_sep,nsamp,Fs,phase_cont),强调了相位的连续性。z=fskdemod(y,M,freq_sep,nsamp),频率键控解调,为fskmod的逆运算。z=fskdemod(y,M,freq_sep,ns

27、amp,Fs)z=fskdemod(y,M,freq_sep,nsamp,Fs,symbol_order)scale=modnorm(const,avpow,avpow),对标准脉幅调制和正交幅度调制的输出返回一个比例因素,其平均功率为avpow(W),const是一个矢量。scale=modnorm(const,peakpow,peakpow),返回一个比例因素,其峰值功率为peakpow(W)。,例8.11 对一随机信号进行频率键控调制经信道AWGN后解调,计算其误码率。MATLAB程序如下:M=2;k=log2(M);EbNo=5;Fs=16;nsamp=17;freqsep=8;msg

28、=randint(5000,1,M);Random signaltxsig=fskmod(msg,M,freqsep,nsamp,Fs);Modulate.,msg_rx=awgn(txsig,EbNo+10*log10(k)-10*log10(nsamp),.measured,dB);AWGN channelmsg_rrx=fskdemod(msg_rx,M,freqsep,nsamp,Fs);Demodulatenum,BER=biterr(msg,msg_rrx)Bit error rateBER_theory=berawgn(EbNo,fsk,M,noncoherent)Theoret

29、ical BER,程序运行结果如下:num=512BER=0.1024BER_theory=0.1029,例8.12 使用函数modnorm传输一个具有1 W峰值功率的幅度调制信号 MATLAB程序如下:M=16;Alphabet sizeconst=qammod(0:M-1,M);Generate the constellation.x=randint(1,100,M);scale=modnorm(const,peakpow,1);Compute scale factor.y=scale*qammod(x,M);Modulate and scale.,ynoisy=awgn(y,10);Tr

30、ansmit along noisy channel.ynoisy_unscaled=ynoisy/scale;Unscale at receiver end.z=qamdemod(ynoisy_unscaled,M);Demodulate.See how scaling affects constellation.h=scatterplot(const,1,0,ro);Unscaled constellationhold on;Next plot will be in same figure window.scatterplot(const*scale,1,0,bx,h);Scaled co

31、nstellationhold off;,程序运行结果如图8.7所示。,7AWGN信道函数awgn该函数格式如下。y=awgn(x,snr),向功率为0 dB的信号x添加高斯白噪声,输出y的信噪比为参数snr,单位为dB。如果信号x为复信号,则添加复噪声。y=awgn(x,snr,sigpower),信号的功率大小为sigpower,当sigpower为measured时,该函数先对信号的功率进行测试,再叠加高斯白噪声。y=awgn(.,powertype),说明信噪比snr和信号功率sigpower的单位。有两种选择:powertype=db或powertype=linear,后者功率的单位

32、为W。,例8.13 给一锯齿波添加高斯白噪声,并绘制出原信号和含噪声信号波形。MATLAB程序如下:t=0:.1:10;x=sawtooth(t);Create sawtooth signal.y=awgn(x,10,measured);Add white Gaussian noise.plot(t,x,t,y)Plot both signals.legend(Original signal,Signal with AWGN);,图8.8 添加高斯白噪声的信号与原信号波形,程序运行结果如图8.8所示。,8.4 通信系统性能仿真 8.4.1 误码率分析界面通信系统误码率的大小可以衡量通信系统性能

33、的好坏。在MATLAB命令窗中输入命令bertool即可打开一个图形用户界面窗口误码率分析界面,如图8.9所示。,图8.9 误码率仿真窗口,8.4.2 通信模块集Simulink模块库中专门提供了通信模块集(Communications Blockset),如图8.22所示。简要介绍各模块组的作用如下。,图8.22 通信模块集,(1)通信信源模块组(Comm Sources):包含各种通信信号输入模块和I/O演示模块。(2)通信输入模块组(Comm Sinks):包含触发写模块、眼图和散射图模块、误码率计算模块及其相应的演示模块。(3)信源编码组(Source Coding):包含标量量化编码/解码模块、DPCM编码/解码模块、规则压缩/解压模块,以及相应的演示模块。(4)信道组(Channels):包含加零均值高斯白噪声信道模块、加二进制误差信道模块、Rayleigh衰减信道模块、Rician噪声信道模块及其相应的演示模块。(5)调制组(Modulation):包含数字模拟调制模块。(6)同步组(Synchronization):包含锁相环PLL模块、基带PLL模块、演示模块、线性化基带PLL模块等。,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号