第6章 通信系统仿真 6.1 通信工具箱函数 6.2 信息的度量和编码 6.3 差错控制编/译码方法 6.4 模拟调制和解调 第6章 通信系统仿真 6.1 通信工具箱函数 6.2 信息的度量和编码 6.3 差错控制编/译码方法 6.4 模拟调制和解调 6.5 数字调制和解调 6.6 通信系统的性能仿真 6.7 扩频通信系统的仿真
6.1通信工具箱的函数 在MATLAB的Communication Toolbox(通信工具箱)中提供了许多仿真函数和模块,用于对通信系统进行仿真和分析。主要包括两部分内容:通信函数命令和Simulink的Communications Blockset(通信模块集)仿真模块。用户既可以在MATLAB的工作空间中直接调用工具箱中的函数,也可以使用Simulink平台构造自己的仿真模块,以达到扩充工具箱的内容。通信工具箱中的函数名称和内容列表,其内容包含: Signal 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(信道函数); Galosi Field Computation(有限域估计函数); Utilities(实用工具函数)。
6.2 信息的量度与编码 6.2.1 Huffman编码 信源熵的输出可以用随机过程来表达。对于一个离散无记忆平稳随机过程,其信息量 (熵)定义为: 其中X表示信源取值集合,p(x)是信源取值x的概率。 6.2.1 Huffman编码 信源编码可分为两类:无失真编码和限失真编码。Huffman编码的基本原理就是为概率较小的信源输出分配较长的码字,而对那些出现可能性较大的信源输出分配较短的码字。 Huffman编码算法及步骤如下: ① 将信源消息按照概率大小顺序排队。 ② 按照一定的规则,从最小概率的两个消息开始编码。 ③ 将经过编码的两个消息的概率合并,并重新按照概率大小排序,重复步骤②。 ④ 重复上面步骤③,一直到合并的概率达到1时停止。这样便可以得到编码树状图。 ⑤ 按照后出先编码的方式编程,即从数的根部开始,将0和1分别放到合并成同一节点的任意两个支路上,这样就产生了这组Huffman码。
6.2.2 MATLAB信源编/译码方法 大多数信源(比如语音、图像)最开始都是模拟信号,为了将信源输出数字化,信源必须量化为确定数目的级数。量化方案可划分为标量量化和矢量量化两种。在标量量化中每个信源输出都分别被量化,标量量化可进一步分为均匀量化和非均匀量化。在均匀量化中量化区域是等长的;在非均匀量化中量化区域可以是不等长的。矢量量化是对信源输出组合进行整体量化。 在标量量化中,随机标量X的定义域被划分成N个互不重叠的区域Ri,1≤ i≤<N , Ri被称为量化间隔,且在每个区域内选择一个点作量化级数。这样落在区域Ri内的随机变量的所有值都被量化为第i个量化级数,用 来表示。这就意味着: 易见,这类量化引入了失真,其均方误差为: 其中f(x)是信源随机变量的概率密度函数。信号量化噪声比(SQNR)为:
在MATLAB通信工具箱中提供了两种信源编译码的方法:标量量化和预测量化。 1.标量量化 律或A律压扩计算函数compand( ) (1)信源编码中的 格式:out=compand(in, param, V, method) 功能:实现 值,V为峰值。压扩方式由method指定。 律或A律压扩,其中param为
(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的初始值。 [例6-2] 用训练序列和Lloyd算法,对一个正弦信号数据进行标量化。 MATLAB程序如下: N=2^3; %以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,'*'); 该程序运行结果如图6.3所示。
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输出。
[例6-3] 用训练数据优化DPCM方法,对一个余弦信号数据进行标量化。 MATLAB程序如下: N=2^3; %以3比特传输信道 t=[0:100]*pi/20; u=cos(t); [predictor,codebook,partition]=dpcmopt(u,1,N); %优化的预测传递函数 [index,quant]=dpcmenco(u,codebook,partition,predictor); %使用DPCM编码 [sig, equant]=dpcmdeco(index, codebook, predictor); %使用DPCM解码 plot(t,u,t,equant,'*'); 运行后所得图形如图6.4所示。
6.3 差错控制编/译码方法 在通信系统中,差错控制编/译码技术被广泛地用于检查和纠正信息在传递过程中发生的错误。在发送端,差错控制编码添加了一定的冗余码元到信源序列;接收时就利用这些冗余信息来检测和纠正错误。纠错编码主要有分组码和卷积码两种类型。 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 代表解码操作模型。
[例6-6] 利用vitdec函数对一个信号进行卷积码译码的例子。 MATLAB程序如下: t = poly2trellis([3 3],[4 5 7;7 4 2]); k = log2(t.numInputSymbols); msg = [1 1 0 1 1 1 1 0 1 0 1 1 0 1 1 1]; code = convenc(msg,t); tblen = 3; [d1]=vitdec(code,t,tblen,'cont','hard'); [d m p in] = vitdec(code,t,tblen,'cont','hard'); 该程序运行结结果:d1与d相同;d为信息msg的延迟结果, d(tblen*k+1:end)与 msg(1:end-tblen*k)相同。
6.4 模拟调制与解调 根据调制信号的不同,可将调制分为模拟调制和数字调制。模拟调制的输入信号为连续变化的模拟量,数字调制的调制信号是离散的数字量。在对调制进行仿真模拟有带通的和基带的两种选择。带通仿真的载波信号包含于传输模型中。由于载波信号的频率远高于输入信号,根据抽样定理,抽样频率必须至少大于两倍的载波频率才能正确地恢复信号,因此对高频信号的模拟仿真效率低、速度慢。为了加速模拟仿真,一般使用基带仿真,也称为低通对等方法。基带仿真使用带通信号的复包络。 6.4.1带通模拟调制与解调 模拟调制通常分为:幅度调制(AM)、频率调制(FM)和相位调制(PM)。幅度调制又可分为常规幅度调制(AM)、抑制双边带幅度调制(DSB-AM)、抑制单边带幅度调制(SSB-AM)和正交幅度调制(QAM)等。解调就是从调制信号中提取消息信号。解调过程与利用何种解调方式有关。在模拟调制的仿真中包含两个频率:载波频率 fc和仿真的采样频率 fs。
1.双边幅度调制(DSB-AM)与解调 在DSB-AM中,已调信号的时域表示如下式: 其中m(t)是消息信号, 为载波, 是载波的频率(单位赫兹Hz), 是初始相位。 对u(t) 作傅立叶变换,即可得到信号的频域表示: 传输带宽BT 是消息信号带宽的两倍,即: DSB-AM调制信号的解调过程如图6.7所示,调制信号与接收机本地振荡器所产生的正弦信号相乘可得混频器输出: 然后利用低通滤波器对低通分量进行滤波即可恢复被调信号。 图6.7 DSB-AM调制信号的解调
图6.5 信号调制前后比较 图6.6 DSB-AM调幅前后频谱
图6.9 未调制信号、解调信号及其相应的频谱比较
2.单边幅度调(SSB-AM)与解调 去掉DSB-AM的一边就得到SSB-AM。依据所保留的边带是上边,还是下边,可以分为USSA和LSSB两种不同的方式,此时信号的时域表示为: 在频域表示为: 的希尔特变换,定义为 , 在频域中为: 其中 是 单边SSB幅度调制占有DSB-AM的一半的带宽,即等于信号带宽: SSB-AM调制信号的解调过程基本上与DSB-AM调制信号的解调过程是相同的,即调制信号与本地振荡器的输出进行混频得: 然后利用低通滤波器对低通分量进行滤波即可恢复被调信号。
图6.11 上、下边带调制信号频谱 图6.10 上、下边带调制信号
图6.12 未调制信号、解调信号及其相应的频谱比较
3. 常规幅度调制(AM) 常规幅度调制(AM)在很多方面与双边幅度调制类型。不同的是,用 这里a是调制指数, 是经过归一化处理的消息信号。 在常规AM中,调制信号的时域表示为: 对u(t)作傅里叶变换,即可得到信号的频域表示: 常规幅度调制(AM)信号的解调,可采用包络检波器来实现。包络检波器可得到AM调制信号的包络为: 式中mn(t)与被调信号m(t)成比例,1对应于可由直流电路分离出来的载波分量。
图6.13 常规幅度调制信号 图6.14 常规幅度调制信号频谱
图6.15 常规幅度调制信号
4.正交幅度调制 正交幅度调制(QAM)调制信号为: 其中mI(t)为同相信号,mQ(t)为正交信号,fc是载波频率(单位赫兹Hz), 是初始相位。正交幅度调制过程如图6.16所示。对应的解调过程如图6.17所示。 图6.17 正交幅度调制的解调框图 图6.16 正交幅度调制框图
5.频率调制 频率调制亦称为等振幅调制。在频率调制过程中,输入信号控制载波的频率,使已调信号u(t)的频率按输入信号的规律变化。调制公式为: 其中u(t)是调制后的信号,fc是载波的频率(单位赫兹Hz), 是初始相位, 是瞬时相位,随着输入信号的振幅变化。 的计算公式为: 其中 为比例常数。 频率调制的解调过程使用锁相环方法,如图6.18所示。 图6.18 FM解调框图
6.相位调制 相位调制则是利用输入信号m(t)控制已调信号u(t)的相位,控制规律为: 其中u(t)是调制后的信号,fc是载波的频率(单位赫兹Hz), 是初始相位, 是瞬时相位,随着输入信号的振幅变化。 的计算公式为: 其中 为比例常数,称为调制器的灵敏度。相位调制的解调过程如图6.19所示。 图6.19 PM解调框图
7.带通模拟调制/解调函数 (1) 带通模拟调制函数amod( ) 格式:y=amod(x,Fc,Fs,method…) 功能:用载波为Fc(Hz)的信号来调制模拟信号x,采样频率为Fs(Hz),Fc > Fs。变量Fs可以是标量也可以为一个二维的矢量。二维矢量中第一个值为采样频率,第二个值为调制载波的初相,初相以弧度表示,默认值为0。根据采样定理,采样频率必须大于或等于调制信号最高频率的两倍。字符串变量method指定所用的调制方式,见表6.4。 (2) 带通模拟解调函数ademod( ) 格式:z=ademod(y,Fc,Fs,method...) 功能:对载波为Fc的调制信号y进行解,采样频率Fs,Fc>Fs。它是amod函数的逆过程,amod与ademod选择的调制方式必须相同,否则不容易正确复制出源信号。该函数在解调中用到一个低通滤波器,低通滤波器传输函数的分子、分母由输入参数num、den指定,低通滤波器的采样时间等于1/Fs。当num=0或缺省时,函数使用一个默认的巴特沃斯低通滤波器,可由[num,den]=butter(5,Fc*2/Fs)生成。字符串变量method指定所用的调制方式, 见表6.4。
[例6-13] 使用MATLAB对一信号进行正交幅度调制。 Fs=100; %采样频率 Fc=15; %载波频率 t=0:0.025:2; %采样时间 x=sin([pi*t',2*pi*t']); %信号 y=amod(x,Fc,Fs,'qam'); %正交幅度调制 z=ademod(y,Fc,Fs,'qam'); %正交幅度解调 plot(t,x(:,1),'-',t,z(:,1),'--') %绘制调制信号 hold; plot(t,x(:,2),'-o',t,z(:,2),'--*') %绘制调制信号 程序运行得到的信号和解调信号的波形如图6.20所示。
6.4.2 基带模拟调制/解调 基带仿真,也称低通对等方法,使用带通信号的复包络作为输入信号。设B为原始信号带宽,基带仿真要求仿真抽样率大于或等于2B ,而一般的有 B<<fc 。基带调制器的输出为复数信号,作为基带解调器的输入。 图6.23 基带调制/解调 ● 相干解调 接收信号z(t)的同相和正交分量为: 其中fc和 分别是载波信号的频率和相位。利用z(t)的估值可以恢复信号u(t) ● 非相干解调 非相干解调可以应用于 DSB-SC AM 、 DSB-TC AM 、 FM 和 PM 。对于AM调制, 非相干解调可以使用包络检测法。
1.基带模拟调制函数amodce( ) 格式:y=amodce(x,Fs,method,···) 功能:对输入信号x进行调制,输出复包络信号。输入输出的采样频率为Fs(Hz)。输出y为一个复矩阵。Fs可以是标量也可以为二维的矢量。二维矢量中第一个值为采样频率,第二个值为载波信号的初相,初相以弧度表示,默认值为0。字符串变量method指定所用的调制方式,见表6.3。 2.基带模拟解调函数ademodce( ) 格式:z =ademodce(y,Fs,method…) 功能:对接收的复包络信号y进行解调,y的采样频率为Fs(Hz)。Fs可为标量也可以为二维矢量。矢量中第一个值为采样频率,第二个值为调制载波的初相,初相为弧度表示,且默认值为 0。采样频率必须与调制中所用的采样频率一致,但初相可以不一致。 函数在解调中可使用低通滤波器,低通滤波器传输函数的分子、分母分别由输入参数num和den指定,低通滤波器的采样时间为1/Fs 秒。当num=0或缺省时,该函数将不使用低通滤波器。字符串变量method指定所用的调制方式, 见表6.3。 。
[例6-15] 利用MATLAB对一信号进行基带调制解调。 Fs=100; %信号采样频率 t=[0:1/Fs:5]'; %信号采样时间 x=[sin(2*pi*t),.5*cos(5*pi*t),sawtooth(4*t)]; %输入信号原 y=amodce(x,Fs,'fm'); %调制 z=ademodce(y,Fs,'fm'); %解调 subplot(2,1,1);plot(x); %绘制源信号 subplot(2,1,2);plot(z); %绘制调制解调后的信号 程序运行得到的信号源和解调信号的波形如图6.24所示。
6.5 数字调制与解调 按数字调制的方法分类可以分为多进制幅度键控 (M-ASK)、正交幅度键控(QASK)、多进制频率键控(M-FSK)以及多进制相位键控(M-PSK)。数字调制包括数模转换和模拟调制两部分,如图6.25所示。 图6.25 数字调制过程 1.M元幅度键控调制(M-ASK) M元幅度键控调制包含两部分,M-ASK映射和模拟幅度调制。M-ASK映射将输入的 数字码符映射到区间[-x, x],数字码符取值范围是 [0, M-1]区间内的整数。输出信号 的幅值分别为[-x, x]的M-1等分点。
2.M元正交键控调制(M-QASK) M-QASK是数字调制使用得最多的一种方法。它一般将输入的数字码符映射成为同相和正交的两个独立分量,然后用模拟QAM法对它们进行调制;在接收方,接收的信号被解调为同相和正交信号,从它们映射过程中恢复原始信号。有许多种方法可将输入信号映射成同相和正交分量。通信工具箱为M-QASK提供三种方案,即平面直角点集、圆点集和用户定义任意点集。 3.M 元频率键控调制(M-FSK) M 元频率键控调制是通过使用输入信号控制输出信号的频率来实现对数字信号的调制。M-FSK调制过程分成两部分,即映射和模拟调制。映射过程将输入信号反映成载波频率变化,模拟调制即FM。M-FSK的解调有两种方法,即相干法和非相干法。相干方法要求事先知道已调信号的相位,而非相干方法则不要求相位信息 , 它可以在解调过程中恢复已调信号的相位信息。 4.M-元相位键控调制(M-PSK) M-PSK通过改变已调信号的相位信息来实现对数字信号的调制。M-PSK设置不同的初 相移位以区别不同的数字码符。M-PSK调制器输入信号的取值区间[0, M-1],数字 i对应的相位位移为
6.5.1 带通数字调制/解调 1. 数字带通调制函数dmod( ) 格式:y=dmod(x, Fc, Fd, Fs, method …) 功能:用频率为Fc(Hz)的载波去调制数字信号,然后再输出采样频率为Fs(Hz)的仿真已调信号,Fs/Fd 必须是一个正整数。当输入x是一个矩阵时,x中每列做不相关处理,输出矩阵y的行数是Fs/Fd×(x的行数)。若变量Fs是一个两维矢量。当它为矢量时,第一个元素是采样频率,第二个元素是调制载波信号的初相(弧度),且默认值为0。要求Fs>Fc>Fd。method 为调制方法,见表6.6。 2.数字带通解调函数ddemod( ) 格式:z=ddemod(y, Fc, Fd, Fs, method …) 功能:解调载波为Fc(Hz)的数字调制信号y,其抽样频率为Fd(Hz),计算抽样频率为Fs(Hz)。该函数为dmod的逆过程,对频率与函数为dmod 中求要相同。当Fd为一个二维矢量时,Fd中的第二个值即为输出抽样点的时间偏移量(必须是整数,默认为0)。该函数测出接收码到编码中所有可能的码的距离,然后以离接收码最近的码作为输出数字码。除method =‘msk’和method =‘fsk’解调外,该函数可使用一个指定的低通滤波器,该滤波器的传输函数由分子num和分母den指定,滤波器的抽样时间为1/Fs,缺省滤波器时,在解调时无积分器。
[例6-16] 利用MATLAB进行带通数字调制解调—M元正交幅度键控调制。 图6.27 16-QASK调制
6.5.2 基带数字调制/解调 1.基带数字调制函数dmodce( ) 格式:y=dmodce(x, Fd, Fs, method, … ) 功能:调制一个带复包络的数字信号,主要用于基带数字调制。输出y为复数,其采样频率为Fs,输入x的采样频率为Fd,Fs/Fd必须是一个正整数。当输入x是一个矩阵时,x中每列是相互独立的,输出矩阵y的行数是Fs/Fd*x的行数。当变量Fs为两维矢量,矢量中第一个值是抽样频率,第二个值是调制载波的初始相位(弧度),默认值为0。method 为调制方法,见表6.6。 2.数字基带解调函数ddemodce( ) 格式:z=ddemodce(y,Fd,Fs,method…) 功能:解调数字基带调制信号y,其抽样频率为Fd (Hz), 计算抽样频率为Fs(Hz)。Fs/Fd必须为正整数,变量Fd可以是一个标量或两维矢量,矢量中第一个值是抽样频,第二个值为抽样时间偏移量(必须为整数),默认值为0。 3.AWGN信道函数awgn 格式:y=awgn(x,snr) 功能:向功率为0dB的信号x添加高斯白噪声,输出信号y的信噪比SNR为参数snr (单位dB)。如果信号x为复信号,该函数添加复高斯白噪声。
[例6-17] 利用MATLAB对信号进行基带数字调制解调。 M=4; %设置M的数目 Fd=1; %信号采样速率 Fs=32; %采样频率 SNRperBit=5; %信噪比 adjSNR=SNRperBit-10*log10(Fs/Fd)+10*log10(log2(M)); x=randint(5000,1,M); %源信号 %正交FSK调制 tone=0.5; %频隙间隙Δf=Fd/2 randn('state',1945724); %设置RANDN产生器的状态 w1=dmodce(x,Fd,Fs,'fsk',M,tone); %调制 y1=awgn(w1,adjSNR,'measured',[],'dB'); % 对调制信号添加噪声 z1=ddemodce(y1,Fd,Fs,'fsk',M,tone); %调制 ser1=symerr(x,z1) %输出符号误差率 %非正交FSK调制 tone=0.25; randn('state',1945724); %设置RANDN产生器的状态 w2=dmodce(x,Fd,Fs,'fsk',M,tone); %调制 y2=awgn(w2,adjSNR,'measured',[],'dB'); % 对调制信号添加噪声 z2=ddemodce(y2,Fd,Fs,'fsk',M,tone); %解调 ser2=symerr(x,z2) %输出符号误差率
6.6 通信系统的性能仿真 6.6.1通信系统的误码率仿真 6.6.2 误码率仿真界面 通信系统误码率的大小是衡量通信系统性能的好坏。无论是仿真带通系统还是基带通信系统,通信系统模型的误码率的计算过程主要由设置相关参数、创建信号及信源编码、调制、对调制信号添加高斯噪声、解调、计算系统的误码率等步骤组成。 6.6.2 误码率仿真界面 MATLAB提供了一种有效的分析误码率的工具——误码率仿真界面,它可用来计算和比较不同调制方式、不同差错控制编码方式和不同信道噪声模型条件下的通信系统的误码率。 在MATLAB命令窗中输入命令: >>commgui 即可打开一个图形用户界面窗口——误码率仿真界面。误码率仿真界面包含了通信系统中信号处理的全部过程:信号源信号的生成;信号经过差错控制编码和调制后发送;叠加在信道噪声后送到接收设备;经过解调和解码恢复出原始数据、进行误码率的计算过程等。
误码率仿真窗口上半部分功能区域,分为以下四个部分: ●Source(信号源); ●Err-Ctr-Code(差错控制编码); ●Modulation(信号调制编码); ●Channel(信道)。 图6.29 误码率仿真窗口
6.6.3 眼图/散射图 1.眼图 在研究数字传输码间干扰及其它信道噪声的时候,眼图是一个很方便的工具。眼图是一个接收信号相对于时间的关系曲线。当到达x轴的时间上限时,信号回到时间初始点,这样便产生了一幅重叠画。产生眼图的常用方法是使用示波器,将示波器的扫描频率设为1/T,其中T是信号周期。 格式:eyediagram(x, N) 功能:绘制信号x的眼图,该信号在一个扫描周期中有N个抽样点。N必须大于1。 [例6-22] 试绘制QASK调制信号的眼图。 图6.31 眼图(无偏移)
2.散射图 散射图与眼图密切相关。散射图记录了在给定判决点处信号的值。在MATLAB通信工具箱中也提供了一条专用函数命令scatterplot来绘制散射图。 格式:scatterplot(x, N) 功能:根据指定的参数N绘制信号x的散射图。x可为实向量,也可为复数向量,或只有两列的矩阵,第一为信号的实部,第二列为信号的虚部。绘制x中的第N点时从第一个值开始,默认值N=1。 [例6-23] 试制散QASK调制信号的绘射图。 图6.32 散步图
6.7扩频通信系统的性能仿真 图6.33 数字扩频通信系统基本框图 图6.33 数字扩频通信系统基本框图 为了正确进行信号的扩频解扩处理,必须使接收机的本地 PN 序列与接收信号中所包含的PN 序列建立时间同步。扩频通信系统按其工作方式的不同可分为下列几种:直接序列扩展频谱系统、跳频扩频系统、跳时扩频系统、混合式。只讨论两种基本的扩频系统的仿真:直接扩频(DS)和跳频(FH)系统。
6.7.1 直接序列扩频(DS-SS)系统 如果假设采用BPSK 方式发送二进制信息序列的扩频通信。设信息速率为 R bit/s,码元间隔为Tb=1/Rs传输信道的有效带宽为Bc (Hz)(Bc>>R ),在调制器中, 信息序列的带宽扩展为W= Bc , 载波相位以每秒W次的速率按伪随机序列发生器序列改变载波相位,即是直接序列扩频。 图6.34 二进制信息序列的扩频通信
[例6-24] 利用MATALB仿真演示直扩信号抑制正弦干扰的效果。 图6.36 直扩信号抑制正弦干扰效果图
6.7.2 跳频扩频系统(FH-SS) 跳频扩频系统将传输的带宽W分为很多互不重叠的频率点,按照信号时间间隔在一个或多个频率点上发送信号,根据伪随机发生器的输出,传输的信号选择相应的频率点。即载波的频率在“跳变”,“跳变”的规则由伪随机序列决定。跳频系统发射和接收部分框图如图6.38所示,跳频系统的数字调制方式可选择BFSK或MFSK。 图6.38 跳频系统发射和接收部分框图
[例6-25] 采用非相干解调,平方律判决器(即包络判决器),利用MATLAB仿真FSK/FH系统在最严重的部分边带干扰下的性能。