第八讲通信工具箱主要功能库介绍通信工具箱的功能库信源性能评估误码率分析用户界面信源编码差错控制编码交织调制专用滤波器信道均衡器伽罗瓦域计算1.信源函数函数wgn()函数wgn()产生高斯白噪声(WhiteGaussianNoise)。通过wgn()函数可以产生实数形式或复数形式的噪声,噪声的功率单位可以是dBW(分贝瓦)、dBm(分贝毫瓦)或绝对数值。其中1W=0dBW=30dBm加性高斯白噪声是最简单的一种噪声,它表现为信号围绕平均值的一种随机波动过程。加性高斯白噪声的均值为0,方差表现为噪声功率的大小。wgn()函数调用格式y=wgn(m,n,p)产生m行n列的白噪声矩阵,p表示输出信号y的功率(单位:dBW),并且设定负载的电阻为1欧姆。wgn(m,n,p,imp)生成m行n列的白噪声矩阵,功率为p,指定负载电阻为imp(单位为:欧姆)。y=wgn(m,n,p,imp,state)在计算加性高斯白噪声前将随机数重新设置为state。通过这种方式,MATLAB每次调用相同的wgn()语句时都将得到相同的结果,即,使用相同的随机数,输出噪声信号相同,当使用不同的随机数时,输出的噪声信号不相同。y=wgn(…,powertype)参数powertype指明了输出噪声信号功率p的单位,这些单位可以是dBW、dBm或lineary=wgn(…,outputtype)参数outputtype用于指定输出信号的类型。当outputtype被设置为real时输出实信号,当设为complex时,输出信号的实部和虚部的功率都为p/2。randsrc()函数函数randsrc()是根据给定的数字表产生一个随机符号矩阵。矩阵中包含的元素是数据符号,它们之间相互独立。randsrc()函数的用法为:randsrc产生一个随机标量,这个标量是1或-1,且产生1和-1的概率相等。randsrc(m)产生一个m×m的矩阵,且此矩阵中的元素是等概率出现的1和-1。randsrc(m,n)产生一个m×n的矩阵,且此矩阵中的元素是等概率出现的1和-1。randsrc(m,n,alphabet)产生一个m×n的矩阵,矩阵中的元素为alphabet中所指定的数据符号,每个符号出现的概率相等且相互独立。randsrc(m,n,[alphabet;prob])产生一个m×n的矩阵,矩阵中的元素为alphabet集合中所指定的数据符号,每个符号出现的概率由prob决定。prob集合中所有数据相加必须等于1。randint()函数产生均匀分布的随机整数矩阵randint()函数是产生一个均匀分布的随机整数矩阵。它的使用形式为:randint产生一个不是0,就是1的随机标量,且0,1等概率出现。randint(m)产生一个m×m的整数矩阵,矩阵中的元素为等概率出现的0和1。randint(m,n)产生一个m×n的整数矩阵,矩阵中的元素为等概率出现的0和1。randint(m,n,rg)产生一个m×n的整数矩阵,如果rg为0,则产生0矩阵;否则矩阵中的元素是rg所设定范围内整数的均匀分布。此范围是:(1)[0,rg-1],当rg为正整数时;(2)[rg+1,0],当rg为负整数时;(3)从min到max,包括min和max,当rg=[min,max]或[max,min]randerr()产生比特误差样本randerr函数用于测试差错控制编码,其调用格式为:out=randerr(m)产生一个m×m行的二元矩阵,矩阵中的每一行有且只有一个非零元,且非零元素在每一行中的位置是随机的。out=randerr(m,n)产生一个m×n行的二元矩阵,矩阵中的每一行有且只有一个非零元,且非零元素在每一行中的位置是随机的。out=randerr(m,n,errors)产生一个m×n的二元矩阵,矩阵中每一行非零元的个数由errors决定,如下:(1)当errors是一个标量时,每一行非零元的个数等于这个标量值。(2)当errors是一个行向量时,这个行向量列出了out矩阵每一行非零元个数的可能取值,且取每个值的概率相等。(3)当errors是一个行数为2的矩阵时,第一行列出了out矩阵每一行非零元个数的可能取值,第二行列出了每个取值的概率。2.信道awgn函数在输入信号中叠加一定强度的高斯白噪声,噪声的强度由函数参数确定,awgn函数的调用格式为:y=awgn(x,snr)把加性高斯白噪声叠加到输入信号x中。噪声的强度由信噪比snr(单位为:dB)确定,且这里信号x的强度假定为0dB,则噪声信号的功率实际上等于-snrdBWy=awgn(x,snr,sigpower)语法与上述不同的是指定输入信号x的功率为sigpower(单位:dBW)y=awgn(x,snr,’measured’)与y=awgn(x,snr)不同的是,在加噪声之前先计算出输入信号的功率。对于向量x,x(i)的功率p(i)=x²(i),通过p(i)和snr计算出方差var(i),最后以x(i)为均值,var(i)为方差计算出高斯随机过程。y=awgn(x,snr,sigpower,state)在计算加性高斯白噪声之前,将随机数randint重新设置为state。通过这种方式MATLAB每次调用相同语句的时候都将得到相同的结果。y=awgn(…,powertype)powertype指明了snr和sigpower的单位,这些单位可以是db,也可以是linear。当使用db为单位时,snr的单位时dB,sigpower的单位是dBW。如果powertype设置为linear,snr使用绝对值,sigpower的单位是瓦(watts)。3.调制与解调模拟调制/解调函数调幅或DSB调频调相单边带调制DSB和AM调制术语:Fc为载波频率,Fs为采样频率y=ammod(x,Fc,Fs)用调制信号x来调制频率为Fc的载波,载波和调制信号的采样频率为Fs,已调信号y的初始相位为0。此调制为DSB。y=ammod(x,Fc,Fs,ini_phase),ini_phase是已调波y的初始相位。此调制为DSB。y=ammod(x,Fc,Fs,ini_phase,carramp),带有载波分量的双边带信号,因此此调制为AM。注意:Fs2(Fc+BW)BW为调制信号x的带宽。PM(y=Acos[ωct+kpm(t)])y=pmmod(x,Fc,Fs,phasedev),用调制信号x对频率为Fc的载波进行相位调制,其中采样频率Fs=2Fc,phasedev为调相灵敏度。y=pmmod(x,Fc,Fs,phasedev,ini_phase),大体描述与上相同,不同之处是设置了已调信号y的初始相位ini_phase。FMy=fmmod(x,Fc,Fs,freqdev)y=fmmod(x,Fc,Fs,freqdev,ini_phase)SSB(单边带调制)y=ssbmod(x,Fc,Fs),调制信号x对频率为Fc的载波进行单边带调制,Fs为采样频率。得到的是下边带。y=ssbmod(x,Fc,Fs,ini_phase),设定已调信号的初始相位为ini_phase,得到的是下边带。y=ssbmod(x,fc,fs,ini_phase,‘upper’),与上面不同的是,得到的是上边带。单通道信号——向量向量中的元素表示对模拟信号进行采样后得到的采样点的幅值,采样间隔为1/Fs,例如:fs=1024;t=(1:2fs)/fs;x=sin(2*pi*t);这里的x即为单通道信号。多通道信号——矩阵每列表示一个通道。如产生两通道信号,分别为初相等于0和pi/8的两个正弦波:Fs=8000;t=[0:.1*Fs]‘/Fs;%注意t进行了转置x=[sin(20*pi*t),sin(20*pi*t+pi/8)]数字调制/解调函数差分相移键控频移键控正交振幅调制相移键控偏置正交相移键控最小移频键控脉冲振幅调制表示数字信号为了用数字调制来调制一个含有M个数字符号的数字信号,此数字信号用向量表示,其元素值为0到M-1。如数字信号是八进制,表示这种信号用[237105526]'fskmod()——FSK调制函数y=fskmod(x,M,freq_sep,nsamp)y=fskmod(x,M,freq_sep,nsamp,Fs)y=fskmod(x,M,freq_sep,nsamp,Fs,phase_cont)y=FSKMOD(x,M,freq_sep,nsamp,Fs,phase_cont,symbol_order)参数M表示调制过程中使用的频率的个数,这些频率之间的间隔为freq_sep,nsamp为每个输入符号抽样点的个数,phase_cont用于确定y的相位连续性,Fs为y的采样频率,symbol_order确定输入符号集的编码方式。对信号进行调制通常是通过使用函数,如fskmod和ssbmod来完成的,而对于PSK和QAM等调制可以通过使用调制解调对象来完成。调制解调器对象是MALAB的一种变量类型,该变量包含了关于调制算法的一些信息,如调制类型的名字、M进制数以及星座映射。用特定的方法来完成一个特定的工作就可以对此调制解调器进行操作。调制解调器对象的构造用调制解调器对象对信号进行调制的基本步骤1.根据调制类型用,如modem.pskmod或modem.qammod来生成一个调制解调器对象2.调整调制对象的属性,根据需要进行必要的修改。3.通过使用调制解调器对象的方法modulate来对信号进行调试。对信号进行解调的程序与调制相同,只是使用的对象是modem.pskdemod或modem.qamdemod,而作用于对象的方法是demodulate。画信号星座图的步骤(constellation)如果信息符号个数为M,那就产生信号向量[0:M-1],来表示调制器所有可能的输入。用适合的调制函数来调制这个信号。调制结果是信号星座点的所有点的集合对已调信号使用scatterplot函数来产生星座点图