还剩18页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
通信系统电路设计练习:M序列编码/解码器的设计作业的背景及训练目的为了给通信专业的同学们供应一个设计实践的机会,在最短的时间段内把握数字设计的动手力量,提高Verilog语言的使用力量所以特地设计了这样一个难度适中的数字通信系统设计练习本练习是依据工程实际问题提出的,但为了便于同学理解,对设计需求指标做了很多简化盼望同学们在设计范例和老师的指导下,一步一步地达到设计目标期望同学们能在两至三周内,参考设计范例,独立完成自己的设计任务,在这一过程中学习用Verilog编写RTL代码和仿真验证用测试代码技术,以及用综合器进行综合的技术、并娴熟把握较简单数字系统的多层次的仿真验证的方法,以逐步提高同学在设计工作中的自信念
1.1M序列介绍M序列是PNpseudonoise伪随机噪声中最广为人知的一种,主要用在扩频率通信中,先简要介绍一下扩频通信工程的原理,然后分析M序列的数学特性从而回答即为什么要选择M序列,然后再谈谈M序列在扩频应用中的局限性有了肯定的理论基础后,我们就可以开头争论怎样用详细的硬件实现应用M序列的扩频通信的放射端和接收端电路L2扩频通信的短暂的历史两位错不能检测,还可能会造成误纠尽管发生一位错的概率相对最高,但在一些要求较高的应用中汉明码不能满意要求用一个例子说明汉明码的详细原理及方法我们用aOala2a3a4a5a6表示七个码元,用SIS2S3表示由三个监督方程式计算得到的校正子并假设SIS2S3三位校正子码组与误码位置的对应关系如下表所示表A由表可知,当误码位置在a2a4a5或a6时,校正子Sl=l;否则Sl=0因此有Sl=a6+a5+a4+a21以下运算均为模二运算当误码位置在ala3a5或a6时,校正子S2=l;否贝US2=0因此有S2=a6+a5+a3+al2同理,有S3=a6+a4+a3+a03在编码时,a6a5a4a3为信息码元,取决于被传输的信息由123可知,监督码元a2al和aO应依据以下监督方程确定a6+a5+a4+a2=0a6+a5+a3+al=0a6+a4+a3+a0=0a2=a6+a5+a4al=a6+a5+a3a0=a6+a4+a3由此得到的16个许用码组列于表中表B接收端收到每个码组后,计算S1S2和S3如不全为0则可按表A确定误码位置,然后予以订正例如,接收码组为0000011可以算出SIS2s3=011可知在a3位置上有一误码由于74码的最小码距为Dmin=3它能订正一个误码或检测两个误码,如超过纠错力量,则反而会因“乱纠”而增加新的误码,在本例中若测出a2al或a0有错,信息位a6a5a4a3连续保持原值若通过计算SIS2s3的值,得到信息位有错,则将相应的出错位的值取反,在上例中由于a3上有误码,所以只要将a3的值取反即可由于汉明码只能订正单个错误,在实际的运用中,若消失多个错误的状况,可采纳BCH码,BCH码是循环码的一个重要子类,它具有纠多个随机错误的力量Add_noise模块此模块是一行为模块,模拟的是实际传输过程这个模块相对比较简洁将前一个coder模块多产生的M序列串unnoised_data读入之后加入带符号的2倍噪声noise=random%3产生最大值为±2的随机数,这样所得到的就是加入噪声的接收端信号noised_datanoised_data=unnoised_data+noiseoCorrect_Decoder模块此模块包括两个可综合模块decoder模块和correct模块,实现的最基本的功能是解调,以31为一个循环,将接收到的信号的符号位与存储器中的31位M序列依次相比,来推断是加上一个正数还是减去一个正数,每输完31个数将此时的累加值与我们所设定的阀值相比较,大于此阀值的话取1否则取0比较完31个数后和将累加的值重新设为初始值除了解调这个基本功能以外还有一些附加的功能犹如步头的捕获核对同步检测信号对错误数据进行纠错其过程如流程图所示在详细的实现过程中,累加器所赋的初始值都为50这样做的目的很简洁,为了便利计算和相应的推断由于输入的信号可能是正的也可能是负的;所做的运算也可能是加法和减法假如我们把基准值都赋为0那么在电路实现的过程中会遇到一些麻烦,举个很简洁的例子9位的累加结果寄存器假如为0二进制表示为2示为000000加上输入信号-2即带符号的3bllO本应产生-2的结果,但是在实际硬件实现的时候却不能得到我们所要的答案,它的运算方法为sum:9^0000000000indata:+3b110-2sum:9^0000001103可以从上边的运算结果中清晰的看出,直接在0的基础上进行加减运算会消失预料之外的结果这种方法只有通过相应的扩位运算才可以达到我们所要的结果也就是说对于输入的3位信号indata我们必需将其扩充成为相应的9位值才可以跟sum进行加减运算还是以上边数据为例,我们在indata2,bll0数据一进来就将其扩展成为带符号位9位的数据9bininuo两者都是表示带符号位的数据-2但是后者和sum进行加减时就不会消失上边的问题sum:9^000000000
(0)indata:+9blinilllO(-2)sum:9^111111110(-2)但是这种方法,远不如我们直接将累加器sum的初始值设定为50便利,由于这样一来我们就只在正数的范围内进行考虑同样的到达同步解码状态后,实际也不是将0定为推断基准,而是50通过下边的图像可以看出来(图
3.7)图
3.7上边的图形是在找到同步头之后进行同步解码的开头状况最上边两个信号是输入信号indata和将输入信号经过肯定值运算得到的结果psumi将带符号的3位信号转化为不带符号的2位数据再依据与第j位+M序列符号位与输入数据符号位的比较,选取相应的加法或者减法运算从上图中还可以看出,累加器sum的开头的基准值为50每进入一个数据就在50的基准上进行加减法运算最终当计数器j从0累加到31之后,就做一次相应的判决输出假如sum值大于50就输出信号为1,假如小于50就输出为0见下图(图
3.8)图
3.8图中在计数器j达到30的时候,对应的sum值为12(小于50)于是utdata进行推断输出,输出信号为0(低电平)这样就完成了计数累加推断的过程上述过程只是完成了最基本的功能,在coder模块中我们提到一个工程系统只有这个基本功能是不够的,由于我们面对的是非抱负的信道模型必需还要有一些附加的功能,相应的解调模块还需要有些附加功能
1、将挨次不同的31个M序列储存在31个寄存器中,捕获同步头时输入的数据同时与这31个M序列作用进行累加,通过与阀值比较大小,从而在挨次不同的31个M序列中找出与接收数据同步的M序列详细的过程读者可以通过试验好好体会在查找同步的过程中,假如接收到的31个信号和本地的31位M序列没有完全同步,那么由于M序列的性质使得累加的结果比较小,一般小于10即使在噪声的干扰下也不会超出20的水平;但是假如两者完全同步,累加的结果应在30左右所以我在这里所选取的阈值为28又由于为了便利计算我们将累加器的初始数值设为50当累加器的值大于或等于78时,我们则认为同步,当收到0时我们则认为用于捕获同步的头文件传完进入实际的数据传输阶段在本试验程序中用了31个加法器并行计算假如我们称一个数经过调制后为一个M序列组,通过移位累加推断找同步头有一个弊端就是会挪用到别的组的M序列位虽然最终是通过31次累加推断阀值,只要我们保证“大主流”不是挪用其它组的M序列就可以,但是不行否认的是在没有挪用其它组的M序列位而找到同步头的误码率最低例如在试验中当Decoder.en实际上是en_coder时sumO处取得最大值时的误码率最小若在非抱负状况下如en为en_coder1此时就不是sumO处取得最大值,此时误码率比抱负状况下大总之同步头捕获这个功能使我们的这个小通信系统强健Robust0上文提到asyn_flag置为高电平,从而告知接收系统已经无法正确的接收信号在给出的程序中在我们是把收发双方的时钟周期设为相等,读者可以试试将其改为不等,如在Top模块中做以下改动always#100coder_clk_31=^coder_clk_31;always#
100.001decoder_clk_31=decoder_clk_31;always#31*100coder_clk_l=^coder_clk_l;always#31*
100.001decoder_clk_l=^decoder_clk_l;留意此时要将timescaleIns/lns改为timescaleIns/lps改动后再仿真我们可以发觉从第229个数就开头出错,第257个数后由于不同步接收端无法正确的收到同步检测信号0000故asyn_flag置为高电平,从而告知接收系统已经无法正确的接收信号此时接收端asyn_flag信号发给发送端,从而发送端和接收端重新置位,并且通过软件掌握将上64个数据重发读者还可以依据Top模块所给的提示,试试接发双方的时钟相位不一样的状况为了进一步减小误码,我们在coder模块中采纳了汉明码用于纠错,相应的在解调端的correct模块每收到四个信息位a6a5a4a3和三个监督位a2ala0后依据S1=a6+a5+a4+a21S2=a6+a5+a3+al2S3=a6+a4+a3+a03这三个式子分别算出SIS2S3通过下表可知详细是那一位出错,若是监督位出错不予理睬,若是信息位出错,则推断详细是那一位出错再将其取反即可读者可以试着把纠错功能去掉,在抱负同步解调的状况下(即解调端捕获同步头时sumO处取得最大值)去掉纠错功能将会发觉传输一万个字节有七十多个错误而在同样的条件下有纠错功能的话传输了四万个字节才发觉一个错误由此可见在此系统中采用汉明能满意降低误码率的要求Top模块此模块是不行综合模块,用于产生激励信号,以及通过和发送端的输入信号相比推断解调信号是否正确程序中每次生成一个字节即八位二进制数然后通过移位的方式将数一个个输出作为待调制的数据,而将解调输出的数据,转化为一个字节的数与原输入数据进行比较所以有了这个比较过程就可以很便利的知道解调出来的数是否正确本试验后仿真均在QuartusII
4.1上完成,详细而言分为两步首先对coder模块进行后仿真,选用的器件为FLEXIOKEo仿真结束后,将生成的codervo和其它的XXX.v文件在ModelSimSE
5.7下进行后仿真,观看结果coder模块的后仿真正确,从而完成coder模块的后仿真Corrected_Decoder模块的后仿真选用器件为APEX20KE仿真完成后生成CorrectedDecoder.vo将其它的XXX.v文件和CorrectedDecoder.vo在ModelSimSE
5.7下进行后仿真,观看结果Corrected_Decoder.vo模块的后仿真正确,从而完成Corrected_Decoder.vo模块的后仿真
5.总结此FPGA试验中的M序列收发装置是一个特别简易的通信模型,真正的一个牢靠的通信系统不光有数字电路部分还有模拟电路部分,它的完成是要依靠成百上千人的辛勤工作和相互协作这里供应的只是一个通信模型的数字部分和实际的接收装置相比省去了很多部分,例如在实际发送装置中用M序列完成扩频后,还要对数字信号进一步调制如二进制幅度键控(2ASK)、二进制频移键控(2FSK)、二进制差分相移键控(2DPSK)来实现数字信号的载波传输,所以在空间信道里传输的是模拟信号而在解调端首先要有一个天线通过在空间中捕获特定频率的波来获得传输的模拟信号,而后需要把模拟信号转化为数字信号由于本试验系统中缺少这些部分,所以只能实行一些简化,如在有关扩频通信技术的观点是在1941年由好莱坞女演员HedyLamarr和钢琴家GeorgeAntheil提出的基于对鱼雷掌握的平安无线通信的思路,他们申请了美国专利#
2.
292.387不幸的是当时该技术并没有引起美国军方的重视,直到20世纪八十年月才引起关注,将它用于敌对环境中的无线通信系统扩频通信技术解决了短距离数据收发信机、如卫星定位系统GPS、3G移动通信系统、WLANEEE
802.11aIEEE
802.11bIEE
802.11g和蓝牙技术等应用的关键问题扩频技术也为提高无线电频谱的采用率无线电频谱是有限的因此也是一种昂贵的资源供应关心
1.3扩频技术理论证明在Shannon和Hartley信道容量定理中可以明显看出频谱扩展的作用C=B.Log21+S/N式中C是信道容量、单位为比特每秒bps它是在理论上可接受的误码率BER下所允许的最大数据速率;B是要求的信道带宽,单位是Hz;S/N是信噪比C表示通信信道所允许的信息量,也表示了所盼望得到的性能,带宽B则是付出的代价,由于频率是一种有限的资源,S/N表示四周的环境或者物理特性障碍物、干扰放射台、冲突等用于恶劣环境噪声和干扰导本试验中的Decoder模块的en信号实际就是coder模块中的en_codero虽然这里供应的只是一个简化的M序列收发装置,但通过此试验还是能够关心我们建立很多通信系统方面的概念,这也是我们设计这个试验的目的,究竟任何一个简单的系统都是由许很多多的简洁的思想构建设的盼望做完此试验,读者能明白
1、M序列扩频通信的原理
2、捕获同步头的这个功能使我们的系统更强健Robusto
3、通过引入纠错码,大大削减了误码率
4、通信系统中每传输肯定的数据后,都要传送一些收发双方商定好的信息,来检测是否维持在同步状态
5、在整个设计系统中,测试模块的作用也很重要最终盼望同学们在完成此试验后能有所收获
6.[参考文献]JohnG.Proakis和MasoudSalehi著,叶芝慧和赵新胜等译,通信系统工程其次版,电子工业出版社2002曹志刚和钱亚生,现代通信原理清华高校出版社2002(注:第一部分很大一部分内容来自网上,作者不详)致极低的信噪比)时,从上式可以看出为了提高信息的传输速率C可以从两种途径实现,既加大带宽W或提高信噪比S/N换句话说,当信号的传输速率C肯定时,信号带宽W和信噪比S/N是可以互换的,即增加信号带宽可以降低对信噪比的要求,当带宽增加到肯定程度,允许信噪比进一步降低,有用信号功率接近噪声功率甚至沉没在噪声之下也是可能的扩频通信就是用宽带传输技术来换取信噪比上的好处,这就是扩频通信的基本思想和理论依据
1.4扩频技术的优点
1、抗干扰性强,误码率低如上所述,扩频通信系统由于在发送端扩展信号频谱,在接收端解扩还原信息,产生了扩频增益,从而大大地提高了抗干扰容限依据扩频增益不同,甚至在负的信噪比条件下,也可以将信号从噪声的沉没中提取出来,在目前商用的通信系统中,扩频通信是唯一能够工作于负信噪比条件下的通信方式
2、易于同频使用,提高了无线频谱采用率无线频谱特别珍贵,虽然从长波到微波都已得到开发采用,仍旧满意不了社会的需求为此,世界各地都设计了频谱管理机构,用户只能使用申请获得的频率,依靠频道划分来防止信道之间发生干扰由于扩频通信采纳了相关接收这一高技术,信号发送功率极低(<1W一般为1~100mW)且可工作在信道噪声和热噪声背景中,易于在同一地区重复使用同一频率,也可以与现今各种窄带通信共享同一频率资源;.
3、抗多径干扰在无线通信中,抗多径干扰问题始终是难以解决的问题,采用扩频编码之间的相关特性;在接收端可以用相关技术从多径信号中提取分别出最强的有用信号,也可把多个路径来的同一码序列的波形相加使之得到加强,从而达到有效的抗多径干扰
4、扩频通信是数字通信,特殊适合数字话音和数据同时传输,扩频通信自身具有加密功能,保密性强,便于开展各种通信业务扩频通信简洁采纳码分多址、语音压缩等多项新技术,更加适用于计算机网络以及数字化的话音、图像信息传输;.
5、扩频通信绝大部分是数字电路设施高度集成,安装简便,易于维护,也特别小巧牢靠,便于安装,便于扩展,平均无故障率时间也很长;
6、此外,扩频设施一般采纳积木式结构,组网方式敏捷,便利统一规划,分期实施利于扩容,有效地爱护前期投资
1.5频谱的扩展的实现和直接序列扩频频谱的扩展是用数字化方式实现的在一个二进制码位的时段内用一组新的多位长的码型予以置换,新码型的码速率远远高出原码的码速率,由傅立叶分析可知新码型的带宽远远高出原码的带宽,从而将信号的带宽进行了扩展这些新的码型也叫伪随机PN码,码位越长系统性能越高通常,商用扩频系统PN码码长应不低于12位,一般取32位,军用系统可达千位目前常见的码型有以下三种1M序列,即最长线性伪随机系列;2GOLD序列;3WALSH函数正交码.M序列的产生调制和解调原理M序列是对最长线性反馈移位寄存器序列的简称,它是一种由带线性反馈的移位寄存器所产生的序列,并且具有最长周期带线性反馈的移位寄存器设定各级寄存器的初始状态后,在时钟触发下,每次移位后各级寄存器状态都会发生变化观看其中一级寄存器(通常为末级)的输出,随着移位时钟节拍的推移会产生一个序列,称为移位寄存器序列可以发觉序列是一个周期序列,其周期不但与移位寄存器的级数有关,而且与线性反馈规律有关在相同级数状况下,采纳不同的线性反馈规律所得到的周期长度不同止匕外,周期还与移位寄存器的初始状态有关一般状况下,用于产生M序列的n级线性反馈移位寄存器的结构图如下㊉表示模2相加图中的4作为输出信号所得到的就是我们需要的M序列了,可以看出一个完整的n级M序列是由一个相应的线性反馈规律表达式来得到的将左边的%移到等号右边可以写成为为了便于计算我们通常将上式与一个多项式项(即本原多项式)对应起来以简便得到M序列基于不同级的线性反馈规律表达式,我们可以得到不同长度的M序列的本原多项式如下(表1)从表1中我们可以查到5级M序列所对应的本原多项式为x5+x2+l从而得到其线性反馈规律表达式为a4=alaO更进一步得到下面的M序列产生的结构图可以看出我们在这里只需要设定好a4到aO初始值(不能为00000)就能够得到一组5级31位的M序列了在此我们将其初始值设为10000(a4a3a2ala0)(由右至左依次按挨次生成),发送端需要调制的信号,与这31位数进行异或运算我们实际在发送信号的时候采纳相位调制(PSK)方法,即将1相应的调制为10调制为-1;则可以得到传输中的M序列以需要发送的信号是1为例,详细调制解调步骤如下(假设没有噪声状况下)
1、1分别与31位M序列
2、将第一步得到的M序列中的1相应的调制为01
(1)0调制为11(-1)后输出01011101111101011111111111010101111101111111011101110101010111而输出的挨次依次为11010101……1101Olo同理可知0经过调制得到的序列会与1经过调制得到的序列相反
3、接收端知道发送端的M序列为a30a29……a2ala0将收到的第一个数的符号位与a0相比较假如是相同则在基值为了便利争论基值可取0上加上一个正数为接收端接收到的数的肯定值不同的话则减去一个正数,同理其次个数的符号位与al比较若相同则在上一个累加值上相加一个正数,不同的话则减去一个正数,依此类推,当第31个数与a30比较完后,若发送端的发送数据1的话此时的累加值为31若发送端的发送数据0的话此时的累加值为-31通过推断在第31个数时的累加值我们可以知道发送是1还是0当第31个数与a30比较过后,第32个数与aO比较,就这样依此规律,每隔31个数就推断输出是1还是0但实际的通信信道中有各种各样的噪声,通常有加性噪声信道,线性滤波器信道,以及线性时变滤波器信道,上述的三个信道数学模型,足以概括实际应用中遇到的大多数物理信到特性在本文中主要考虑的是加性噪声信道并且通过试验程序证明,上文中所提到的M序列有抗干扰性强,误码率低这一特性通信系统最简洁的数学模型就是加性噪声信道,在此模型中,发送信号st受到加性随机噪声过程nt的损伤送物理意义上看,加性噪声过程可能来自通信系统接收端的电子元件和放大器等,也可能来自无线信号传送过程遇到的干扰假如噪声主要是由接收机的电子元件和放大器引起的,则它具有热噪声的性质,这类热噪声都具有高斯噪声过程的统计特性,因而信道的数学模型通常称为加性高斯噪声信道,接收端接收信号的表达式为rt=st+t不考虑信道衰减在下面将要介绍的试验中加入随机噪声信号,此信号的最小值为-2最大值为2但通过仿真我们可以发觉解调后误码率很小从频域上解释M序列有抗干扰性强,误码率低这一特性,是由于在发送端PN码序列用来将携带信息的基带信号扩展至宽带信号以便在信道上传输在接收端,接收的信号与PN码一个同步的副本相乘,得到解扩的窄带信号,与此同时各种干扰信号将扩展至宽带最终的影响是干扰信号功率降低了W/R正好等于扩频系统的处理增益PN码序列的的副本只对特定的接收机已知,不知道该PN码序列的接收机不能解调信号因此,PN码序列的使用供应了一般调制无法实现的隐秘平安性这种平安性以及抗干扰性能增益是以信道带宽和通信系统简单程度的增加来换取的.详细的FPGA实现对于不同级别的M序列来说,抗噪声力量是不一样的,级数越高所能承受的外界干扰幅度越大在这次试验设计中我们选取的是从2倍噪声中将5级31位M序列信号恢复出来采用Verilog分另ll编写coder、addnoise、decoder、correct、Correct_Decodertop这六个模块,其中coder、decoder、correct、是可综合模块,其中decoder、correct这两个模块组成为Correct_Decoderadd_noise是不行综合的,用以模拟信道的加性噪声,top是测试文档详细各个模块的作用如下coder模块此模块的基本功能依据上文所说的方法将待调信号与M序列的每一位进行异或,到达扩频的目的,而后为了实际需要将扩频结果的1调制为0110调制为11-1但是一个工程系统只有这个基本功能是不够的,由于我们面对的是非抱负的信道模型必需还要有一些附加的功能
1、在发送数据之M序列的产生原理及详细的调制和解调原理时,知道通过扩频可以在有噪信道中大大降低误码率,但是仍有误码,详细是传1万个2位的十六进制数就有50多个错误的数据能不能进一步削减误码率呢?为了削减误码率,通过分析数据,我们可以发觉误码分布的比较散,所以选择汉明码就能达到纠错的目的在每发送四位信息位a6a5a4a3后我们发送三位监督位a2ala0从而达到纠错的目的汉明码是一种能纠一位错的线性分组码,由于它的编译码简洁,在数据通信和计算机存储系统中广泛应用,如在蓝牙技术和硬盘阵列中它的最小码距为3可以订正一位错误,但对于SIS2S3误码位置SIS2S3误码位置001aO101a4010al110a5100a2111a6011a3000无错信息位监督位a6a5a4a3a2ala000000000001Oil00101010011110010011001011010110Oil0111000信息位监督位a6a5a4a3a2ala01000111100110010100101011001110000111010101110100mi111SIS2S3误码位置SIS2S3误码位置001a0101a4010al110a5100a2111a6011a3000无错n代数式3d+1+14X4+X+15+16X6+X+1。