数据带宽和信噪比与信道容量的关系的总噪声干扰密度计算?

当咱们说“A与B通讯”时,咱们本质意思是在说A的物理行为使B产生一种须要的物理状态。信息的传输是一个物理过程,所以,必然受到没法控制的周边噪声以及信号处理自己缺陷的影响。若是接受者B与传输者A就所传输的内容是一致的,那么说此次通讯是成功的。网络

1. 数据压缩与数据传输的对偶性

在数据压缩和数据传输之间存在对偶性:less

  • 在数据压缩过程当中,去除数据中全部的冗余以使其获得最大程度的压缩
  • 在数据传输过程当中,以一种受控的方式加入冗余以抵抗信道传输中可能发生的错误

这么看起来,数据压缩和数据传输的目标是彼此对抗的,没法同时达到最优。通常地,通讯系统能够分为两部分,并且数据压缩与数据传输问题能够分开单独考虑和设计,通讯系统设计的目标就是让这两个目标总体达到最优。机器学习

0x2:什么是信道容量

假设A与B在经过某种物理渠道(或抽象物理结构)进行通讯,在n次使用信道下,咱们能够计算出可区分的信号的最大数目。该数与n成指数增加关系,这个指数就是所说的信道容量。信道容量(可区分的信号数目的对数值)被特征化为最大互信息,是信息论中一个关键问题函数

下图给出了一个物理发送信号系统的数学模拟。工具

  • 来自某个有限字母表的信源字符被编码器映射成一系列信道字符串,经过信道向译码器传输信道的输出序列。
  • 从几率与数理统计的角度来讲,输出序列虽然是随机的(符合某种随机变量),但它的分布由输入序列决定,每一个可能的输入序列将导出一个关于输出序列的几率分布,即p(y|x)。可是因为两个不一样的输入序列能够产生相同的输出序列,因而根据输出序列不必定能100%反向肯定输入序列具体是什么(贝叶斯几率公式),译码器的任务就是凭借这些输出序列来恢复出信源传输的信息。

信道容量理论研究的问题,并非讨论一个物理通道最大能传输的极限信息,而是在保证很是低偏差的状况下,能达到的理论传输率。有明确的理论能够支撑证实,咱们可以以很高的几率从输入序列中挑选出一个“不会混淆”的子集,使得对于每个特定的输出序列,只存在惟一的一个输入最有可能致使该输出。因而,在可忽略的偏差几率状况下,能够在输出端重构输入序列。学习

将信源映射到适合于输入信道的“足够分散的”输入序列集合,咱们可以以很是低的偏差几率传输一条消息,而且在信道的输出端重构出这个信源消息。可实现的最大的码率称做该信道的容量。优化

0x3:信道容量的几个例子

这个小节,咱们经过几个典型例子,来从不一样角度看一下信道容量的决定因素。编码

以下图所示,它的二元输入在输出端能精确地重现:spa

无噪声二元信道,C=1比特设计

在这种状况下,任何一个传输的比特都能被无偏差地接收到。所以,每次使用该信道,均可以毫无偏差地传输一个比特,信道容量就是1比特。

2. 无重叠输出的有噪声信道

这种信道对于两个输入中的每个,均有两个可能的输出,以下图所示:

无重叠输出的有噪声信道,C=1比特

这种信道虽然有噪声,可是依然能够根据输出精确肯定输入,只是须要更多的信息。

所以,该信道的容量仍然是1比特/传输,也能够计算出该信道的信息容量C=maxI(X;Y)=1比特,且在p(x)=(1/2,1/2)时达到。

3. 有噪声的打字机信道

在这种信道中,信道输入以几率1/2在输出端精确接收,或以1/2几率转变为下一个字母,以下图所示:

从上图能够看到,从输出端存在彼此交叠重合,没法从输出端精确地还原出输入端。为了解决这个问题,能够参考上一节的例子,将输出端以间隔的方式进行编码映射,以此获得独立同分布的无噪声输出端几率分布。

若输入端有26个字符,并以间隔的方式使用输入字符,以下图所示,

那么在每次传输过程当中,能够毫无偏差地传输其中的13个字符。所以,该信道的容量为log13比特/传输,也能够计算获得信道的容量:

考虑下图所示的二元对称信道(binary symmetric channel,BSC),这个二元信道的输入字符以几率p互补,这是一个有偏差信道的最简单典型模型。

在出现错误时,0做为1收到,或者正好相反。从接收到的比特中咱们并不能看出哪里发生了错误。从某种意义上说,全部接收到的比特都不可靠。可是信道噪声定理告诉咱们,咱们仍然可使用这样的通讯信道以非0的传输码率发送信息,而且偏差几率任意小。

这里给出互信息的一个界,

最后一个不等式成立是由于Y是一个二元随机变量,当输入分布是均匀分布时等号成立。所以,参数为p的二元对称信道的信息容量是:C = 1 - H(p)比特

从公式中能够看到,信道输出端的几率分布越均匀,则信道容量越小。

有一种信道相似于二元对称信道,会直接损失一些比特(丢失信息),这种信道称做二元檫除信道(binary erasure channel)。在二元檫除信道中,比例为a的比特被檫除掉,而且接受者知道哪些比特已经被檫除掉了,以下图所示:

二元檫除信道,两个输入,三个输出

计算二元檫除信道的容量以下:

从公式上咋一看,彷佛H(Y)的的最大值是log3,但不管选择什么输入分布p(x),都没法达到这个值。设E表明事件{Y=e},并使用表达式:

,其中,当π=1/2时,达到该信道容量 

这个信道容量的表达式有很强的直观意义:因为比例为α的比特在信道中损失,于是咱们至多可以恢复比例为1-α的比特输入信息。所以,信道容量最多为1-α。

从上面的几个例子讨论能够获得一个归纳性的结论,信道容量由两部分组成:

  • 信道结构:输入源和输出源之间的映射关系(输入输出几率分布)
  • 信道噪声:信噪比(本质也是输入输出之间的映射结构)

从信道容量这个视角来看机器学习模型的训练和拟合过程,咱们能够将一个训练集抽象理解为一个通讯信道,训练集信道的目的是经过抽样方法,获得一个目标函数的典型集,典型集中包含了目标函数的信源信息。对于训练集自身来讲,咱们的目的老是但愿训练集中包含的有用信息尽可能多,也就说,咱们的目标是”让训练集信道的信道容量尽可能大“,那如何让信道容量尽可能大呢?由前面的结论咱们能够获得几点启发:

  • 优化信道结构:训练样本中,不一样类别的样本分布要尽可能保持均匀,这样可让训练集中的信息熵最大。
  • 减少信道噪声:在信号输出侧减少不一样信号码之间的交叠,尽可能保证不一样的信号码之间是彼此独立的。简单来讲就是,不要让同一类样本出现label交叠的状况,在实际工程中这是一个常见问题误区,经常是由于打标系统的漏报致使。

离散信道是数字通讯中,最经常使用的抽象模型,咱们本文的讨论对象也是针对离散信道。

0x1:离散信道形式化定义

三部分构成的系统,以下图所示,

取自下标集的消息W,产生信号,这个信号以随机序列的方式被接受者收到。而后,接受者使用适当的译码规则猜想消息W。若是与所传输的消息W不一样,则代表接受者出错。下面咱们用数学符号严格定义这些概念,

用表示的离散信道由两个有限集X和Y以及一簇几率密度函数p(y|x)构成,其中对任意的x与y,有p(y|x)>=0,以及对任意的x,有,而X和Y分别看作信道的输入与输出。

值得注意的是,若是输出的几率分布仅依赖于它所对应的输入,而与先前通讯的输入或者输出条件独立,就称这个信道是无记忆的(memoryless),值得注意的是,马尔科夫过程也是一种无记忆过程。本文在讨论离散无记忆信道时,如无特别说明,通常都是指不带反馈的离散无记忆信道。

0x2:离散无记忆信道的信道容量

离散无记忆信道的“信息”信道容量(channel capacity)定义为:

,这里最大值取全部可能的输入分布p(x)

从随机过程熵率的角度来看,信道容量定义为信道的最高码率(比特/信道使用),在此码率下,信息可以以任意小的偏差几率被传输。香农第二定理代表,信道容量等于这个可操做的信道容量。 

0x3:离散无记忆信道(DMC)的n次扩展

离散无记忆信道(DMC)的n次扩展是指信道,其中,即进行n次通讯的通讯过程。

由于是无记忆的,离散无记忆信道的n次扩展的信道转移函数能够简化为,

信道的(M,n)码由如下部分构成:

0x4:离散信道容量的性质 

这个小节,咱们来讨论下信道容量的几个典型性质,

  • I(X;Y)是关于p(x)的一个连续函数
  • I(X;Y)是关于p(x)的凹函数。因为I(X;Y)是闭凸集上的凹函数,于是局部最大值也是全局最大值,因此最大值是有界的,也即信道容量是有界的

0x5:离散信道的偏差

0x6:离散信道的码率

进一步的,若是存在一个码序列,知足当时,最大偏差几率,则称码率R是可达的(achievable)。

信道的容量定义为:全部可达码率的上确界

因而,对于充分大的分组长度,小于信道容量的码率对应的偏差几率能够任意小。

所谓联合典型序列,简单地说,就是若是码字与接收到的信号是”联合典型“的话,就将信道输出译为第 i 个下标。

0x1:联合典型序列定义

服从分布p(x,y)的联合典型序列所构成的集合是指其经验熵与真实熵ε接近的n长序列构成的集合,即:

设(Xn,Yn)为服从的i.i.d.的n长序列,那么,

下图是关于联合典型集的示意图,

大约有2nH(X)个典型的X序列和大约2nH(Y)个典型的Y序列。可是,联合典型序列只有2nH(X,Y)个,因此并非全部典型的Xn与典型的Yn构成的序列对都是联合典型的。

随机选取的序列对是联合典型的几率大约为2-nI(X;Y)。所以,咱们可能须要考虑约2nI(X;Y)这样的序列对,才可能遇到一个联合典型对,这代表存在大约2nI(X;Y)个可区分的信号Xn

着眼于上述问题的另外一种方式是考虑固定输出序列Yn下的联合典型序列集,这里假定该输出序列来自真实的输入信号Xn。对于序列Yn,大约存在2nH(X|Y)个条件典型的输入信号。某个随机选取的(其余)输入信号Xn与Yn为联合典型的几率大约等于。

这再次代表,咱们可能选取出大约2nI(X;Y)个码字Xn(W),才能使其中的一个码字与产生输出Yn的对应码字混淆起来。

0x1:信道容量的直观理解

前面的章节中咱们已经讨论了离散无记忆信道的信息容量定义,即容量能够视为可以在该信道中可靠传输的比特数。咱们这小节将尝试给出一个直观思路,解释为何能经过信道来传输C比特的信息。

基本的思路是,对于大的分组长度,每一个信道能够看做是有噪声打字机信道(前面章节提到),由此每一个信道都有一个输入子集,使得在输出端接收到的序列基本互不相交。

对于输入的每一个n长序列,会有大约2nH(Y|X)个可能的Y序列与之对应,而且全部这些序列是等可能的(AEP定理),以下图所示,

咱们但愿确保没有两个X序列可以产生相同的Y输出序列,不然,将没法判断到底传输的是哪一个X序列。

全部可能的Y序列的总数约等于2nH(Y),对应于不一样的输入X序列,这个集合分割成大小为2nH(Y|X)的小集合。因此不相交集的总数小于等于。所以,咱们至多能够传输个可区分的n长序列,这就是所谓的信道容量。

0x2:香农证实信道编码定理的主要思路

信道编码定理最初的证实由香农在1948年的开创性论文中给出。该结果与直观感受正好相反,若是在信道传输过程当中存在偏差,那么如何纠正全部偏差?任何纠错过程自己也受到偏差的影响,这样将无穷无尽地进行下去。

香农证实,只要码率小于信道容量,信息就能够经过该信道可靠地传输,香农在证实中使用了不少精妙的思考,包括:

  • 容许任意小的非0偏差几率存在
  • 连续使用信道屡次,以保证可使用大数定律
  • 在随机选择的码簿上计算平均偏差几率,这样可使几率对称,并且能够用来证实至少存在一个好的编码

香农的概述性证实基于典型序列、随机码选择的思想(计算随机选择的码字的平均偏差几率)等等。

即寻找一个与收到的序列是联合典型的码字,若是找到惟一知足该性质的码字,咱们则认为这就是被发送的码字。

依据前面所讨论的联合典型性的性质,因为发送的码字与接收到序列是几率相关的,因此他们以很高的几率成为联合典型。而且,任意其余码字与接收到的序列是联合典型的几率是2-nl,所以,若是码字个数小于2nI,那么能够以很高的几率判定不会有其余的码字可以与被传输的码字相混淆,而且偏差几率很小。

虽然联合典型译码是次优的,可是它便于分析并且能够达到小于信道容量的任何码率。

0x3:信道编码定理形式化定义

对于离散无记忆信道,小于信道容量C的全部码率都是可达的。具体来讲,对任意码率R<C,存在一个(2nR,n)码序列,它的最大偏差几率为。反之,任何知足的(2nR,n)码一定有R<=C。

值得注意的是,虽然这个定理说明了对于大的分组长度,存在偏差几率任意小的好码,但它并无提供一种构造最佳码的方法。若是使用定理证实中的方法,根据适当的分布随机地生成一个码,那么对于充分大的分组长度,这样构造出来的编码多是最好的。

然而,因为该编码中缺少某个结构,译码将是很是困难的,所以,这个定理并不能提供一个实际的编码方案,而仅仅只是一个方法论,咱们后面会具体讨论具体的易于编和译的构造性编码,例如汉明(Hamming)码,它在每一个比特分组中纠正一个错误。

在容许彻底无偏差的状况下,咱们来从新论证一次信道编码定理。首先证实蕴含结论R<=C。

假定有一个零偏差几率的(2nR,n)码,也就是说,译码器输出的g(Yn)以几率1等于输入的下标W。那么,输入下标W彻底由输出序列决定,即。

为了得到更强的界,随意假定W服从上的均匀分布,因而,H(W) = nR。从而,咱们有以下不等式推导过程, 

  • (a)由数据处理不等式推出,因为造成马尔柯夫链
  • (b)由离散无记忆假设证实推出
  • (c)直接由信息容量的定义推出

所以,对任何零偏差的(2nR,n)码及全部的n,有:

0x5:费诺不等式与编码定理的逆定理

下面将零偏差码的证实过程推广到具备很是小偏差几率的编码,证实须要用到的新工具就是费诺不等式,它依据条件熵给出偏差几率的下界。

这里先给出费诺不等式的定义,下标W服从集合上的均匀分布,序列Yn与W是几率相关的。经过Yn来估计被发送的下标W。设为其估计,那么,W->Xn(W)->Yn->W‘行程马尔柯夫链,注意到偏差几率为:

咱们给出下面的引理, 

【费诺不等式】设离散无记忆信道的码簿为C,且输入消息W服从2nR上的均匀分布,则有,

【信道容量不变定理】设Yn为Xn通过容量C离散无记忆信道传输所获得的输出信号,则,

,对于任意的p(xn)

上式说明屡次使用信道并不增长每次传输的信心容量比特。

本质上讲,当R<C时,能够以任意低的偏差几率传输信息;而当R>C时,偏差几率将远离0。最佳的码率就是信道容量

信道编码定理使用分组码的方案,若是分组长度足够大的话,当码率小于信道容量时,能够用分组码以任意低的偏差几率传输信息。香农在其开创性论文中提出了获得这种码的一种概述性方法,此后人们一直在寻找这样的码。除了要达到低的偏差几率以外,还须要具有简单的特性,以保证能够大规模进行有效编码和译码。咱们本章介绍由汉明开发的一种最简单的方案,它能够说明大多数码所共有的一些基本思想。

0x1:从简单编码方案提及

编码的目的是经过增长冗余使得在一些信息损失或者损坏的状况下,扔可能由接受者恢复出原始的消息。

一种最显而易见的编码方案是重复信息,例如,为了发送一个1,咱们发送11111,为了发送一个0,咱们发送00000。这一方案使用5个字符来传输1比特,所以码率为1/5比特/字符。若是在二元对称信道中使用这样的码,最优的译码方案就是将接收到的每一个5比特分组译为其中占多数的比特。显然,当且仅当超过3/5的比特发生错误时,才会致使译码错误。经过使用更长的重复码,能够达到任意小的偏差几率。可是,随着分组长度的增长,码率也趋于0,所以,一个”最简单的“编码,不必定是一个很是实用的编码。

替代这种简单的重复比特方法,能够用某种巧妙的方式将比特联合起来,使得每个额外的比特均可以用来检验某个信息比特子集中是否发生错误。

一个简单的例子就是奇偶校验码,从n-1个信息比特的分组出发,选取第n个比特,使得整个分组的奇偶校验数为0。这样,若是在传输过程当中发生了奇数次错误,那么接受者可以注意到奇偶性的变化,并察觉到错误,这就是检错码(error-detecting code)最简单的例子。可是要注意的是,该编码既不能察觉到出现偶数次错误,也不能提供任何有关纠正这些错误的信息。

咱们能够推广奇偶校验的思想,容许存在多个奇偶校验位,也能够容许奇偶校验依赖于各类各样的信息比特子集。

接下来要讨论的汉明码就是奇偶校验码的一个例子,咱们会利用线性代数中的一些简单思想来描述它。

0x2:汉明码基本思想

为了说明汉明码的基本思想,考虑分组长度为7,单个码字长度为3的非0二元向量的集合,以它们为列向量构成一个矩阵:

考虑H的零空间(与H相乘获得000的向量)中长度为7的向量的集合。由线性空间理论,由于H的秩为3,故指望H的零空间的维数为4,这24个码字以下:

因为这个码字集是矩阵的零空间,因此从任意两个码字的和扔是一个码字的意义上看,这是一个线性空间。所以,码字集造成7维向量空间中的一个4维线性子空间。

观察这些码字,不难注意到除了全是0的码字外,任何码字中1的最小数目为3,该最小数称为码的最小重量(minimum weight)。能够看出,因为H的全部列互不相同,没有两列的和能够为000,所以码的最小重量至少为3。

基于任意两列的和必然为该矩阵中某一列的事实,咱们能够推出最小距离刚好为3。因为该码是线性的,任意两个码字的差还是一个码字,所以,任意两个码字之间至少在3个位置上有所不一样。

两个码字不一样的最小位置数称为该码的最小距离(minimum distance)。码的最小距离是用来表示码字之间相隔多远的一个度量,而且能够决定在信道的输出端码字之间差别的程度。对线性码来讲,最小距离等于最小重量,咱们的目的是设计出最小距离尽量大的码(信道编码定理)。

上述码的最小距离是3,所以,若是码字c仅占一个位置损坏,那么产生新字符串将与其余任何码字之间至少存在两个位置上是不用的,它与c更加接近。根据香农给出的联合典型码思想,依然能够根据似然译码获得码字c。可是,是否能够经过穷举搜索就发现哪个是距离最近的码字呢?

回答是确定的!能够利用矩阵H的结构译码!

对任意码字c均有Hc = 0,设ei是第 i 个位置为1其他位置为0的向量。若是码字的第 i 个位置损坏,则接收到的向量为 r=e+ei,若是将矩阵H与接收到的向量相乘,则获得,

这正好是H的第 i 列向量。所以,经过计算Hr,就能够发现接收向量的哪个位置损坏的,还原该位置上的值就获得一个码字。这样就有了一个简单的程序用来纠正接收序列中的一个错误。

咱们已经构造出分组长度为7的16个码字组成的码簿,它能纠正至多一个错误,这个码就是汉明码(Hamming code)

至此,咱们尚未给出明确的编码程序,咱们继续明肯定理汉明码,

  • 全部码字的前4位,构成了24种组合,将这4个比特看作是要发送消息的4个比特
  • 而另外3个比特由编码决定

通常地,让码字的前k个比特表明消息,然后面n-k个比特留做奇偶校验位,这样获得的编码称做系统码(systematic code)。该码每每由它的分组长度n,信息比特数k,以及最小距离d三个参数来决定。例如,上述编码称做(7,4,3)汉明码。

能够用简单的文氏图表示来解释汉明码的工做原理,为了发送信息序列1101,将序列中的4个信息比特分别放在图中4个相交的区域中,而后在剩余的区域中各放置一个校验位使得每一个圈中的校验结果为偶数(即每一个圆中有偶数个1),以下图,

如今不妨假设其中的一个比特被改变了,以下图中,有一个信息比特从1变成了0,

此时,有两个圆违背了原先的校验约束(图中加黑部分)。于是,当咱们知道了这两个约束违背,不难看出,致使产生约束违背的这个单一的比特错误只可能在两圆的相交部分发生。

相似地,经过分析其余情形,能够看出,这种码能够检测并纠正发生在接收码字中的任何单个比特错误 

很容易推广这一程度来构造更大的矩阵H。通常来讲,若是使用矩阵H中的 l 行,那么所得编码的分组长度为 n=2l-1,k=2l-l-1,以及最小距离为3。全部这些码都称做汉明码,并能够纠正一个错误。

汉明码是全部线性奇偶校验码中最简单的例子,经过汉明码说明了构造其余线性码的基本原则,即分组码(block code)---- 将一组信息比特映射成一个信道码字,且不依赖于过去的信息比特。

这章咱们来讨论一个问题,为了节省传输进行了数据压缩(R>H)和用户信道传输的信道编码(R<C)是彼此独立的仍是互相依赖的呢?

例如,考虑经过离散无记忆信道传输数字语音或音乐,设计一个码,将语言样本序列直接映射成信道的输入信号,或者先将语音压缩成最有效的格式,而后使用适当的信道编码从该信道将他发送出去。因为数据压缩不依赖于信道,而信道编码又不依赖于信源分布。

在这章中,咱们将证实:在有噪声信道中,数据压缩和信道编码这两个步骤是彼此独立的。这意味着,能够将通讯系统的设计转化成信源编码与通讯编码两个部分的组合。这种组合的方法与将两个问题一块儿考虑所能设计出的任何方法同样有效。

数据的一般表示是二元字母表,最现代的通讯系统是数字化通讯系统,而且为了能在一般的信道上传输,数据简化为二进制表示。这使复杂度大大减少,像ATM和因特网这样的网络系统容许语音、视频和数字数据共用相同的通讯信道。

如今对上述讨论问题作一个严格的定义,假设有一个信源V,从字母表V中生成字符。对于由V生成的随机过程,除了要求其取值于有限字母表且知足AEP以外,不作任何假设。这种过程的例子包括独立同分布的随机变量序列和平稳不可约马尔柯夫链的状态序列。任何平稳遍历信源均知足AEP。

如今想经过信道发送字符序列,而且保证接受者能够重构序列。为了达到这个目的,将序列映射成码字,经过信道发送这个码字。接受者观察接收到的序列Yn后,给出发送序列Vn的估计。若是,则接受者犯了错误,咱们定义偏差几率为:

其中 I 为示性函数,为译码函数,这个系统以下图所示,

0x1:联合信源信道编码定理

若是V1,V2,....,Vn为有限字母表上知足AEP和H(v)<C的随机过程,则存在一个信源信道编码使得偏差几率。反之,对任意平稳随机过程,若是H(v)>C,那么偏差几率远离0,从而不可能以任意低的偏差几率经过信道发送这个过程。

证实前半部分的重点就是此前描述的两步骤编码,因为已经假定随机过程知足AEP,因此必然存在一个元素个数<=2n(H(v)+ε)的典型集Aε(n),它拥有几率的绝大部分。仅对属于这个典型集的信源序列进行编码,其他全部序列将产生一个错误,它对偏差几率的贡献不会超过ε。

给Aε(n)中的全部序列加上下标,因为至多有2n(Hv+ε)个这样的序列,n(H+ε)比特足以给出它们的下标了,若是

咱们能以小于ε的偏差几率将须要的下标发送给接收者,接收者能够经过穷举典型集Aε(n),选择与被估计下标相应的序列,从而重构出Vn。这个序列将以很高的几率与传输序列相一致。具体来讲,对充分大的n,咱们有,

那么对于充分大的n,咱们可以以低的偏差几率重构出序列。

联合信源信道分离定理促使咱们将信源编码问题从信道编码问题中独立出来考虑,

  • 信源编码起试图找到信源的最有效表示
  • 信道编码器须要让编码消息,具有可以对抗信道中产生的噪声和错误的能力

分离定理代表,分离编码器与联合编码器可以达到相同的码率,咱们能够独立地涉及信源码和信道码,而后结合二者达到最优的效果,

  • 数据压缩定理来源于AEP,代表所有信源序列存在一个拥有了绝大部分几率的”小型“的子集(大约为2nH),根据这个子集使用H比特/字符并以很小的偏差几率来表示这个信源
  • 数据传输定理基于联合的AEP,它依据的事实是,对于大的分组长度,信道的输出序列很是有可能与输入码字是联合典型的,而任何其余码字是联合典型的几率约为2-nI。于是,咱们可使用大约2nI个码字而保持可忽略的偏差几率。

  现代通讯电子设备的抗干扰测试已经成为必须的测试项目,主要的干扰类型为噪声干扰。在通信信道测试和电子对抗领域里,噪声始终是最基本、最常用的干扰源之一。如何产生稳定和精确的噪声信号已经成为一个重要的研究领域。其中,带限信号时间相关性小,目前应用最广泛。现有的硬件发生器通常分为物理和数字噪声发生器两类,数字噪声发生器虽然没有物理噪声发生器的精度高,但是实现电路较为简单,易于应用。

  FPGA技术的发展,提高了硬件噪声发生器的速度和性能,相比基于软件实现的噪声发生器,展现出更大的优势。本文设计的高斯白噪声发生器采用FPGA的方式实现,输出的基带白噪声带宽可调,范围为1~66 MHz,步进3 MHz,幅度8位可调,同时可产生正弦波、三角波、锯齿波、方波等函数波,通过更改现场可编程器件的配置波形数据也可产生其他复杂函数波形。

  l 高斯白噪声发生器原理

  本文所述的高斯白噪声发生器如图1所示。


  首先,在现场可编程门阵列(Field Programmable Gate Array,FPGA)平台上以一个统一的时钟速度(以后称之为噪声发生速度,即f0)生成高速m序列流,对该序列进行有限冲击响应(Finite Impulse Response,FIR)数字滤波处理,得到带限白噪声数字序列,同时在FPGA中实现直接数字综合(Direct Digital Synthesizer,DDS)算法,产生正弦数字序列,并与噪声序列合成;其次,将以上得到的数字序列通过高速数/模转换器(Digital Analog Converter,DAC)转换为模拟噪声信号;再次,通过LC低通滤波器以及放大器转换为模拟带限白噪声和正弦信号,该信号即为基带白噪声信号。下面对涉及的基本算法进行分析和仿真。

  高斯白噪声发生方法中涉及伪随机码发生算法、数字滤波算法和正弦波发生算法。本文详细论述这几种算法,及其在FPGA上的实现方法,分析了各种算法在频域上的频谱特性。

  2 高斯白噪声发生器算法分析

  2.1 伪随机码发生算法

  伪随机码(Pseudo-random Sequence,PS)的性能指标直接影响产生白噪声的随机性,是系统设汁的关键。通常产生伪随机码的电路为一反馈移存器,分为线性和非线性两类。前者产生周期最长的二进制数字序列为最大长度线性反馈移存器序列,简称m序列。本文采用的就是m序列伪随机码。

  产生m序列的反馈移存器的递推方程可以写为:

它给出了移位输入an与移位前各级状态的关系。

它决定了移位寄存器的反馈连接和序列的结构。

  m序列的自相关函数可表示为:

式(3)为一个周期(m=2n-1)内的函数,其中Tn为伪随机噪声码元的宽度。整个时域的自相关函数的周期为m=2n-1。信号的自相关函数与构成一对傅里叶变换,因此m序列的自相关函数经过傅里叶变换,其功率谱密度为:

假定零频处的功率为1,那么功率下降为0.5处的频率为:

其典型的功率谱密度如图2所示。

  由图2可以看出,m序列的功率谱密度的包络是[(sin x)/x]2形的,它约在伪随机序列基本时钟频率的45%带宽内具有均匀功率谱密度,所以用滤波器滤除该频带内的信号就可以近似看作带限白噪声。m序列的均衡性、游程分布、自相关特性和功率谱与随机序列的基本性质很相似,所以m序列属于伪噪声的序列或伪随机序列。

  2.2 FIR数字滤波算法

  m序列的功率谱是固定的,要生成带宽可调的数字噪声序列需要对m序列进行低通数字滤波,本文采用的是FIR数字滤波器。

  由Lindeberg定理可知,设有独立随机变量序列

  该定理证明了由大量微小且独立的随机因素引起,并积累而成的变量,必是一个正态随机变量。FIR滤波器的单位冲激响应为h(n),0≤n≤N一1,输入函数为x(i),则输出函数y(i)可以写为:

  该算法需要N次相乘,N-1次累加。为了产生带宽小于5 MHz高质量的数字噪声序列,需要构建窄通带、通带阻带转换迅速的低通滤波器,对此仅仅增加单级FIR滤波的冲激相应长度n是不够的,对此本文采用了多级FIR数字滤波的方法。为了使得多路多级FIR滤波器能够在常用FPGA平台上实现,对FIR数字滤波模型进行算法优化,以节约所需逻辑单元资源是很有必要的。

  采用单位冲激相应h(n)为偶函数的FIR滤波器,并取阶数N为奇数,则式(6)可以化简为:

  采用该方法可以将FIR算法中乘的次数减半,总计算量减为(N+1)/2次相乘,N-2次累加,极大地节省了FPGA的逻辑单元资源。FIR的滤波过程实质上就是一个延迟后加权相加的过程,即滤波输出y(i)是输入x(i)以及它的前N一1个状态的加权叠加。

  随着数字集成电路和微电子技术的发展,直接数字频率合成器(Direct Digital Synthesizer,DDS)逐渐体现出其具有相对带宽宽,频率转换时间短,频率分辨率高,输出相位连续,可编程及全数字化结构等优点。

  DDS的基本工作原理是根据正弦函数的产生,从相位出发,用不同的相位给出不同的电压幅度,最后滤波平滑出所需要的频率。图3是DDS的原理方框图。


  参考频率源又称参考时钟源,它是一个稳定的晶体振荡器,用来同步DDS的各组成部分。相位累加器类似于一个计数器,它由多个级联的加法器和寄存器组成,在每一个参考时钟脉冲输入时,它的输出就增加一个步长的相位增量值,这样相位累加器把频率控制字K的数字变换成相位抽样来确定输出合成频率的大小。相位增量的大小随外指令频率控制字K的不同而不同,一旦给定了相位增量,输出频率也就确定了。当用这样的数据寻址时,正弦查表就把存储在相位累加器中的抽样数字值转换成近似正弦波幅度的数字量函数。以上的算法都可在FPGA内部实现。

MHz作为系统全局时钟;采用ADI公司的AD9731进行D/A转换,采样速度150 MSPS,10位;对AD9731输出的电流信号进行7阶LC低通滤波,然后进行放大,使得噪声信号的满幅输出都达到峰峰值3V。图4是频率为195 kHz最大输出幅度的四种函数波测试结果。

  从图4可以看出,采用DDS模块,得到了正弦波、三角波、锯齿波和方波的波形。图5为该噪声和函数波发生器产生的5 MHz噪声的实验结果,图6是输出带宽为5 MHz的高斯白噪声统计直方图。

  从图5和图6可以看出,基于FPGA的m序列发生算法,FIR滤波算法和DDS算法,通过数/模转换和低通放大后,本文设计的噪声发生器产生的5 MHz噪声的3 dB,带宽为4.8 MHz,带内平坦度为±1.5 dB,输出噪声的统计特性服从高斯分布,满足了设计需要。

  设计了一种基于FPGA高斯白噪声发生器,分析了该种噪声发生器所用的m序列发生算法,FIR数字滤波算法和DDS算法,可产生带宽为3~66 MHz,步进3 MHz,幅度8位可调的高斯白噪声;采用现场可编程门阵列(FPGA)实现噪声发生器的设计,在Altera公司的QuartusⅡ软件环境下,实现了基于FPGA的m序列产生模块、FIR数字滤波器模块、DDS模块和合成模块,通过数/模转换器和低通放大,得到了可用于雷达系统和通信信道测试的高斯白噪声信号。实验结果验证了本文设计的有效性。

我要回帖

更多关于 带宽和信噪比与信道容量的关系 的文章

 

随机推荐