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