第3章 CHAPTER 3 系统功能模块设计与实现 3.1通信系统仿真模块 3.1.1信源模块 Simulink通信工具箱中的Comm Sources/Data Sources提供了数字信号源Bernoulli Binary Generator,这是一个按伯努利(Bernoulli)分布提供随机二进制数字信号的通用信号发生器。在现实中,对受信者而言,发送端的信号是不可预测的随机信号。因此,在仿真中可以用Bernoulli Binary Generator等效替代基带信号发生器。表31是对该模块的参数说明。 表31Bernoulli Binary Generator模块参数说明 模块名称Bernoulli Binary Generator 功能描述产生比特流 I/O接口输出接口1输出信号属性数字信号(比特流) 常用参数说明 Probability of a zero产生的信号中0符号的概率,在仿真时一般设为0.5,这样便于频谱的计算 Initial seed初始化种子控制随机数产生的参数,要求不小于30,而且与其他模块中的Initial seed设置不同的值 Sample time采样时间 Output data type输出数据属性 Framebased outputs选中该项,数据将以帧格式输出 图31为Bernoulli Binary Generator模块和参数设置界面。 图31Bernoulli Binary Generator模块和参数设置界面 3.1.2信源编码/解码模块 1. 信源编码 信源编码是对输入的信息进行编码,优化信息和压缩信息以形成符合标准的数字信号比特流。信源编码有两个作用,作用之一是设法减少码元数目和降低码元速率,即通常所说的数据压缩; 作用之二是将信源的模拟信号转化成数字信号,以实现模拟信号的数字化传输。在通信过程中,信源编码显得尤为重要,不同的编码方式,将会对话音的质量产生重要的影响。在这个模块库中,设计有常用的一些话音编码方式。模块库的组成如图32所示。 图32信源编码模块组成 1) 脉冲编码调制模块的设计 PCM是一种对模拟信号数字化的取样技术,将模拟的话音信号转换成数字信号的编码方式,特别是对音频信号。PCM对信号每秒取样8000次; 每次取样为8位,总共64kb/s。取样等级的编码有两种标准。北美洲及日本使用μ律标准,其他大多数国家使用A律标准。脉冲编码调制主要经过3个过程: 抽样、量化、编码。抽样过程是将连续时间模拟信号变成离散时间、连续幅度的抽样信号,量化过程是将抽样信号变成离散时间、离散幅度的数字信号,编码过程是将量化后的信号编码成一个二进制码组输出。模块的参数说明如表32所示。 表32PCM Encoder模块参数说明 模块名称PCM Encoder 功能描述将模拟信号转换成数字信号 I/O接口 输入接口1输出接口1 输入信号属性模拟信号/离散信号输出信号属性数字信号(比特流) 常用参数说明 Sample time采样时间 Peak value输入信号的幅度最大值 Compressor value压缩值(根据不同压缩类型填写不同压缩值) Law type压缩类型(A律或是μ律) 模块的设计主要分为4个部分,分别是抽样、压缩、量化、编码,其中压缩分为A律、μ律。利用Simulink中已有的模块进行搭建,其内部结构框图如图33所示。 图33PCM Encoder模块结构框图 该模块封装后的效果图及参数设置界面如图34所示。 图34PCM Encoder模块及参数设置界面 2) 增量调制模块的设计 ΔM或DM是继PCM后出现的又一种模拟信号数字化的方法。1946年由法国工程师De Loraine提出,目的在于简化模拟信号的数字化方法。主要在军事通信和卫星通信中广泛使用,有时也作为高速大规模集成电路中的A/D转换器使用。 ΔM与PCM相比,具有以下三个特点: (1) 电路简单,而PCM编码器需要较多逻辑电路。 (2) 数据率低于40kb/s时,话音质量比PCM好,DM一般采用的数据率为32kb/s或16kb/s。 (3) 抗信道误码性能好,能工作于误码率为10-3的信道,而PCM要求信道误码率低于10-6~10-5。因此,DM适用于军事通信、散射通信和农村电话网等中等质量的通信系统。DM技术还可应用于图像信号的数字化处理。DM模块的参数说明如表33所示。 表33DM Encoder模块参数说明 模块名称DM Encoder 功能描述将模拟信号转换成数字信号 I/O接口 输入接口1输出接口1 输入信号属性模拟信号/离散信号输出信号属性数字信号(比特流) 参数说明 Sample time采样时间 DM value增量调制的量化区间ΔM 在实现中,先进行抽样,然后用积分器来实现相加器和延迟单元的功能,可用量阶发生器和极性开关来组成量化器,而数码形成部分可由移位寄存器组成。实现的方式主要使用Simulink现有的模块进行搭建,模块内部结构框图如图35所示。 图35DM Encoder模块结构框图 模块封装后的效果图及参数设置界面如图36所示。 图36DM Encoder模块及参数设置界面 3) 差分脉冲编码调制模块 DPCM的基本思想是将“话音信号值同预测编码的差值”做量化编码。DM可看作简化后的DPCM,它只是将话音信号与预测值的差值做了简单的量化(即只存在两个量化值+σ、-σ),1b的编码,而差分脉冲编码是将该差值进行多区间量化,编码位数由划分的量化区间数量决定。与PCM和DM相比,DPCM在提高信道利用率的同时,降低了编码的量化误差。模块参数说明如表34所示。 表34DPCM Encoder模块参数说明 模块名称DPCM Encoder 功能描述将模拟信号转换成数字信号 I/O接口 输入接口1输出接口1 输入信号属性模拟信号/离散信号输出信号属性数字信号(比特流) 参数说明 Sample time采样时间 Numerator coefficient线性预测模块传递函数分子系数矩阵 Denominator coefficient线性预测模块传递函数分母系数矩阵 Quantization partition量化分割,为了对采样值与预测值的差值进行量化所划分的区间 Quantization codebook量化码本,对采样值与预测值的差值进行量化 差分脉冲编码实现的结构框图如图37所示。 图37DPCM Encoder结构框图 模块封装后的效果图及参数设置界面如图38所示。 图38DPCM Encoder模块及参数设置界面 2. 信源解码 与信源编码模块组成相对应,信源解码主要包含3个模块,具体如图39所示。 图39信源解码模块组成 1) 脉冲解码模块的设计 脉冲解码是脉冲编码调制的逆过程,它是把编码后的信息还原成时间上连续的信号。在工程实现的过程中,将会还原出在时间上离散的信号,由于在调制过程中采用了8kb/s的抽样速率和每样值8b的编码方式,所以在解码过程中同样需要采用每样值8b的解码方式。在解码中,同样有两种不同的标准,一种是A律,另一种是μ律。这个模块的说明如表35所示。 表35PCM Decoder模块参数说明 模块名称PCM Decoder 功能描述将数字信号转换成时间上离散的离散信号 I/O接口 输入接口1输出接口1 输入信号属性数字信号(比特流)输出信号属性模拟信号/离散信号 常用 参数说明 Sample time采样时间 Peak value输入信号的幅度最大值 Compressor value压缩值(根据不同压缩类型填写不同压缩值) Law type压缩类型(A律或是μ律) PCM的解码器首先分离出并行数据中的最高位和7位数据,然后将7位数据转换为整数值,再进行归一化,扩张后与双极性码相乘得出解码值,该模块主要利用Simulink中现有的模块库进行搭建,模块的结构图如图310所示。 图310PCM Decoder结构框图 模块封装后的效果图及参数设置界面如图311所示。 图311PCM Decoder模块及参数设置界面 2) 增量解码模块的设计 增量解码模块是对增量调制的解码,它是把数字信号还原成在时间上连续、在幅度上离散的信号。这个模块的参数说明如表36所示。 表36DM Decoder模块参数说明 模块名称DM Decoder 功能描述将数字信号还原成在时间上连续、在幅度上离散的信号 I/O接口 输入接口1输出接口1 输入信号属性模拟信号/离散信号输出信号属性数字信号(比特流) 参数说明 Sample time采样时间 DM value增量调制的量化区间ΔM 在解码中,增量解码模块由一个延迟相加电路组成,在实用中,为了简单起见,通常用一个积分器来代替上述的延迟相加电路。实现的主要方式是通过Simulink中现有的模块进行搭建,其实现的结构框图如图312所示。 图312DM Decoder结构框图 封装后的效果图及参数设置界面如图313所示。 图313DM Decoder模块及参数设置界面 3) 差分脉冲解码模块的设计 差分脉冲解码模块解码过程与DM相似,只是解码模块变得较为复杂,必须与编码模块具有相同的码本才能恢复出与发送端相同的波形。模块的参数说明如表37所示。 表37DPCM Decoder模块参数说明 模块名称DPCM Decoder 功能描述将模拟信号转换成数字信号 I/O接口 输入接口1输出接口1 输入信号属性模拟信号/离散信号输出信号属性数字信号(比特流) 参数说明 Sample time采样时间 Numerator coefficient线性预测模块传递函数分子系数矩阵 Denominator coefficient线性预测模块传递函数分母系数矩阵 Quantization partition量化分割,为了对采样值与预测值的差值进行量化所划分的区间 Quantization codebook量化码本,对采样值与预测值的差值进行量化 如图314所示为DPCM Decoder的结构框图。 图314DPCM Decoder结构框图 封装后的效果图及参数设置界面如图315所示。 图315DPCM Decoder模块及参数设置界面 3.1.3信道编码/解码模块 1. 信道编码 信道编码是根据一定的规律在待发送的信息码中加入一些冗余,以确保或提高传输的可靠性。信道编码的任务就是构造出以最小的冗余度代价换取最大抗干扰的“好码”。在实际的通信过程中,由于信道存在噪声和干扰,使发送的码字与信道传输后所接收的码字之间存在差异,称这种差异为差错。信道编码的目的是为了改善通信系统的传输质量。根据码的规律性,可分为检纠错码和非检纠错编码两大类,前者的规律性在于编码后码字中k位信息与r=n-k位监督元之间建立了一定的函数关系,监督元随信息组变化而变化,码字具有一定的检、纠错能力,后者包括扰码和交织编码等。在这个模块库中,设计有两类常用的信道编码方式: 检纠错码和非检纠错码。图316所示模块是通信系统中常用到的信道编码类型,限于篇幅,本节只对检纠错码和非检纠错码中的卷积、交织模块进行介绍,其他模块读者可参看MATLAB的帮助文档。本节介绍的模块均在Simulink模块库中Communication Blockset→Error Detection and Correction和Interleaving目录下,用户可在该目录下调用这些模块。通信系统常用到的信道编码模块如图316所示。 图316信道编码模块组成 1) 汉明码编码模块的设计 该模块可以产生一个(N,K)的汉明编码。码字长度N=2M-1,信息长度K=N-M。具体码字读者可以参阅汉明码表,模块使用gfprimdf(M)作为GF(2M)的本原多项式。gfprimdf函数将返回一个二进制向量作为参数指定的本原多项式。该向量可以作为Message length K的输入。表38为模块的参数说明。 表38汉明码编码模块参数说明 模块名称Hamming Encoder 功能描述对信息加入冗余位以便进行纠错,提高传输的可靠性 I/O接口 输入接口1输出接口1 输入信号属性数字信号(比特流)输出信号属性数字信号(比特流) 参数说明 Codeword length N码字长度 Message length K,or Mdegree primitive polynomial信息位长度,输入向量的长度 图317为汉明码编码模块及参数设置界面。 图317Hamming Encoder模块及参数设置界面 2) BCH码编码模块的设计 BCH码编码模块的输入必须是有K的整数倍个元素基于帧的列向量,每K个输入元素代表一个码字。模块中完成(N,K)的BCH编码。其中N具有(2M-1)形式,3≤M≤16。如果N小于(2M-1),那么模块认为码长减少了2M-1-N; 如果N大于(2M-1),那么必须在模块参数项Primitive polynomial中设定适当的M值,具体的常用参数说明如表39所示,图318为BCH码编码模块及参数设置界面。 表39BCH码编码模块参数说明 模块名称BCH Encoder 功能描述对信息加入冗余位以便进行纠错,提高传输的可靠性 I/O接口 输入接口1输出接口1 输入信号属性数字信号(比特流)输出信号属性数字信号(比特流) 常用 参数说明 Codeword length N码字长度 Message length K信息位长度,输入向量的长度 Specify generator polynomial选定后出现Generator polynomial项,代表初始多项式的二进制系数的行向量