版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、函授毕业设计 基于DSP的低码率语音实时保密通信系统的设计与实现 目录第1章 绪论11.1 课题背景11.2 保密通信概述21.2.1 语音加密的研究现状21.2.2 保密通信的背景知识41.2.3 数据加密技术41.3 语音编码的发展概况71.4 数字语音处理方法81.5 课题研究主要开展的工作81.5.1 低码率语音编码技术的研究和实现81.5.2 加密算法的研究和实现91.5.3 设计实现了基于DSP的低码率语音实时保密通信系统91.5.4 系统性能评测91.6 本文选题和论文结构9第2章 基于DSP的低码率语音保密通信系统的总体设计102.1 数字信号处理器概述102.2 数据流程11
2、2.3 系统实现的硬件平台设计122.4 系统软件设计132.4.1系统功能模块描述152.4.2初始化模块162.4.3 串行中断服务模块16第3章 MELP算法及其DSP实现183.1 MELP声码器算法183.1.1 分析器183.1.2 合成器193.2 MELP编解码模块的DSP实现203.2.1 MELP算法203.2.2 算法实现过程中的优化22第4章 低码率语音保密通信系统功能模块的设计与实现244.1 实时语音信号采集与回放244.2 语音加密模块的实现244.3 实时传输的实现254.3.1 CPU初始化程序254.3.2 数据发送254.3.3 数据接收264.4 密钥协
3、商的实现26小结28致谢29参考文献30摘 要语音保密通信是防止语音内容被窃听的通信方式,在军事和商业上具有极大的实用价值。采用数据加密技术是语音保密通信的重要手段。信道带宽是非常有限和宝贵的资源,而低码率语音编码技术是节省带宽的重要方法之一。DSP(数字信号处理器)是适用于数字信号处理的专用微处理器,能够快速、有效地实现语音压缩编码和语音数据加密。本系统就是以低码率语音编码技术和数据加密技术为背景,以数字信号处理技术为实现手段,以DSP为处理器,就如何在节省信道带宽占用的同时又能保证语音信息的安全性,提出了基于TMS320F2812DSP的低码率语音保密通信系统方案。为了在节省带宽资源的同时
4、保证良好的话音质量,系统采用2.4kbps的MELP低码率语音编码算法,并针对TMS320F2812的硬件特性对MELP算法的实现进行汇编优化。为了保证语音通信的安全,系统采用实现速度快安全性高的AES算法来加密压缩后的语音信号。密钥协商采用的是Differ-Hellman协议。由于采用DSP实现和软件模块化设计,系统具有良好的扩展性,能够更换语音压缩编码算法和加密算法,所以本系统又可以作为低速率语音实时保密通信的实验平台。最后系统进行了测试,效果满意,基本达到了设计要求。关键字: 保密通信;语音加密;DSP;MELP;AES 基于DSP的低码率语音实时保密通信系统的设计与实现第1章 绪论1.
5、1 课题背景对于军队的语音通信以及涉及商业秘密的语音通信,保密性都是必须首先加以考虑的问题。为提高系统安全性,必须针对语音通信的特点研究保密语音通信的方法。此外,综合考虑传输介质状况、话音质量和安全性等方面,最好能把压缩编码算法和保密所采用的手段结合起来,这样不仅能降低通信延时,而且能够提高语音通信的安全性。近年来,随着宽带通信技术的飞速发展,语音通信的带宽占用在有线通信领域似乎已不再成问题了,但在无线通信领域,带宽始终是一种宝贵的资源,尤其在军用和保密通信中,语音编码上取得的成果可以迅速带来抗干扰、保密性能和系统容量的提高。采用低码率的语音编码技术是实现信道扩容、降低语音通信和存储成本的主要
6、和首选方法。低码率编码算法也是二十一世纪通信、计算机网络、视频电话会议和远程教学系统等诸多应用领域的关键性核心技术。语音编码和加密是语音保密通信系统不可缺少的两个模块。在计算机网络中实现语音保密通信时,这两个部分一般都是通过软件实现的。如果用专用芯片实现,不仅能节省计算机CPU的大量时间,而且更有利于保密,但缺乏可扩展性。使用通用DSP来实现这两个模块可以弥补以上两种方法的不足。但现有通用DSP实现的方案中,系统采用的编码速率高,占用信道带宽多。针对这些问题,本课题以低码率语音压缩技术和数据加密技术为背景,以数字信号处理技术为实现手段,以DSP为处理器,就如何在降低信道带宽占用的同时保证语音数
7、据的安全性提出了一种解决方案,设计并实现了基于DSP的低码率语音实时保密通信系统。本系统在提供高保密性的同时降低了信道带宽的占用,由于采用DSP实现和软件模块化设计方法,系统具有良好的扩展性,能够更换语音压缩编码算法和加密算法,所以本系统又可以作为低速率语音实时保密通信的实验平台。1.2 保密通信概述1.2.1 语音加密的研究现状语音是人们交流信息的一种最基本工具,因此,研究语音加密,保障语音通信的安全非常重要。其实,对语音加密的研究可以追溯到1881年对电话保密装置的研究。与早期的研究不同,现在的语音保密通信己经发展到对语音内容的保密,即对明文进行加密处理,主要包括模拟加密和数字加密两种。频
8、阙置乱是语音最早采用的模拟语音加密技术,至今仍在广泛运用。在模拟语音加密中,从对语音信号处理方式的不同来看,模拟语音加密可以分成时间域加密、频率域加密、变换域加密和多维域加密四类技术。早期的研究主要集中在频率域和时问域对语音信号进行加密处理。在时间域中加密的方法以置乱语音信号的时间段为主,但由于在时间域中可用于置乱的系数非常少,因此,人们选择了在频率域加密语音,最后再把数据返回到时间域的方法,其加密手段有倒频和频带分割置乱等,主要原因就在于在频率域可用来置乱的系数增多。但用这两种方法加密后的语音都具有很高的剩余可懂度,安全性较差,而且延时很大,需要同步。为此,在80年代后期,有研究者提出了对语
9、音信号在时频二维加密的方法。后来又有研究者提出了在变换域处理语音数据,最后再把数据返回到时间域的方法,其优点是通过消除语音的冗余度降低语音的剩余可懂度。语音加密算法都是通过置乱语音信号FFT系数的方法来实现的,并认为置乱FFT系数的方法具有许多优点。使用离散余弦变换方祛构造了语音加密算法,比较了四种常用的离散正交变换方法:离散傅立叶变换、离散沃尔什一哈达玛变换、离散余弦变换和离散编球体变换,认为离散余弦变换方法最好的原因是用离散余弦变换方法加密后的语音具有很低的剩余可懂度,解密后的语音质量好,算法速度快等。不可否认,模拟加密具有简单实用、音质较高、占用带宽小、能在许多信道上使用的优点。但模拟语
10、音加密后的剩余可懂度高,安全性较差,主要原因在于模拟语音加密方法没有改变语音信号的冗余性。例如,基于时间域变换的不安全性,基于频带分割和DFT变换算法的不安全性,提出了一种使用频谱矢量码本的方法来攻击变换域模拟语音加密的方法。和模拟加密相比,数字加密使用了编码压缩技术,加密后的信号最后仍然以数字信号传输,因此有很高的安全性。考虑到语音数据的特点,为了降低运算强度,加快加密速度,对语音的加密算法可以分为全加密和部分加密两种。虽然用DES、IDEA等传统密码学的方法实现语音的完全加密可以获得很高的安全性,但是语音信息作为多媒体信息的一种,使用传统密码学中对称和非对称密码的方法对语音数据进行完全加密
11、并不是十分合适。考虑到每个语音数据包含的信息量比文本数据少的特殊性,可以采用一些计算量小,低延时的加密算法。为此,有些学者提出了部分加密的方法。部分加密又称之为选择加密,即只选择编码压缩后的语音数据中的一部分来进行加密。这种加密方法可行的原因在于可以依据人对语音数据的感知程度来划分语音数据,加密对人的感知影响很大的部分数据而对剩余部分不作处理。但是,部分加密在加密算法上依然使用传统的DES、IDEA等方法,只是通过减少待加密的数据来降低运算强度,也就是说加密速度是通过牺牲加密强度来换取的。为此,许多研究者开始尝试采用混沌的方法来构造快速的加密算法。如今混沌信号应用于语音保密通信系统的理论研究日
12、趋成熟,但迟迟得不到很有效的应用,主要原因是混沌电路存在几个尚未解决的难题。如产生混沌信号的电路所需电源电压过高,无法应用于实际系统;混沌信号的频带较宽,在实际系统传输时,部分频率的信号被滤除,无法实现混沌同步等问题,阻碍了混沌应用于语音保密通信的进程。已有的混沌保密通信技术主要表现为采用非线性模拟电路,如蔡氏电路来产生混沌信号,通信时用模拟的混沌信号掩盖传输信号,从而实现保密通信。但这种方法在保密性能和通信质量两方面难以取得进一步提高,且抗干扰和抗破译性能差,目前很少被采用。采用数字化的方法实现混沌保密通信虽然克服了上述不足,但最新研究表明,普通混沌的抗破译性能仍不够商。窃听者在得到原始混沌
13、数据后,运用诸如动力学重构、回复映像及用自同步估计模型参数等技术,仍可以破译加密后的密文。另一方面,普通混沌加解密系统的加解密速度仍然难以满足流媒体的保密通信要求。数字话音保密技术可达到很高的保密度,并且克服了模拟话音保密技术中保密度和话音质量难以两全齐美的困难,因此在重要的场合大多采用数字话音保密技术。数字保密系统包括语音编、解码器和数字调制、解调器以及信道编、译码器。工作原理是模拟话音信号经过模数编码器进行数字编码成为数字信号,再通过加密器变成数字加密话音信号,经信道编码器进行纠错,再经数字调制器将数字信号转变成适合于发送端信道传输的模拟信号。在接收端再由解调器还原成数字信号,再经信道译码
14、器、解密器、数模转换器恢复话音信号。其中加密器采用了序列密码技术和分组加密技术。数字话音保密技术由于输出的加密信号具有伪随机的特性,因此对于窃听者来讲只是一片噪音,可懂度为零。1.2.2 保密通信的背景知识保密技术由来以久。公元前400年,斯巴达人就发明了“塞塔式密码”,即把长条纸螺旋形地斜绕在一个多棱棒上,将文字沿棒的水平方向从左到右书写,写一个字旋转一下,写完一行再另起一行从左到右写,直到写完。解下来后,纸条上的文字就是密文。这是最早的密码技术。公元前60年,古罗马统帅凯撒第一个用当时发明的“凯撒密码”书写军事文书,用于战时通信。二战期间德国使用ENIGMA密码机发送作战指令,如何破译其密
15、码曾是盟军情报机构的头等大事。前苏联间谍使用的一次一密乱码本到现在也没人能破译。自从有了通信技术,就开始了对通信的窃密和保密。二战时期,由于军事上的需要,通信技术得到了很大发展,同时也促进了通信保密技术的长足进步。四十年代,Shannon把信息论、密码学和数学结合起来,研究了“保密系统的数学结构”,发表了关于保密技术的经典文章保密系统的通信理伦。这篇文章从理论上推动了保密技术的发展。保密通信是一种隐蔽通信具体内容的通信方式。按这种通信方式,信息在进入信道传送之前必须先进行各种形式变化,成为加密信息,在接收端进行相应的逆变化以后,将恢复出原来信号。这样,非法的截收者将不能理解通信内容的含义。电报
16、通信、电话通信、视频通信和数据通信等各种通信方式中都有相应的保密技术问题。通信的保密手段主要是加密技术,数据加密技术的发展为保密通信提供了强有力的保证,同时保密通信的发展也促进了加密技术的发展,两者是相辅相成的。1.2.3 数据加密技术加密作为保障数据安全的一种方式,它不是现在才有的,它产生的历史相当久远,它的起源要追溯到公元前2000年,虽然它不是现在所讲的加密技术(甚至不叫加密),但作为一种加密的概念,确实早在几个世纪前就诞生了。当时埃及人是最先使用特别的象形文字作为信息编码的,随着时间推移,巴比伦、美索不达米亚和希腊都开始使用一些方法来保护他们的书面信息。近期加密技术主要应用于军事领域,
17、如美国独立战争、美国内战和两次世界大战。最广为人知的编码机器是GermanEnigma机,在第二次世界大战中德国人利用它创建了加密信息。此后,由于AlanTufing和Ultra以及其他人的努力,终于对德国人的密码进行了破解。当初,计算机的研究就是为了破解德国人的密码,人们并没有想到计算机给今天带来的信息革命。随着计算机的发展,运算能力的增强,过去的密码都变得十分简单了,于是人们又不断地研究出新的数据加密方式,如利用ROSA算法产生的私钥和公钥就是在这个基础上产生的。任何一个加密系统至少包括下面四个部分:1)未加密的报文,也称为明文。2)加密后的报文,也称为密文。3)加密解密设备或算法。4)加
18、密解密的密钥。发送方用加密密钥,通过加密设备或算法,将信息加密后发送出去。接收方在收到密文后,用解密密钥将密文解密,恢复为明文。如果传输中有人窃取,他只能得到无法理解的密文,从而对信息起到保密作用。加密技术的基础是密码学,密码学研究的是密码算法,密码算法又可以分为两类:对称密钥密码算法和非对称密钥密码算法。一、对称密钥密码技术对称密码技术是利用一个密钥对数据进行加密,对方接到数据后,必须用同一个密钥进行解密。对称密码体制是从传统的简单换位、代替密码发展来的。自1977年美国颁布DES密码算法作为美国数据加密标准以来,对称密钥密码体制得到了迅猛发展,在世界各国得到了关注和使用。对称密钥密码体制从
19、加密模式上分为序列密码和分组密码两类。1、序列密码序列密码一直是作为军事和外交场合使用的主要密码技术之一,它的主要原理是,通过有限状态机产生性能优良的伪随机序列,使用该序列加密信息流,(逐比特加密)得到密文序列,所以,序列密码算法的安全强度完全决定于它所产生的伪随机序列的好坏,产生好的序列密码的主要途径之一是利用移位寄存器产生伪随机序列,典型方法有:1)反馈移位寄存器:采用n阶非线性反馈函数产生大周期的非线性序列,例如M序列,具有较好的密码学性质,只是反馈函数的选择有难度,如何产生全部的M序列至今仍是世界难题。2)利用线性移位寄存器序列加非线性前馈函数,产生前馈序列,如何控制序列相位及非线性前
20、馈函数也是相当困难的问题,Bent序列就是其中一类好的序列,我国学者对反馈序列和前馈序列的研究都取得了相当多的成果。3)钟控序列,利用一个寄存器序列作为时钟控制另一寄存器序Yd(或自己控制自己)来产生钟控序列,这种序列具有大的线性复杂度。4)组合网络及其他序列,通过组合运用以上方法,产生更复杂的网络,来实现复杂的序列,这种序列的密码性质理论上比较难控制。5)利用混淹理论、细胞自动机等方法产生的伪随机序列。序列密码的优点是错误扩展小、速度快、利于同步和安全程度高。2、分组密码分组密码的工作方式是将明文分成固定长度的组(块),如128比特一组,用同一密钥和算法对每一块加密,输出也是固定长度的密文。
21、例如AES密码算法的输入为128比特明文,密钥长度128比特,密文长度128比特。以DES算法为例,它采用美国国家安全局精心设计的8个SBox和P置换,经过16圈迭代,最终产生64比特密文,每圈迭代使用的48比特子密钥是由原始的56比特产生的。对称密钥密码系统具有加解密速度快、安全性高等优点,在军事、外交以及商业应用中使用越来越普遍。二、非对称密钥密码技术1976年Diffie和Helleman在他们的论文“NewDirections In Crytography”中首次提出公钥密码的观点,使密码学发生了一场变革。在公钥密码中,加密密钥不同于解密密钥,加密密钥公开,解密密钥保密,分别称为公钥和
22、私钥。用户要保障私钥的安全:公钥则可以发布出去。用公钥加密的信息只能用私钥解密,反之亦然。除加密功能外,公钥系统还可以提供数字签名。自1976年以来,己经提出了多种公开密钥密码算法,其中许多是不安全的,一些认为是安全的算法又有许多是不实用的,它们要么是密钥太大,要么密文扩展的太大。多数密码算法的安全基础是一些数学难题,这些难题专家们认为在短期内不可能解决。因为一些问题(如因子分解问题)至今已有数千年的历史了。公共密钥加密算法主要有RSA(Receive,Shamir,Adelman)、Fertezza、EIGama等。其中使用最广的是RSA。非对称加密算法的保密性比较好,它消除了最终用户交换密
23、钥的需要,但加密和解密花费时间长。因此,通常把对称密钥加密技术与非对称密钥加密技术结合起来实现最佳性能。即用非对称密钥加密技术加密对称密钥,而用对称密钥来对实际传输的数据加密解密。1.3 语音编码的发展概况语音编码最初是由人们企图压缩通信频带而来。自从1876年贝尔(AlexanderGrahamBell)发明电话以来,电话通信发展很快,但是在之后几乎半个世纪中,人们对电话系统了解甚少,在20世纪20年代,美国贝尔实验室开始研究电话信号,同时也对电话系统的理论进行研究。在半个多世纪的研究中,各国学者做了大量努力,从人类发音机理和听觉机理出发,对语音的基本元素如声学特性、频谱特征和语意表达等做了
24、大量研究,建立了发音模型和听觉模型,在不同程度上逼近真正的语言过程,并取得了长足发展,逐步形成了通信和信息处理科学的重要研究方向。自从1939年美国的HomerDudley发明声码器以来,语音处理开始了参数编码或模型编码的研究,它是以滤波器为主构造的通道声码器。20世纪60年代以前,Sato Itakura(1966)和AtalSchroedet(1967)研究出实用的共振峰声码器,最早把“LPC(LinearPredictionCode)”技术应用到语音分析和合成。他们以线性组合模型满足均方误差最小条件下逼近原始波形的方法提取参数,研究出了自相关法、协方差法和格型法等快速算法。1966年,J
25、LFlanagan提出了以瞬时频率为基础的相位声码器【20】。1969年,AVOppenheim提出了以倒谱为基础的同态声码器【21】。在20世纪80年代以前,LPC声码器最终因其成熟的算法和对参数的精确估计最终成为语音信号处理领域最重要的研究成果,并逐步走向实用。从上世纪80年代中后期,由于人们对发音机理深层次的研究和芯片技术的飞速发展,语音编码技术取得了突破性进展,推出了多种以波形匹配为目标的波形编码算法和以追求人的感知效果(追求解码语音的可懂度和清晰度)为目标的参数编码算法,同时也推进了语音编码算法的标准化,GSM、IS54、G728等都是当时出台的语音编码标准。更为重要的是,混合编码技
26、术也在这一时期引起人们的关注。1985年,Manfred、Schroder和Atal提出的码本激励线性预测(CELP)便是典型的混合编码算法。随后,出现了一些码速率低、语音质量高混合编码算法,1998年推出的混合激励线性预测MELP算法便是其中之一。就语音编码现状而言,MELP算法是低速率语音编码中一种比较理想的编码方案。但MELP也是一个比较新的语音压缩编码算法,资料比较缺乏,各国还在不断的研究之中,它也是本文要研究的内容之一。1.4 数字语音处理方法通常的数字信号处理的实现方法一般有以下几种:1) 在通用的计算机(如PC机)上用软件(如Fortran、C语言、Matlab)实现;2) 在通
27、用计算机系统中加上专门的加速处理机实现;3) 用通用的单片机(如MCS 51、96系列、80x86系列、ARM等)实现,这种方法可用于一些不太复杂的数字信号处理,如数字控制领域。4)用通用的可编程DSP芯片实现。与单片机相比,DSP芯片具有更加适合于数字信号处理的软件和硬件资源,可用于复杂的数字信号处理算法。5)用专用的DSP芯片实现。在一些特殊的场合,要求的信号处理速度极高,用通用DSP芯片较难实现,例如专用于FFT、数字滤波、卷积、相关等算法的DSP芯片,这种芯片将相应的信号处理算法在芯片内部用硬件实现,无需进行编程。在上述几种方法中,第1种方法的缺点是速度较慢,一般可用于基本语音算法的模
28、拟或者非实时的语音编解码;第2种和第5种方法专用性强,应用受到很大的限制,第2种方法也不便于系统的独立运行;第3种方法只适用于实现简单的DSP算法;第4种方法才使数字信号处理的应用打开了新的局面。1.5 课题研究主要开展的工作语音保密通信系统因其高保密性和安全性在军队和商业中得到迅速发展,不管是国内还是国外,语音保密通信系统都还不成熟。现有的数字语音保密通信系统的语音编码速率较高,占用带宽资源较多。课题以研究低码率语音保密通信系统为目标,对于其中涉及的低码率语音编码、加密问题加以研究,设计并实现了基于DSP的低码率语音保密通信系统。本系统的研究重点在以下几个方面:1.5.1 低码率语音编码技术
29、的研究和实现采用低码率的语音编码技术是实现信道扩容、降低语音通信和存储成本的主要和首选方法。在现有的语音编码研究中,混合激励线性预测编码MELP是一种比较好的算法,MELP编码算法已经被确定为美国新的联邦语音编码标准。综合考虑,选用MELP算法作为本系统的语音压缩算法,深入研究并在DSP上实现了该算法。本文的主要工作是通过分析研究TI提供的MELP标准C源程序,掌握该算法在DSP芯片中的运行过程,把C源程序的核心部分和运算量较大的部分使用手工汇编来优化,达到高效率、短延时的目的,为下一步实现加密打好基础。1.5.2 加密算法的研究和实现语音通信在加密方面有其自己的特点(主要是考虑其实时性和话音
30、质量的要求),另外安全的投入必须与实际需求成比例。针对本系统的需求,我们对各种加密方法和加密算法进行研究和比较,选择了AES算法作为本系统的加密算法。实现了基于DSP的保密语音通信所需要的加密方法和加密算法。1.5.3 设计实现了基于DSP的低码率语音实时保密通信系统低码率语音加密系统是基于DSP的实时语音业务。它对实时性要求比较高,对时延非常敏感。通常,单向的通话时延在150ms以下时,人们几乎感受不到时延的存在。而当单向时延超过450ms时,其通话质量就很难让人接受了【24】。该系统综合考虑了编码复杂度、延时、话音质量、带宽和安全性等各个方面性能因素。1.5.4 系统性能评测由于引入了加密
31、过程,它将影响到语音包大小、语音延时和传输带宽的占用等各个方面,因此需要对该功能引入之后对系统的性能影响进行评测,以确保它不会给系统的性能带来太大的影响。1.6 本文选题和论文结构本文就如何在降低信道带宽占用的同时保证语音数据的安全性提出了一种解决方案,设计并实现了基于数字信号处理器(DSP)的语音保密通信系统。利用DSP完成语音信号实时采集回放、语音编解码、语音加解密和实时传输。编解码算法采用的是美国联邦标准2.4kbps-MELP算法,加解密算法采用的是AES算法。文中介绍了语音编解码和数据加密的理论知识、DSP及其开发环境、系统的软件设计、相关接口的程序设计和语音编码以及加密算法设计,最
32、后给出了测试结果以及改进意见。第2章 基于DSP的低码率语音保密通信系统的总体设计低码率语音保密通信系统由数字信号处理器(DsP)实现语音数据的编码、加密、解密和解码,工作时不需要上位机的支持。考虑到目前语音保密通信系统中存在的问题,从安全和节约带宽资源两方面考虑,采用低码率语音编码技术和数字语音加密技术,设计了基于DSP的低码率语音实时保密通信系统的方案。本章首先分析了系统中语音数据的流程,然后介绍了系统实现的硬件平台,最后描述了该系统的软件设计方案。2.1 数字信号处理器概述数字信号处理器,即通常所说的DSP(digital signal processor)。这种芯片具有较高的运行速度、
33、丰富的软硬件资源,非常适合做数字信号处理算法,且可以根据不同需要,编制不同程序来实现不同的信号处理算法,方便灵活。TMS320F2812数字信号处理器是TI公司最新推出的32位定点DSP控制器,是目前控制领域最先进的处理器之一。其频率高达150MHz,大大提高了控制系统的控制精度和芯片处理能力。TMS320F2812芯片基于C/C+高效32位TMS320C28x DSP内核,并提供浮点数学函数库,从而可以在定点处理器上方便地实现浮点运算。在高精度伺服控制、可变频电源、UPS电源等领域广泛应用,同时是电机等数字化控制产品升级的最佳选择。TMS320F2812 DSP集成了128KB的闪存,可用于
34、开发及对现场软件进行升级时的简单再编程。优化过的事件管理器包括脉冲宽度调制(PWM)产生器、可编程通用计时器,以及捕捉译码器接口等;该器件还包括12位模数转化器(ADC),吞吐量可达每秒16.7MB的采样,其双采样装置可实现控制环路的同步采样,片上标准通讯端口可为主机、测试设备、显示器及其他组件提供简便的通讯端口。TMS320F2812的主要特点如下: l 具有32位定点DSP TMS320C28xTMCPU内核l 存储器4K16 Boot ROM18K16 RAM128K16 Flashl 速度6.6ns的指令周期,每秒可以执行150M条指令。l 事件管理器(EV)12路比较PWM通道;4个
35、16位通用定时器,均具有4种计数模式;6个全比较单元;6个捕获单元,其中4个具有连接正交编码器脉冲的功能;外部时钟输入和外部比较输入。l 模/数转换器(ADC)内置具有两个8选1多路切换器和双采样保持器的12位ADC内核;快速的转换时间(S/H+转换)为80ns(ADC工作在25MHz);16个模拟输入通道;自动排序功能,具有两个独立的最多可选择8个模拟转换通道的排序器,可独立以双排序器模式工作,也可级连后组成最多可选择16个通道的模式,每次需要转换的通道均可通过编程来选择。多个触发源可启动ADC,可通过软件、EVA、EVB和外部引脚来触发;采样和保持获取时间窗具有单独的预定标。l 具有56个
36、单独可编程的多路复用I/O引脚l 串行外设接口模块(SPI)l 串行通信接口模块(SCI)l CAN控制器模块(CAN)l 多通道缓冲串行口(McBSP)2.2 数据流程低码率语音保密通信系统设计的通信系统的传输信道上有两种数据流:密钥同步数据流和语音数据流。密钥同步数据流主要用于密钥协商和更换密钥。由于本系统采用分组密码,在加密后语音打包时应在包头进行加密相关设置,以保证接受方能正确的解密。图2-1 单向语音数据流图系统语音通信流程如图21。首先发送端以8kHz的采样率对语音进行采集,以8bit量化精度得到数字语音信号,以帧(帧长22.5ms,每帧180个样点)为单位进行语音编码处理,使其转
37、化为特定格式的编码数据,减少语音信号的冗余度及占用的传输信道带宽。压缩编码后的语音数据经过封装,以特定格式的数据包为单位进行语音加密处理,进行语言加密处理时,DSP工作模块随即使用内置的加密算法和接收到的密钥对语音信息进行加密,然后将密文再进行打包,并发送至信道。接收端从信道收到密文后经解包处理,根据包头的相关参数判断此包所用密钥,用得到的密钥对密文进行解密。将解密后的数据进行语音解码,最后得到数字化的语音,经扬声器或耳机播出。2.3 系统实现的硬件平台设计当根据2.2节的分析可知,系统中耗时较多的模块是语音编解码和语音加解密四个模块。由文献知MELP编码需要的DSP器件的运算能力约为20-3
38、0MIPS,再加上解码器的需求,MELP编码和解码共需要的DSP器件的运算能力约60MIPS。再加上加密运算和解密运算,系统需要的DSP器件的运算能力不能低于100MIPS。综合考虑运算能力、成本以及系统的扩展等因素,本系统选用TI公司的TMS320F2812芯片作主处理器。分析图2-1语音流程可知,本系统硬件平台至少应该包括:实时语音采集与回放的音频处理模块,语音编码解码模块、加密解密模块、能够进行全双工通信时的串行接口模块等。图2-2给出了设计本系统所用到的硬件模块配置图,包括TMS320F2812DSP芯片,存储器FLASH和SDRAM,音频处理模块,异步串行接口模块。图2-2 系统实现
39、硬件平台音频处理模块的主要功能是对输入的语音信号作混叠滤波、放大、AD转换,完成模拟语音信号的采样;同时对输出的数字语音信号进行DA转换、平滑滤波。主处理芯片TMS320F2812主要完成系统的核心工作,即语音编解码和语音加解密的操作,同时对整个系统进行控制和管理。FLASH和SDRAM主要功能是为系统提供代码和数据以及变量的存储空间。异步串行接口为系统实时通信提供接口。JTAG接口为系统调试工具提供接口。2.4 系统软件设计本系统软件主要包括以下几个部分:初始化模块、密钥协商模块、语音采集与回放模块、语音编解码模块、语音加解密模块、串行口中断服务模块。主程序流程如图2-3。图2-3 主程序流
40、程图首先对硬件和MELP编解码函数和AES加解密函数初始化。然后开中断,允许McBSPO接收和发送中断请求,进入主循环,开始接收、处理和发送数据。在接收过程中,如果接收满一帧数据(180个采样值),则将数据送接收编码缓冲区,并将接收计数器清零,调整接收缓冲区指针。接着MELP编解码函数对数据进行压缩处理,处理完成后将数据送接收加密缓冲区,在接收过程中,如果接收满一个分组数据(两个MELP语音帧),调AES加解密函数对数据进行加密处理,最后存储重构语音数据,等待发送。在发送过程中,当发送完一帧后,发送计数器清零,并将发送缓冲区指针调整,将重构语音数据送发送缓冲区。最后继续对发送和接收缓冲区进行检
41、测,重复上述循环。2.4.1系统功能模块描述模块化的设计思路现已广泛使用,其原理是尽量降低各部分之间的耦合度来达到使用灵活、查错定位方便的目的。本系统软件的实现正是采用这种模块化的思想。采用模块化思想后只要对不同的部分更换不同的处理模块,再更改少量的代码就可完成编程的工作。这也为以后系统升级以及更换其它算法进行试验提供了方便。依据图2-1语音通信流程,本系统至少应该具有以下几个模块:1主程序主程序管理系统中所有子程序,并负责通信双方的交互。2语音采集和回放模块该模块是语音加密通信的起点和终点,完成系统的语音输入和输出。目前,开发语音信号采集与处理系统通常有三种方案。一种是利用通用计算机加A/D
42、卡构成硬件平台,语音处理算法由软件实现。其待点是价格便宜,但速度很谩。第二种方案是采用专用芯片进行语音信号采集和处理,其特点是价格较便宜,处理速度快,缺点是不够灵活。产品不能升级。第三种方案是采用DSP芯片作为处理中心,配合高精度、高速的A/D、D/A模块,实现语音处理算法。采用这种方案的成本较高,但是由于DSP的高性能,可编程,此方案是一种性价比较高的方案。本系统选用TI公司的TLV320AIC23作为A/D、D/A模块,实现基于DSP的语音信号采集系统。3语音编码和解码模块该模块功能是对语音信号迸行编码、压缩以便于传输,同时对接收到的语音数据进行解码、解压,将其还原成语音信号以便播放和回放
43、。本系统研究并实现了码速率为24kbps的混合激励线性预测MELP算法,用作本系统的语音编码处理,其语音质量好于同速率的线性预测编码算法LPC一10,是有较好应用前景的低速率语音编码算法。4语音数据加密和解密模块该模块功能是加密压缩后的语音信号和对解包后的语音数据进行解密。语音加密与解密模块是保证语音通信安全的核心。密码算法采用AES,考虑到语音帧的特性本系统采用ECB模式和计数器模式进行运算。加解密模式和会话密钥都通过密钥协商产生,以实现通话的一次一密。5密钥协商模块密钥协商采用DifferHe|iTlan算法,在通信前完成。密钥协商的同时,通信双方还应该交换初始化向量等安全参数。6语音数据
44、包及密钥同步包封装和解析模块该模块是将语音包封装为加密包,或加密包解析为语音包。并封装或解析密钥同步序列包,通过密钥同步包保证加解密的同步及传送的实时性。7数据的发送和接收该模块包括语音加密包和密钥同步包的发送和接收。主要由中断程序完成。本系统中,两个DSP工作模块之间的通信通过RS232接口实现的【26】。2.4.2初始化模块初始化模块主要完成硬件及各函数的初始化,因为这部分不占用编解码的时延,所以用C语言来编程。初始化模块包括对DSP的初始化函数initValO、对中断向量的初始化函数initInterrupt()、对McBSP0的初始化函数initMcBSP0()、对McBSPl的初始化
45、函数imtMcBSPl()、对时钟模式的初始化函数initCLK()、对语音处理芯片的初始化函数initAIC23()、两个编解码初始化函数melp_ana_init()和melp_syn_iIlit()以及加密初始化函数eipherlnit()。initVal()、initInterrupt()、imtMcBSP0()、initMcBSPl()、initCLK()主要完成以下的初始化工作;CPU各种控制方式寄存器的设置,包括时钟模式寄存器CLKMD的设置,软件可编程等待状态寄存器SWSSR和软件等待状态控制寄存器SWCR的设置,寄存器PMST、ST0_55、STl_55的设置,中断可屏蔽寄存
46、器IMR和中断标志寄存器IFR的设置。接收缓冲区R_buff和发送缓冲区X_buff空间大小的设置,McBSP0与McBSPl中各控制寄存器的设置。其它初始化函数在相应模块介绍。2.4.3 串行中断服务模块系统的串行中断服务程序主要完成采样值的输入和重建语音的输出,这通过McBSP0的接收中断服务程序和发送中断服务程序完成。首先,主程序在初始化部分设置允许McBSP0的接收和发送中断请求,由以下指令完成:asm(”ssbx INTM”);i_PMST:PMST=i&OxffIMR=0x30;/允许McBSP0接收和发送中断IFR=0xff;asm(”rsbx INTM”);/开全局中断
47、接收部分,每次McBSP0的数掘接收寄存器1(DRRl)满了后,向CPU申请中断,CPU响应中断,就转到接收中断服务程序,将DRRl的数据读入接收缓冲区R_buff中,并将计数器值R_counter加l。而发送部分,每次McBSP0的发送移位寄存器1(DxRl)空了以后,就向CPU申请中断,CPU响应中断,就转到发送中断服务程序,将要发送的数据从发送缓冲区X_buff提出并写入DXRl中,同时发送计数器X_counter加l。为了防止数据被覆盖,将接收和发送缓冲区设置为二级缓冲结构,这通过设置一个全局2维数组和一个全局指针变量R_pointer来完成,将接收缓冲区R_buff的设置为:shor
48、t R_buff2180;/接收二级缓冲区short R_pointer=0; /接收二级缓冲区指针在接收中断服务程序中,计数器R_counter计数到180时,对R_counter清零,并让pointer和1进行异或,这样编码函数每次只需对R_buffR_pointer0的180个数据进行读取就可以了。接收中断服务程序的C代码如下:interrupt void R_INTO(void)R_buffR_pointerR_counter=Read(pMCBSPO>ddrl);R_counter+;if(R cotmter=180°)R_laointer=R_pointerl;R_
49、eounter=0;Read_f=-l;/编码函数对此标志进行查询,等于1时,开始读取一帧数据进/行编解码处理,同时将read_f置029第3章 MELP算法及其DSP实现MELP声码器在经典二元激励LPC声码器的基础上,加入一些新的特征:1)混合脉冲和噪声激励。2)非周期的脉冲激励。3) 自适应谱增强。4) 傅立叶谱幅度。5) 脉冲散布。这些特征使得MELP声码器与经典的LPC声码器相比可以更好的模拟人的语音,使其在低码率下合成语音的自然度大大提高,消除了嗡嗡声和喀嚓声等不自然的声音。MELP声码器的语音质量可以在很低的码率下达到较好的听觉效果,其主观听觉质量接近美国联邦48kbps的CEL
50、P【27】。3.1 MELP声码器算法MELP声码器分为分析器和合成器两部分。分析器用于对原始语音信号进行分段分析,提取各个语音段的特征参数并进行量化编码,得到待传输或存储的数字码元。合成器用于将从分析器得到的编码结果进行解码,利用特征参数重建语音信号。3.1.1 分析器MELP分析器算法流程如图31,整个算法分为参数提取和参数量化两部分。参数提取分为基因提取、带通清浊音分析、线谱对(LSF)参数提取、增益估计和傅立叶谱幅度提取等部分,这些部分相互关联,某一个部分在计算中可能要用到另外一些部分的结果。MELP的参数量化部分使用了多级矢量量化,有效的降低了LSF参数量化的bit数,并具有较低的运
51、算复杂度。经过采样量化后的数字语音(本系统采样频率为8kHz,采样精度为8bit)首先经过一个截止频率为60Hz的四阶切比雪夫高通滤波器滤除其中的低频成分,经过处理后作为输入的待处理语音信号s(n)。图3-1 MELP声码器的分析器流程框图3.1.2 合成器MELP合成器(如图32)的任务是根据分析器提取的参数进行解码,恢复原始语音,并根据语音特点采用一些技术来改善语音的主观听觉质量。使用到的技术主要有参数插值、自适应谱增强和脉冲散布。图3-2 MELP声码器的合成器3.2 MELP编解码模块的DSP实现TI为MELP算法提供了一套标准C程序,但是将该源代码直接移植到TMS320F2812编译
52、后,并不能满足实时性要求,而且占用大量的存储空间。所以必须对其进行优化。这部分的工作重点是针对运算量大的模块用汇编语言进行代码优化。用汇编语言对C语言进行优化主要有三种方法【28】:1独立编写C和汇编程序首先分别独立编写C和汇编程序,然后将它们加入到同一个工程文件中,再利用集成开发环境对它们进行编译链接,最后生成可执行代码。通常,FFT、FIR、IIR【26】等的程序一般采用汇编语言编写,而主程序则可采用C语言,这样只需在C程序中定义这些程序为外部调用即可。采用这种方法必须遵循有关的调用规则,这样C和汇编函数之间的接口就变得很方便。2直接在C程序中嵌入汇编语句在C程序中嵌入汇编语句的方法比较简
53、单,只需加入asnl(“汇编语句”)语句即可。采用这种方法一方面可以在C程序中实现用C语言无法实现的一些硬件控制功能,如修改中断控制寄存器、中断使能或屏蔽、读取状态寄存器和中断标志寄存器等;另一方面,也可以用这种方法在C程序中的关键部分用汇编语句代替C语言以优化程序。采用这种方法的缺点是容易破坏C环境,因为C编译器在编译嵌入了汇编语句的C程序时并不检查或分析所嵌入的汇编语句。3手工优化和修改C程序编译生成的汇编程序采用此方法需要对C编译器非常了解,而且在修改汇编程序时要避免与程序的其它部分发生冲突。通常采用如下方法进行修改:在CCS中选择View菜单下的Mixed Source/ASM选项,可
54、看到交叉列表的汇编程序;在所生成的语句中,每个C语句的下面就是C编译器对该C语句编译所生成的汇编语句,通过查看交叉列表的汇编程序,可以对某些编译不是很优但却比较关键的汇编语句进行修改。3.2.1 MELP算法软件的实现主要是通过两个主程序melp_anaC和melp_synC来控制,调用各个具体的运算模块,分别实现MELP的编码和解码功能。源代码是16bit定点标准C程序,一共包含21个文件,可将其分成两个部分:通用程序和编解码程序。通用程序部分共有5个文件,保证数据在运算中的精度,同时使算法中的通用函数以封装函数的方式实现,文件描述如下:complexC /算法复杂度的函数math-1ibC
55、 /溢出处理函数mathdp31C /扩展精度函数mathhalfC /实现简单算术运算的函数wmopsC /运算符的复杂度函数编解码程序部分可以分为以下15个模块:coeffC /低通滤波器、带通滤波器系数dsp_subC /常规子程序fec_codeC /打包、解包子程序fs_libC /傅立叶系数子程序fsvq _cbC /傅立叶系数矢量量化码本lpc _libC /线性码编测预库mat_libC /矩阵、矢量运算函数库melpC /MELP编解码接口函数melp_anaC /MELP分函析数melp_ chnC /MLEP通道流读写函数melp_sub. C /MELP专用子程序melp_syn. C /MELP综合函数msvq_cb. C /多级矢量量化码本pib_ libC /基音提取函数库vq_libC /矢量量化函数库MELP编码函数melp ana()和解码函数melp_syn()由以上模块的不同连接构成【27】,主要完成对一帧采样数据进行编解码处理。其中编码函数melp ana()的程序流程如图3-3。解码函数melp_syn()是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年高考物理考前20天冲刺讲义(三)(解析版)
- 刍议民间工艺美术的传承
- 2026 学龄前自闭症思维力技能提升课件
- 企业税务争议传播预案
- 健康教育学校工作计划
- 保护地球建议书
- 2026届山东省邹平县达标名校十校联考最后英语试题含答案
- 2026 自闭症融合教育支持课件
- 2026 学龄前自闭症教师干预认知课件
- 忠实履行义务环境污染图片
- 2026广东广州南方投资集团有限公司社会招聘49人备考题库附答案详解(研优卷)
- 2026年度职业病防治宣传周培训课件
- 【时政解读】从美式斩杀线看中国温度与制度力量 课件
- 2026年广州市黄埔区事业单位招聘笔试参考题库及答案解析
- 油漆车间安全培训
- 第25讲-理解为王:化学反应原理综合题解法策略
- 2025多学科共识:慢性阻塞性肺病患者心肺风险的识别和管理课件
- 2026年共青团入团积极分子考试测试试卷题库及答案
- 2025学年河北省名校协作体高三语文上学期12月考试卷附答案解析
- 2025湖南大学出版社有限责任公司招聘笔试历年常考点试题专练附带答案详解试卷2套
- 制造业产品研发流程优化方案
评论
0/150
提交评论