登录
首页 » Others » 反向传播算法推导—全连接神经网络

反向传播算法推导—全连接神经网络

于 2020-12-09 发布
0 513
下载积分: 1 下载次数: 6

代码说明:

反向传播算法是人工神经网络训练时采用的一种通用方法,在现代深度学习中得到了大 规模的应用。全连接神经网络(多层感知器模型,MLP),卷积神经网络(CNN),循环神 经网络(RNN)中都有它的实现版本。算法从多元复合函数求导的链式法则导出,递推的 计算神经网络每一层参数的梯度值。算法名称中的“误差”是指损失函数对神经网络每一层 临时输出值的梯度。反向传播算法从神经网络的输出层开始,利用递推公式根据后一层的误 差计算本层的误差,通过误差计算本层参数的梯度值,然后将差项传播到前一层(w, x,)+b这个神经元接受的输入信号为向量(),向量()为输入向量的组合权重,为徧置项,是标量。神经儿对输入冋量进行加权求和,并加上偏置项最后经过激活函数变换产生输出为表述简洁,我们把公式写成向量和矩阵形式。对每个神经元,它接受的来自前一层神经元的输入为向量,本节点的权重向量为,偏置项为,该神经元的输出值为先计算输入向量与权重向量的内积,加上偏置项,再送入一个函数进行变换,得到输出这个函数称为激活函数,典型的是函数。为什么需要激活函数以及什么样的函数可以充当激活函数,在之前的公众号文章“理解神经网终的激活函数”中已经进行了介绍。神绎网络一般有多个层。第一层为输入层,对应输入向量,神绎元的数量等于特征向量的维数,这个层不对数据进行处理,只是将输入向量送入下一层中进行计算。中间为隐含层,可能有多个。最后是输出层,神经元的数量等于要分类的类别数,输出层的输岀值被用来做分类预测。下面我们来看一个简单神经网络的例了,如下图所示这个网络有层。第一层是输入层,对应的输入向量为,有个神经元,写成分量形式为(),它不对数据做任何处理,直接原样送入下一层。中间层有个神经元,接受的输入数据为向量,输出向量为,写成分量形式为。第三个层为输出层,接受的输入数据为向量,输出向量为,写成分量形式为()。第一层到第层的权重矩阵为(,第二层到第三层的权重矩阵为()。权重矩阵的每一行为一个权重向量,是层所有神经元到本层某一个神经儿的连接权重,这里的上标表小层数如果激活函数选用函数,则第二层神经元的输出值为+(-(+0)+(1+(0)(-(()第三层神经元的输出值为如果把代入上面二式中,可以将输出向量表示成输出向量的函数。通过调整权重矩阵和偏置项可以实现不同的函数映射,因此神经网终就是一个复合函数需要解决的·个核心问题是·旦神经网络的结构(即神经元层数,每层神经元数量)桷定之后,怎样得到权重矩阵和偏置项。这些参数是通过训练得到的,这是本文推导的核心任务个简单的例子首先以前面的层神经网络为例,推导损失函数对神经网络所有参数梯度的计算方法假设训练样本集中有个样本()。其中为输入向量,为标签向量。现在要确定神经网络的映射函数:什么样的函数能很好的解释这批训练栟本?答案是神经网络的预测输出要尽可能的接近样本的标签值,即在训练集上最小化预测误差,如果使用均方误差,则优化的目标为:∑‖()-其中()和都是向量,求和项内部是向量的范数平方,即各个分量的平方和。上面的误差也称为欧氏距离损失函数,除此之外还可以使用其他损失函数,如交叉熵、对比损失等。优化目标函数的自变量是各层的权重矩阵和梯度向量,一般情况下无法保证目标函数是凸函数,因此这不是一个凸优化问题,有陷入局部极小值和鞍点的风险(对于这些概念和问题之前的公众号文章“理解梯度下降法”,“理解凸优化”中己经做了详细介绍)这是神经网络之前一直被诟病的一个问题。可以使用梯度下降法进行求解,使用梯度下降法需要计算出损失函数对所有权重矩阵、偏置向量的梯度值,接下来的关键是这些梯度值的计算。在这里我们先将问题简化,只考虑对单个样本的损失函数()-‖后面如果不加说明,都使用这种单样木的损失函数。如果计算出了对单个样木损失函数的棁度值,对这些梯度值计算均值即可得到整个目标函数的梯度值。和(要被代入到网络的后一层中,是复合函数的内层变量,我们先考虑外层的和。权重矩阵是一个x的矩阵,它的两个行分别为向量(和是个维的列向量,它的两个元素为()和()。网络的输入是向量,第一层映射之后的输出是向量首先计算损失函数对权重矩阵每个元素的偏导数,将欧氏距离损尖函数展开,有((+))(())6(如果,即对权重矩阵第行的元素求导,上式分了中的后半部分对来说是常数。根据链式法则有S()+()O如果,即对矩阵第二行的元素求导,类似的有:可以统一写成可以发现,第一个下标决定了权重矩阵的第行和偏置向量的第个分量,第二个下标决定了向量的第个分量。这可以看成是一个列向量与一个行向量相乘的结果,写成矩阵形式为上式中乘法⊙为向量对应元素相乘,第二个乘法是矩阵乘法。是个维列向量,+也是一个维列向量,两个向量执行⊙运算的结果还是个维列向量。是一个元素的列向量,其转置为维行向量,前面这个:维列向量与的乘积为的矩阵,这正好与矩阵的尺寸相等。在上面的公式中,权重的偏导数在求和项中由部分组成,分别是网络输出值与真实标签值的误差激活区数的导数+(),本层的输入值。神经网络的输出值、激活函数的导数值本层的输入值都可以在正向传播吋得到,因此可以晑效的计算出来。对所有训练样本的偏导数计算均值,可以得到总的偏导数对偏置项的偏导数为:如果上式分子中的后半部分对来说是常数,有:()⊥()如果类似的有这可以统写成:写成矩阵形式为偏置项的导数由两部分组成,分别是神经网络预测值与真实值之间的误差,激活函数的导数值,与权重矩阵的偏导数相比唯一的区别是少了。接下来计算对和的偏导数,由于是复合函数的内层,情况更为复杂。()是个的短阵,它的个行向量为(),(,(,(。偏置项()是维向量,个分量分别是(),(,(),(。首先计算损失函数对的元素的偏导数:而上式分子中的两部分都有,因此都与有关。为了表述简活,我们令:根据链式法则有:其巾((和和都是标量和()是两个()向量的内积,的每一个分量都是()的函数。接下来计算和这里的一是个向量,衣示的每个分量分别对求导。当时有:后面个分量相对于求导变量(都是常数。类似的当时有:()0)(()和时的结果以此类推。综合起来有:同理有:()十如果令合并得到()()[()-)。()。()写成矩阵形式为()最后计算偏置项的偏导数()类似的我们得到:合并后得到()写成矩阵形式为:(0)至此,我得到了这个简单网络对所有参数的偏导数,接下来我们将这种做法推广到更般的情况。从上面的结果可以看岀一个规律,输出层的权重矩阵和偏置向量梯度计算公式中共用了()-)()对」隐含层也有类似的结果完整的算法现在考虑一般的情况。假设有个训练样本(),其中为输入向量,为标签向量。训练的目标是最小化样木标签值与神经网络预测值之闩的误差,如果使用均方误差,则优化的目标为:其中为神经网络所有参数的集合,包括各层的权重和偏置。这个最优化问题是·个不带约束条件的问题,可以用梯度下降法求解。上面的误差函数定义在整个训练样本集上,梯度下降法每一次迭代利用了所有训练样本,称为批量棁度卜降法。如果样木数量很大,每次迭代都用所有样木进计算成木太高。为了解决这个问题,可以采用单样本梯度下降法,我们将上面的损失函数写成对单个样本的损失函数之和:定义对单个样本()的损失函数为)=-()如果采用单个样本进行迭代,梯度下降法第次迭代时参数的更新公式为:nV如果要用所有样本进行迭代,根据单个样本的损失函数梯度计算总损失梯度即可,即所有样本梯度的均值用梯度下降法求解需要初始化优化变量的值。一般初始化为一个随机数,如用正态分布(a)产生这些随机数,其中G是一个很小的正数到日前为止还有一个关键问题没有解决:日标函数是一个多层的复合函数,因为神经网络中每一层都有权重矩阵和偏置向量,且每一层的输出将会作为下一层的输入。因此,直接计算损失函数对所有权重和偏置的梚度很复杂,需要使用复合函数的求导公式进行递推计算几个重要的结论在进行推导之前,我们首先来看下面几种复合函数的求导。又如下线性映射函数:其中是维向量,是×的矩阵,是维向量。问题:假设有函数,如果把看成常数,看成的函数,如何根据函数对的梯度值Ⅴ计算函数对的梯度值Ⅴ?根据链式法则,由于只和有关,和其他的≠无关,因此有:c∑(对于的所有元素有:写成矩阵形式为:问题:如果将看成常数,将看成的函数,如何根据V计算Ⅴ?由于任意的和所有的都有关系,根据链式法则有写成矩阵形式为这是一个对称的结果,在计算函数映射时用矩阵乘以向量得到,在求梯度时用矩阵的转置乘以的梯度得到的梯度。问题:如果有向量到向量的映射:

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • 精密单点定位
    可以计算gps、bds、gal、glo等多频多系统spp+ppp,可以选择不同的电离层模型、对流层模型及解算星历。
    2020-12-03下载
    积分:1
  • 智能控制 刘金琨 全书代码及ppt
    智能控制一书的源代码及各章PPT,很好的资源文件!
    2020-12-08下载
    积分:1
  • 异步电机矢量控制变频调速的matlab仿真
    异步电机矢量控制变频调速的matlab仿真 双闭环控制 系统仿真
    2020-12-12下载
    积分:1
  • 2012年全国大学生数学建模竞赛A题一等奖论文
    2012年全国大学生数学建模竞赛A题一等奖论文。高教社杯全国大学生数学建模竞赛编号专用页赛区评侧编号(由赛区组委会评阅前进行编号):赛区评阅记录(可供赛区评阅时使用):全国统编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):基于数理分析的葡萄及葡萄酒评价体系摘要葡萄酒的质量评价是硏究葪萄酒的一个重要领域,目前葡萄酒的质量主要由评酒师感官评定。但感官评定存在人为因素,业界一自在尝试用葡萄的理化指标或者葡萄洏的理化指标定量评价葡萄洒的质量。本题要求我们根据葡萄以及葡萄酒的相关数据建模,并研究基」理化指标的葡萄酒评价体系的建立对于问题一,我们首先用配对样品t检验方法研究两组评酒员评价差异的显著性,将红葡萄酒与白葡萄酒进行分类处理,用SPSS软件对两组ⅳ酒员的评分的各个指标以及总评分进行了配对样本t检验。得到的部分结果显示:红葡萄酒外观色调、香气质量的评价存在显著性差异,其他单指标的评价不存在显著差异白葡萄、红葡萄以及整休的评价存在显著性差异接着我们建立了数掂可信度评价模型比较两组数据的可信性,将数据的可信度评价转化成对两组评酒员评分的稳定性评价。首先我们对单个评酒员评分与该组所有评酒员评分的均值的偏差进行了分析,偏差不稳定的点就成为噪声点,表明此次评分不稳定。然后我们用两组评酒员评分的偏差的方差衡量评酒员的稳定性。得到第2组的方差明显小于第1组的从而得出了第2组评价数据的可信度更高的结论。对于问题二,我们根据酿酒葡萄的理化指标和葡萄酒质量对葡萄进行了分级。方面,我们对酿酒葡萄的级理化指标的数据进行标准化,基于主成分分析法对其进行了因子分析,并且得到了27种葡萄理化指标的综合得分及其排序(见正文表5)。另一方面,我们又对附录给出的各单指标百分制评分的权重进行评价,并用信息熵法重新确定了权重,用新的权重计算出27种葡萄酒质量的综合得分并排序(见正文表6)。最后我们对两个排名次序用基于模糊数学评价方法将葡萄的等级划分为1-5级(见正文表8)。对于问一,首先我们将众多的葡萄理化指标用主成分分析法综合成6个主因子,并将葡萄等级也列为主因子之一。对葡萄的6个主因子,以及葡萄酒的10个指标用SPSS软件进行偏相关分析,得到酒黃酮与葡萄的等级正相关性较强等结论。之后对相关性较强的主因子和指标作多元线性回归。得到了葡萄酒10个单指标与主因了之间的多元回归方程,该回归方程定量表示两者之间的联系对于问题四,我们首先将葡萄酒的理化指标标准化处理,对葡萄酒的质量与荀萄的6个主因子和葡萄酒的10个单指标作偏相关分析,并求出多元线性回归方程。该方程就表示了葡萄和葡萄酒理化指标对葡萄酒质量的影响。之后,我们通过通径分析方法中的逐步回归分析得到葡萄与葡萄酒的理化指标只确定了葡萄酒质量信息的47%。从而得出了不能用葡萄和葡萄酒的理化指标评价葡萄酒的质量的结论。接着我们还采用通径分析屮的间接通径系数分析求出各自变量之间通过传递作用对应变量的影响,得到单宁与总酚传递性影响较强等结论最后,我们对模型的改进方向以及优缺点进行了讨论。关键词:配对样本t检验数据可信度评价主成分分析模糊数学评价综合评分信息熵偏相关分析多元线性回归1问题重述确定葡萄酒质量时一般是通过聘请一批有资质的评酒员进行品评。每个评酒员在对葡萄酒进行品尝后对其分类指标打分,然后求和得到其总分,从而确定葡萄酒的质量。酿酒葡萄的好坏与所酿葡萄酒的质量有直接的关系,葡萄酒和酿酒荀萄检测的理化指标会在一定程度上反映葡萄酒和葡萄的质量。附件中给岀∫某年份一些葡萄酒的评价结果,并分別给出了该年份这些葡萄酒的和酿酒葡萄的成分数据。我们需要建立数学模型并且讨论下列问题:1.分析附件1中两组评洒员的评价结果有无显著性差异,并确定哪一组的评价结果更可信。2.根据酿酒葡萄的理化指标和葡萄酒的质量对这些酿酒葡萄进行分级。3.分析酿酒葡萄与葡萄酒的理化指标之间的联系。4.分析酿酒葡萄和葡萄酒的理化指标对葡萄酒质量的影响,并论证能否用荀萄和葡萄酒的理化指标来评价葡萄酒的质量2模型的假设与符号的约定2.1模型的假设与说明(1)评酒员的打分是按照加分制(不采用扣分制);(2)假设20名评酒员的评价八度在同一区间(数据合理,不需要标准化)(3)每位评酒员的系统误差较小,在本问题屮可以忽略不计(4)假设附件中给出的葡萄和荀萄酒理化指标都准确可靠。2.2符号的约定与说明符号符号的意义原假设显著性概率第1组评酒员对第号品种葡萄酒评分的平均值,第2组评洒员对第号品种葡萄酒评分的平均值第一组评酒员对指标评分的偏差的方差,第二组评酒员对指标评分的偏差的方差,=…,第1组10位评酒员对号酒样品第项指标评分的平均分第组第号评酒员对号酒样品第项指标评分与平均值的偏第1组第号评酒员对其项指标评分与平均值的偏差的平均第2组第个评酒员的总体指标偏差的方差重新确立的第项指标的权重第2组10个评酒员的总体指标偏差的方差评酒员指标的平均评分,=葡萄的第项指标,葡萄的第项因子,=葡萄酒的第项理化指标3问题一的分析与求解3.1问题一的分析题冂要求我们根据两组评酒员对27种红葡萄洒和28种白葡萄泙的10个指标相应的打分情况进行分析,并确定两组评酒员对葡萄酒的评价结果是否有显著性差异,然后判断哪组评酒员的评价结果更可信初步分析可知:由于评酒员对颜色、气味等感官指标的衡量人度不同,因此两组评酒员评价结果是否具有显著性差异应该与评价指标的类型有关,不同的评价指标的显著性差异可能会不同。同时,由于红葡萄酒和白葡萄酒的外观、口味竽指标羔异性较大,处理时需要将白葡萄酒和红葡萄酒的评价结果的显著性差昦分开讨论。基于以上分析,我们可以分别两组品尝同一种类酒样品的评酒员的评价结果进行两两配对,分析配对的数据是否满烂配对样品t检验的前提条件,而且根据常识可知评酒员对同一种酒的同一指标的评价在实际中是符合t检验的条件的。接着我们就可以对数据进行多组配对样品的t检验,从而对两组评洒员评价结果的显著性差异进行检验。由于对同一酒样品的评价数据只有两组,我们只能通过评价结果的稳定性来判定结果的可靠性。而每组结果的可靠性乂最终决定于每个评酒员的稳定性,因此将问题转化为对评酒员稳定性的评价。3.2配对样品的t检验简介统计知识指出:配对样本是指对冋一样本进行两次测试所获得的两组数据,或对两个完全相同的样本在不同条件下进行测试所得的两组数据。在本问中我们可以把配对样品理解为有27组两个完全相同的酒样品在两组不同评酒员的检测下得到的两组数据,两组屮各个指标的数据为每组评酒员对该指标打分的平均值配对样品的t检验可检测配对双方的结果是否具有显著性差异,因此就可以检验出配对的双方(第一组与第二组)对葡萄酒的评价结果是否冇差异性型对样品t检验具有的前提条件为:(1)两样品必须配对(2)两样品来源的总体应该满足正态性分布。配对样品t检验基本原理是:求出每对的差值如果两种处理实际上没有差异,则差值的总体均数应当为0,从该总体中抽出的样本其均数也应当在0附近波动;反之,如果两种处理有差异,差值的总体均数就应当远离0,其样本均数也应当远离0。这样,通过检验该差值总体均数是否为0,就可以得知两种处理有无差异。该检验相应的假设为:=,两种处理没有差別,4≠两和处理存在差别3.3葡萄酒配对样品的t检验问题一中配对样品为27组两个完全相同的酒样品在两组不同评酒员的检测下得到的两组数据,其中两组中各个指标的数据为各组10个评酒员对该指标打分的平均值。该问题中的10个指标分别为:外观澄清度、外观色调、香气纯正度、香气浓度、香气质量、口感纯正度、口感浓度、口感持久性、口感质量、平衡/总休评价。根据t检验的原理,对荀萄酒配对样品进行t检验之前我们要对样品进行正态性检验。首先我们根据附件一并处理表格中的数据,得到配对样品的两组数据,绘制红葡萄酒配对样品表格部分数据如表1表1红葡萄酒配对样品数据表澄清度澄清度平衡/整平衡/整(1组均值)(2组均值)体评价(1组体评价(2组均值)均值)2.3.18.4红29.6红263.63.78.8红273.73.78.8白葡萄酒配对样品表格部分数据如表2:表2白葡萄酒配对样品数据表澄清度澄清度平衡/整平衡/整(1组均值)(2组均值)体评价(1组体评价(2组均值)均值)白17.78.4白22.93.19.1日26白273.778.8从上表中我们能看出,将白葡萄酒和红葡萄酒中的每个指标分别进行样品的配对后,每一个指标的配对结果有27对,每一对的双方分别是1组和2组的评酒员对该指标的评分的平均值。3.3.1样本总体的K-S正态性检验配对样品的t检验要求两对应样品的总体满足正态分布,则总体中的样品应该满足正态性或者近似正态性,样本的正态性检验如卜以红葡萄酒的澄清度的27组数据为例分析:利用SPSS软作绘制两样品的直方图和趋势图如图1所示:图1红葡萄酒澄清度两组数据自方图我们假设两组总体数据都服从态分布,利用SPSS软件进行KS忙态性检验的具体结果见附录2.3。两组数据的近似相伴概率值P分别为0.239和0.329,大于我们一般的显著水平0.05则接受原来假设,即两组红葡萄酒的澄清度数据符合近似正态分布同理可用SPSS软件对其他指标的正态性进行检验,得到结果符合实际猜想,都服从近似正态分布。3.3.2葡萄酒配对样品t检验步骤两种葡萄酒的处理过程类似,这里我们以对红葡萄酒谜价结果的差异的显著性分析为例。step1:我们以第一组对葡萄酒的评价结果总体服从正态分布〃σ,以第二组对葡萄酒的评价结果总体服从正态分布μσ。我们已分别从两总体中获得了抽样样本和,并分别进行两样品相互配对。(具体数据见附录2.1)Step2:;引进一个新的随机变量,对应的样本为将配对样本的t检验转化为单样本t检验Step3:建立零假设4=,构造t统计量;Step4:利用SPSS进行配对样品t检验分析,并对结果做出推断3.4显著性差异结果分析3.3.1红葡萄酒各指标差异显著性分析由SPSS软件对红葡萄酒各指标的配对样品讠枍验后,得到各指标的显著性概率分布表。(结果如表3所示)表3红葡萄酒酒各指标显著性概率P指标外观澄清度外观色调香气纯正度香气浓度‖香气质量P0.6140.0020.1510.1000.010指标口感纯正度口感浓度口感持久性口感质量平衡/整体P0.4370.1580.2510.0550.674由统计学知识,如果显著性概率P显著水平α,则不能拒绝零假设,即认为两总体样本的均值不存在显著差异。则根据表3可得:两组评酒员对红葡萄酒各项指标的评价中除外观色调、香气质量存在显著性差异以外,其他8项指标都无显著性差异。3.3.2白葡萄酒各指标差异显著性分析代入白葡萄酒的评价数据,重复以上步骤,得到白荀萄酒各指标的显著性概率分布表。(结果如表4所示)表4白葡萄酒各指标显著性概率P分布表指标外观澄清度外观色调香气纯正度香气浓度香气质量P0,2990.0890.930.2380.714指标口感纯正度口感浓度口感持久性口感质量平衡/整体0,0000.0050.8630.0000.00l分析表4可得:两组评酒员对白葡萄酒各项指标的评价中只有凵感纯正度」感浓度、凵感质量、平衡/整体评价存在显著性差异,其他6项指标都无显著性差异3.3.3葡萄酒总体差异显著性分析(1)红葡萄酒总体差异显著性分析该问题的附件中已经给出了10项指标的杈重,因此将10项指标利用加权合并成总体评价。对于红葡萄酒两组评价结果构造两组配对t检验。得到显著性概率P=0.030
    2020-12-04下载
    积分:1
  • 银行卡扫描识别卡号demo
    银行卡扫描识别银行卡卡号,平的凸出的,卡号和卡片颜色接近的都可以完美识别出来,还可以打开闪光灯照亮银行卡识别卡号的完整demo
    2020-11-28下载
    积分:1
  • 模糊控制的MATLAB实现具体过程(强势吐血推荐)
    模糊控制的MATLAB实现具体过程,通过举例通俗易懂的介绍模糊控制的实现过程
    2020-11-28下载
    积分:1
  • 最新版Pixhawk2.1原理图PCB及BOM清单
    从eagle 改为 AD绘制了其中的软件。自己一点一点 重新整理了 其中的 FMU、IMU和电源管理部分的原理及PCB。同时还有BOM元器件清单。可以用于方便生产,属于自己的飞控硬件!
    2020-12-09下载
    积分:1
  • 锁相环技术原理及FPGA实现
    高清扫描版PDF,含章节书签。本书既有锁相环原理又有工程实现,值得一看。尤其是关注数字锁相环的同学,可以了解一下。内容简介本书全面阐述了典型锁相环技术的工作原理及FPGA设计方法,结合 System View仿真实例,详细分析了锁相环技术的基本概念。按照从理论到实践,再从实践到理论的思路,以 Altera公司的FPGA器件为开发平台,采用 MATLAB及 Verilog HDL语言为开发工具,详细阐述了锁相环技术的FPGA实现原理及仿真测试过程,逐步深入地讲解锁相环技术在工程应用中的技术细节。本书思路清晰、语言流畅、分析透彻,在简明阐述设计原理的基础上,追求对工程实践的指导性,力求使读者在较短的时间内掌握锁相环技术的FPGA设计知识和技能。本书的配套网络光盘收录了完整的 System View、 MATLAB及 Verilog HDL实例工程代码,有利于技术人员参考学习,读者可登录华信教育资源网(www.hxedu.com.cn)免费注册后下载。本书适合从事数字通信和数字信号处理领域的设计工程师、科研人员,以及相关专业的研究生、高年级本科生使用未经许可,不得以任何方式复制或抄袭本书之部分或全部内容版权所有,侵权必究。图书在版编目(C|P)数据锁相环技术原理及FPGA实现/杜勇编著.一北京:电子工业出版社,2016.6ISBN978-7-121-28738-1I.①锁…ⅡI.①杜…Ⅲ①锁相环一研究Ⅳ.①TN9118中国版本图书馆CIP数据核字(2016)第095248号责任编辑:田宏峰印刷:北京京师印务有限公司装订:北京京师印务有限公司出版发行:电子工业出版社北京市海淀区万寿路173信箱邮编10006开本:787×10921/16印张:18.25字数:465千字版次:2016年6月第1版印次:2016年6月第1次印刷印数:3000册定价:6800元凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888质量投诉请发邮件至zs@Dphei.com.cn,盗版侵权举报请发邮件至dbq@phei.com.cn本书咨询联系方式:tianhf@phei.com.cn。前言为什么要写这本书1965年,英特尔联合创始人戈登·摩尔( Gordon moore)预测,计算机芯片的处理能力每两年就会翻一番。尽管已经过去50多年,摩尔定律仍然有效。半导体行业的发展速度,以及摩尔定律的精准性预测一度连摩尔本人都感到无比惊奇!2015年6月1日,英特尔宣布将以每股54美元的价格收购 Altera,以此计算,此交易总价将达到167亿美元,创造了英特尔并购历史上金额最大的纪录。一时间,传闻四起,业内专家和媒体开始讨论,FPGA计算机是否将成为可能?无论你是否愿意,只要从事的是与电子及信息处理相关的行业,FPGA的地位已显得越来越重要,它已成为电子行业的基本设计平台之一!无论多么高大上的技术,工程师要能够熟练应用到自己的工程项目中,都必须深入了解每一个技术实现细节。所谓“九层之台,起于垒土:合抱之木,生于毫末”。对于繁杂的技术实现方法,“各个击破”是有效学习应用的不二法门。自作者于4年前开始陆续出版数字通信技术的FPGA实现相关著作以来,通过邮件或博客的方式收到了广大读者的很多反馈意见。一些读者直接通过邮件告知书中的内容对工作中提供的直接或间接的帮助;一些读者提出了很多中肯的、有建设性的意见和建议;更多的读者通过邮件或博客交流书中的相关设计问题。归纳起来,不少读者的问题集中在数字锁相环技术的设计及实现方面。在前几本著作中,限于书中内容编排,对通信系统中最困难的锁相环技术阐述得还不够系统全面。目前市场上讲解锁相环技术的图书,主要集中在讲解锁相环的基本工作原理,或介绍一些专门的锁相环集成芯片,因此,将锁相环的工作原理与FPGA实现结合起来讨论,显得十分必要作者在写作本书的过程中,兼顾锁相环技术的理论,以及工程设计过程的完整性,重点突出FPGA设计方法、结构、实现细节,以及仿真测试方法。在讲解理论知识的时候,结合 System View、 MATLAB软件仿真实例,重点从工程应用的角度进行介绍,主要介绍工程设计时必须掌握和理解的知识点,便于读者尽快地找到理论与工程实现之间的结合点。在讲解实例的FPGA实现时,不仅对所有实例给出了完整的程序代码,并且从思路和结构上进行了详细的分析和说明。根据作者的理解,针对一些似是而非的概念,结合工程实例的仿真测试加以阐述,希望能对读者提供更多有用的参考。相信读者按照书中讲解的步骤完成一个个工程实例时,会逐步感觉到理论与工程实现之间完美结合的畅快。随着读者掌握的工程实现技能的提高,对锁相环理论知识的理解也必将越来越深刻,当重新阅读以前学过的原理时,头脑里就更容易构建起理论知识与工程实践之间的桥梁。前言Ⅲ本书的内容安排第1章首先介绍了FPGA的基本知识,以及 Altera公司的主要器件。本章在介绍了FPGA的发展历程、结构及工作原理等基本知识后,对本书所用到的设计语言及工具软件进行了简要介绍,主要包括 Verilog ldl语言、 Quartus、 MATLAB和 System View软件。所谓“工欲善其事,必先利其器”。之所以说是简要介绍,因为这些开发工具本身的功能十分强大,每一种工具都有种类繁多的专门著述进行阐述。随着工程师设计经验的积累,设计水平的提高,越能更全面地掌握设计工具的特点,从而更好地发挥设计工具的性能,以最小的代价设计出理想的产品。好比一把宝剑,只有握在高手的手中才能发挥出最大的威力。第2章介绍了FPGA数字信号处理基础知识。数字信号在FPGA等硬件系统中实现时,因受寄存器长度的限制,不可避免地会产生有效字长效应。设计工程师必须了解字长效应对数字系统可能带来的影响,并在实际设计中通过仿真来确定最终的量化位数、寄存器长度等内容。本章在详细分析了字长效应在FPGA设计中的影响后,对几种常用的运算模块P核进行介绍,讨论了各P核控制参数的设置方法。IP核在FPGA设计中的应用十分普遍,尤其是在数字滤波器等信号处理领域,采用设计工具提供的IP核进行设计,不仅可以提高设计效率,而且可以保证设计的性能第3章从锁相环的组成讲起,深入细致地探讨锁相环关注的信号特性,全面阐述VCO和乘法鉴相器的工作方式。随后借用最简单的反馈电路等基础知识,逐步揭开锁相环跟踪信号相位的神秘面纱。最后通过 System View软件工具,详细仿真分析了一阶锁相环的工作过程,全方位地了解锁相环的工作机理。第4章讨论了一阶锁相环的FPGA实现方法。根据作者的学习经验,这个阶段最期望的一定不是再去理解什么原理公式,学习什么方法思路。好比初次接触到羽毛球时,在网上看了一段中规中矩的教学视频,又刚好买回一支炫丽的球拍,走进球场,实在没有心情再听老师讲什么挥拍动作和击球技巧,只想痛痛快快地上球场打上几拍了。这一章,我们将完成一个完整的一阶锁相环电路的FPGA设计及仿真测试过程第5章又回到理论知识上来。学习的过程通常是学习(理论)一实践(工程)一学习理论)一实践(工程)的循环反复过程,每一次循环都会带来一次提高。前几章,我们主要从环路基本概念的角度,对环路进行了分析和仿真,从而初步建立起对锁相环路工作机理的认识。要深入硏究锁相环技术,必须建立环路的系统模型,而后采用数学方法对模型进行精确的分析。这一章我们从最基本的线性时不变系统知识开始,逐步建立起锁相环路的数学模型,为后续的分析打下坚实的基础。在建立模型的过程中,我们会发现,所有的知识,所有的公式其实都是在大学的一些基础课程中学习过的。第δ章深入讨论锁相环中最关键的组成电路——环路滤波器。我们从最简单的环路滤波器——RC低通滤波器开始,逐步理解环路滤波器对锁相环路性能的决定性作用,并引出本书所研究的重点——由有源积分滤波器组成的理想二阶环路。为了直观说明环路滤波器对锁相环路性能的影响,以及锁相环路参数的设计方法,我们再次采用 System View搭建了锁相环路模型,并通过翔实的仿真数据来说明一些看似深奥的理论知识。第7章开始讨论工程上应用最多的理想二阶环路的FPGA实现。前两章讲了一大堆枯燥的锁相环原理,本质是说理想二阶环具有相当优异的性能。我们在第4章已经对一阶锁Ⅳ锁相环技术原理及FPGA实现相环的FPGA实现进行了详细的讨论,有了前面章节的基础,就可以开始设计二阶环的FPGA电路了,并且要通过FPGA设计后的仿真来验证理论的正确性。二阶锁相环路相比一阶环路来讲,仅仅是多了一个环路滤波器。正是这个环路滤波器,尤其是理想环路滤波器,极大地改善了锁相环路的性能。当我们深刻理解了环路的工作原理,并动手设计出传说中的理想二阶锁相环电路时,会发现整个设计过程原来如此!第8章再次回过头来,静心硏究前面设计过程中还没有解决的一些问题。经过第7章的学习,我们己经可以完成一个完整的理想二阶锁相环路的设计。但在设计过程中,仍有一些参数的取值没有明确的依据,例如环路的固有振荡频率ωn该如何取值?环路的捕获带宽与捕获时间如何设计?当环路中存在噪声时(前面章节的设计都还没有涉及这个问题,但噪声又是电子系统中无法避免的),又该如何设计并计算环路的抗干扰性能呢?因此,在完成数字二阶环的FPGA初步设计之后,我们需要再回过头来更深入分析一下锁相环路性能,最终找到锁相环路参数的设计依据。第9章是一个完整的应用锁相环实现信号解调的工程应用实例。经过前面章节的讨论,我们对锁相环的理论知识、仿真、设计及FPGA实现都有了比较充分的认识。在无线通信技术中,在接收端,应用锁相环获取相干载波是最为广泛的应用之一。本章以锁相环解调PSK调制信号为例,应用前面章节讨论得出的结论,完整地给出锁相环的参数设计、仿真测试,以及FPGA实现过程关于FPGA开发环境的说明众所周知,目前两大商 Xilinx和 Altera的产品占据全球90%以上的FPGA市场。可以说,在一定程度上正是由于两家FPGA公司的相互竞争态势,有力地推动了FPGA技术的不断发展。虽然HDL的编译及综合环境可以采用第三方公司所开发的产品,如 Modelsim、Synplify等,但FPGA器件的物理实现必须采用各自公司开发的软件平台,无法通用。 Xilinx公司目前最新的开发工具为 Vivado Design Suite套件, Altera公司目前的主流开发平台是Quartus系列套件。与FPGA开发平台类似,HDL也存两种难以取舍的选择:VHDL和Verilog hdl。如何选择开发平台以及HDL语言呢?其实,对于有志于从事FPGA技术开发的技术人员,选择哪种平台及HDL语言并不重要,因为两种平台具有很多相似的地方,精通一种HDL语言后,再学习另一种HDL语言也不是一件困难的事。通常来讲,可以根据周围同事朋友、同学或公司的主要使用情况进行选择,这样在学习的过程中,可以很方便地找到能够给你指点迷津的专业人士,从而加快学习进度。本书采用的是Aera公司的FPGA器件作为开发平台,采用 QuartusⅡ2.1作为开发环境,采用 Verilog hDl语言作为实现手段。由于 Verilog hdl语言并不依赖于某家公司的FPGA产品,因此本书的 Verilog HDL程序文件可以很方便地移植到 Xilinx公司的FPGA产品上。如果程序中应用了P核资源,两家公司的P核通常是不能通用的,这就需要根据IP核的功能参数,在另外一个平台上重新生成IP核,或编写 Verilog HDl代码来实现。有人曾经说过,“技术只是一个工具,关键在于思想。”将这句话套用过来,对于本书来讲,具体的开发平台以及HDL语言只是实现数字通信技术的工具,关键在于设计的思路和方法。因此,读者完全不必要过于在意开发平台的差别,相信只要掌握本书所讲述的设前言计思路和方法,加上读者已经具备的FPGA开发经验,采用任何一种FPGA平台都可以很快地设计出满足用户需求的产品。如何使用本书木书在讨论锁相环的基木概念及工作原理时,主要用到了 System View5.0版本软件。关于 System View5.0软件的特点及使用方法在本书第1章进行了简要介绍。 System View软件使用起来非常简单,书中的实例也只用到了一些基本功能。如果读者以前没有使用过这款软件的话,建议先用几个小时了解一下其基本用法,这样就可以动手对本书提供的实例程序运行仿真。当然,由于 System View仅用来说明锁相环的工作原理,因此,读者也可以完全不去运行这些实例程序,只要理解书中提供的仿真结果即可。相信大部分工科院校的学生和电子通信的从业人员对 MATLAB软件都会有一个基本的了解。由于它的易用性及强大的功能,已经成为数学分析、信号仿真、数字处理必不可少的工具。由于 MATLAB具有大量专门针对数字信号处理的常用函数,如滤波器函数、傅里叶分析函数等,十分有利于对一些通信的概念及信号进行功能性仿真,因此,在具体讲解某个实例时,通常会采用 MATLAB作为仿真验证工具。虽然书中的 MATLAB程序相对比较简单,主要应用一些数字信号处理函数进行仿真验证,如果读者没有 MATLAB的知识基础,建议最好还是先简单学习一下 MATLAB的编程概念及基本语法。考虑到程序及函数的兼容性,书中所有 MATLAB程序的开发验证平台均为 MATLAB R2014a版软件。在讲解具体的FPGA工程应用实例时,通常会先采用 MATLAB对所需设计的工程进行仿真,一方面仿真算法过程及结果,另一方面生成FPGA仿真所需要的测试数据;然后在QuartusⅡ平台上编写 Verilog hDL程序对实例进行设计实现,为便于讲述,通常会先讨论程序的设计思路,或者先给出程序清单,再对程序代码进行分析说明;完成程序编写后,需要编写 Test Bench测试激励文件,根据所需产生输入信号的种类,可以直接在 TestBench文件中编写代码来产生输入信号,也可以通过读取外部文本文件的方式来产生输入信号;接下来就可以采用 Modelsim工具对 Verilog HDL程序进行仿真,查看 Modelsim仿真波形结果,并根据需要将仿真数据写入外部文本文件中,通常还会对仿真波形进行讨论,分析仿真结果是否满足要求;如果 Modelsim波形不便于精确分析测试结果,则需要再次编写MATLAB程序,对 Modelsim仿真结果数据进行分析处理,最终验证FPGA设计的正确性。本书主要以工程应用实例的方式讲解锁相环技术的原理及FPGA实现方法和步骤。书中所有实例均给出了完整的程序清单,限于篇幅,不同工程实例中的一些重复或相似的代码没有完全列出,随书配套的网络光盘上收录了本书所有实例的源程序及工程设计资源并按章节序号置于光盘根目录下。本书在编写工程实例时,程序文件均放置在“D: PllPrograms”的文件夹下,读者可以先在本地硬盘下建立“D: PllPrograms”文件夹,而后将配套网络光盘中的程序压缩包解压至该文件夹下,大部分程序均可直接运行。需要说明的是,在部分工程实例中,需要由 MATLAB产生FPGA测试所需的文本数据文件,或者由 MATLAB读取外部文件进行数据分析,同时FPGA仿真的 TestBench文件通常也需要从指定的路径下读取外部文件数据,或将仿真结果输出到指定的路径下。对于 Modelsim仿真来讲,作为测试输入的文本文件必须放置在当前FPGA工程目录下的“ simulationmodelsim”路径下。因此,读者在用 MATLAB生成测试数据后,需要将生成的文件复制到指定的路径Ⅵ|锁相环技术原理及FPGA实现下,以获取正确的仿真结果。致谢有人说,每个人都有他存在的使命,如果他的使命迷失了,也就失去了他存在的价值。不只是每个人,每件物品也都有其存在的使命。对于一本书来讲,其存在的使命就是被阅读,并给阅读者带来收获作者在写作本书的过程中查阅了大量的资料,在此对资料的作者及提供者表示衷心的感谢。由于写作本书的缘故,重新阅读一些经典的数字通信理论书籍时,再次深刻感受到前辈们严谨的治学态度和细致的写作作风。在此,感谢父母,多年来一直陪伴在我的身边,由于他们的默默支持,使得我能够在家里专心致志地写作;感谢我的妻子刘帝英女士,她不仅是一位尽心尽职的优秀母亲,也是一位严谨细致的科技工作者,同时也是本书的第一位读者,在工作之余对本书进行了详尽而细致的校对;四年前初次编写数字通信的FPGA设计与实现系列图书时,女儿才刚上小学,转眼她已经上五年级了,她最爱看书和画画,小脑袋里装着越来越多的她自己的想法。FPGA技术博大精深,本书虽尽量详细讨论了锁相环技术的原理及FPGA实现相关内容,仍感觉到难以详尽阐述所有技术细节。相信读者在实际工程应用中经过不断的实践、思考及总结,一定可以快速掌握其工程设计方法,提高应用FPGA进行工程设计的能力。由于作者水平有限,不足之处在所难免,敬请读者批评指正。欢迎大家就相关技术问题进行交流,或对本书提出改进意见及建议为便于读者交流,并及时发布相关资料及信息,本书特开设了交流博客,读者也可以通过邮件与作者进行技术交流。交流空间:http://duyongcn.blog163.com,作者邮箱:duyongcn@sina.cn。杜勇2016年4月前言目录Contents第1章设计环境及开发平台介绍1.1FPGA基础知识····+1.1.基本概念及发展历程……………·,··,,2241.1.2FPGA的结构和工作原理……1.1.3FPGA在数字信号处理中的应用“·““““““………121.2 Altera器件简介…1213 Verilog HDL语言简介………………………………………151.3.1HDL语言简介…………151.3.2 Verilog HDL语言特点161.3.3 Verilog HDL程序结构…卡““为“节“““”““牛……………………1714 QuartusⅡ开发套件…………1814. I Quartus I开发套件简介……………………………………………………1814.2 Quartus II软件的用户界面191.5 Modelsim仿真软件…221.6 MATLAB软件……………………………………………………·241.6.1 MATLAB软件介绍………2416.2 MATLAB工作界面………………………………………241.6.3 MATLAB的特点及优势……251.64 MATLAB与 Quartus的数据交互………2717 System View软件…2817.1 System View简介……281.7.2 System View工作界面……291.8小结——欲善其事先利其器…32第2章FPGA数字信号处理基础……332.1FPGA中数的表示…2.1.1莱布尼兹与二进制……………………………………………………………342.1.2定点数表示352.1.3浮点数表示…………·444,4·,,+3622FPGA中数的运算……02.2.1加/减法运算…………………………………4022.2乘法运算……4322.3除法运算22.4有效数据位的计算目录IX23有限字长效应4723.1字长效应的产生因素4723.2AD转换的字长效应4823.3系统运算中的字长效应………………………………………………4924FPGA中的常用处理模块24.1加法器模块…………………………………………………5124.2乘法器模块……2.4.3除法器模块……4.44444、562.4.4浮点运算模块572.5小结—四个过桥人………59第3章锁相环为什么能够跟踪相位613.1锁相环的组成…………623.1.1关注信号的相位分量……………………………………623.1.2VCO是一个积分器件3.1.3正弦鉴相器还是余弦鉴相器653.1.4环路滤波器的作用…………683.2从负反馈电路理解锁相环…693.2.1反馈电路的概念3.2.2负反馈电路的控制作用703.2.3锁相环与基本负反馈电路的区别…………………………………713.2.4分析锁相环的工作状态…33最简单的锁相环………………………1733.3.1一阶锁相环的 System View模型733.3.2确定VCO输出的同相支路434锁相环的基本性能参数………………………………………………773.4.1捕获及跟踪过程3.4.2环路的基本性能要求..,…………………………783.5分析一阶环的基本参数…3.5.1数学方法求解一阶环…………………………793.5.2图解法分析一阶环工作过程……813.53工程设计与理论分析的差异…3.54遗忘的参数一鉴相滤波器截止频率……………………3.6小结——千条路与磨豆腐87第4章一阶锁相环的FPGA实现4.1一阶环的数字化模型…………4.1.1工程实例需求……………………………………………………………904.1.2数字鉴相器914.1.3数控振荡器…4.1.4计算环路增益…………944.2数字鉴相滤波器设计………………………………X锁相环技术原理及FPGA实现
    2021-05-06下载
    积分:1
  • LAMP兄弟连李明老师Linux讲义笔记PPT下载
    [LAMP兄弟连李明老师讲Linux].课件01_第1讲.Linux应用与发展课件.pdf[LAMP兄弟连李明老师讲Linux].课件02_第2讲.Linux系统安装.pdf[LAMP兄弟连李明老师讲Linux].课件03_第3讲.Linux常用命令课件.pdf[LAMP兄弟连李明老师讲Linux].课件04_第4讲.文本编辑器Vim.pdf[LAMP兄弟连李明老师讲Linux].课件05_第5讲.Linux引导流程解析.pdf[LAMP兄弟连李明老师讲Linux].课件06_第6讲.Linux软件包管理课件.pdf[LAMP兄弟连李明老师讲Linux].课件07_第7
    2020-12-08下载
    积分:1
  • 数字图像处理实验六 图像的边缘检测与分割 实验报告 附代码
    1、 编程实现图像阈值分割(阈值可以指定3个,分析分割结果,要理解阈值确定的基本方法);2、 Matlab中边缘提取函数的应用。
    2021-05-06下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载