




已阅读5页,还剩80页未读, 继续免费阅读
(信号与信息处理专业论文)信号处理在现代心脏诊断中的应用及在dsp上的实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 心音信号是心脏及心血管系统机械运动状况的反应,包含着心脏以及心血 管系统的生理和病理信息,被医学界广泛用于评估病人的心脏及心血管功能。 由于心音的频率较低而且非常微弱,同时在人耳的听力范围之外心音还含有大 量信息,而传统的心音听诊的方法受医生主观因素的影响比较大,所以传统的 心音听诊并不可靠,也无法进行准确的定量分析。结合现代数字信号处理技术, 通过对心音信号进行处理和分析,进而识别和提取心音特征的方法,对心血管 疾病的诊断起到重要作用。本论文实现了对心音信号进行基于小波变换的去噪 处理,然后通过香农能量提取心音包络并识别第一心音和第二心音的心音识别 算法。 心电信号( e l e c t r o c a r d i o g r a m ,简称e c g ) 是最重要的生物电信号之一,能 够反映人体的心脏电活动信息。t 波电交替( t - w a v ea l t e m a n s ,t w a ) 作为一种非 稳态的心电变异性现象,是表征室性心律失常,特别是恶性心律失常和心源性 猝死现象的具有统计学意义的指标,目前已经引起医学界的广泛注意,成为了 研究的热点。随着技术的发展,t 波电交替的检测已发展到微伏量级,肉眼根本 无法进行识别,所以必须借助信号处理技术进行检测。本论文经过分析和研究 并在d s p 上实现了t 波电交替的谱分析( s m ) 检测算法,整个过程采用p h y s i o n e t 上的c h a l l e n g e 数据库进行验证。 本论文不但对心音识别算法和t 波电交替的s m 检测算法进行实现,而且 使用c 语言和汇编语言将算法成功地移植到d s p 上并进行了程序的优化。采用 的平台为t i 公司的t m s 3 2 0 c 6 7 1 3 e v m 板,开发环境为c c s ,在其上对算法进 行了评估,达到了预期的效果,为此方案应用到实际产品中奠定了坚实的基础。 关键词:心音心电t 波电交替d s p a b s t r a c t a b s t r a c t h e a r ts o u n d si s 也er e f l e c t i o no ft h em e c h a n i c a lm o v e m e n ts t a t u so fh e a r ta n d c a r d i o v a s c u l a rs y s t e m ,c o n t a i n sp h y s i o l o g ya n dp a t h o l o g yo ft h eh e a r ta n dt h e c a r d i o v a s c u l a rs y s t e m ,i sw i d e l ya p p l i e dt oe v a l u a t ec a r d i a cf u n c t i o no fp a t i e n t s b e c a u s eo ft h el o wf r e q u e n c ya n dw e a ke n e r g yo fh e a r ts o u n d s ,m e a n w h i l et h eh e a r t s o u n d sc o n t a i n sal a r g ea m o u n to fi n f o r m a t i o no u t s i d eo fh u m a nh e a r i n gs c o p e ,s ot h e t r a d i t i o n a lh e a r ta u s c u l t a t i o nw h i c hi ss u s c e p t i b l et ot h ed o c t o rs u b j e c t i v ei n f l u e n c ei s u n a b l et oq u a n t i t a t i v ed e t e c t i o na n dn o tr e l i a b l e t h em e t h o dc o m b i n e dw i t ht h e m o d e ms i g n a lp r o c e s s i n gt e c h n o l o g y , t h r o u g hh e a r ts o u n dr e c o r d i n g ,d e n o i s i n ga n d a n a l y s i st oe x t r a c tc h a r a c t e r i s t i ci n f o r m a t i o no f h e a r t 。s o u n dp l a y sa ni m p o r t a n tr o l ei n t h ed i a g n o s i so ft h eh e a r t t h ep a p e rr e a l i z e dt h eh e a r ts o u n ds i g n a lp r o c e s s i n g a l g o r i t h mw h i c hc o m p l e t e dt h ed e n o i s i n go fh e a r ts i g n a lb a s e do nw a v e l e ta n a l y s i s , t h ee x t r a c t i o no fe n v e l o pa n dc h a r a c t e r i s t i ci n f o r m a t i o no ft h et i m e - d o m a i nw i t h s h a n n o ne n e r g ym e t h o d e l e c t r o c a r d i o g r a p h i c ( e c g ) s i g n a li s t h em o s ti m p o r t a n tb i o l o g i c a l s i g n a l s , r e f l e c t sh u m a ne l e c t r i c a la c t i v i t yi n f o r m a t i o no fh e a r t t - w a v ea l t e m a n s ( t w a ) a s n o n - s t e a d y - s t a t ee c g v a r i a t i o np h e n o m e n o n ,i ss t a t i s t i c a l l ys i g n i f i c a n ti n d e x e st o p r e d i c to fv e n t r i c u l a ra r r h y t h m i aa n ds u d d e nc a r d i a cd e a t h ( s c d ) ,e s p e c i a l l yt h e m a l i g n a n ta r r h y t h m i a ,a n dc u r r e n t l yh a sa t t r a c t e dw i d e s p r e a da t t e n t i o n ,b e c o m i n g a r r h y t h m i ar e s e a r c hh o t s p o t a l o n gw i t ht h ed e v e l o p m e n to fs i g n a lp r o c e s s i n g t e c h n o l o g y , t h ed e t e c t i o no ft w a i nt h ee c gh a sb e e nt h el e v e li nm i c r o v o l t t h e p a p e rr e a l i z e dt h et h ec l a s s i c a ls p e c t r a lm e t h o df o r t h ed e t e c t i o no ft w a ,u s i n gt w a c h a l l e n g ed a t a b a s ei np h y s i o n e tf o rv e r i f i c a t i o n t h eh e a r ts o u n d sr e c o g n i t i o na l g o r i t h ma n ds ma l g o r i t h mf o rt w ad e t e c t i o n h a v en o to n l yb e e ni m p l e m e n t e d ,b u ta l s ob e e np o r t e dt od s pw i t hal o to p t i m i z a t i o n u s i n gc c s 2 2a sd e v e l o p m e n te n v i r o n m e n ta n dt h et m s 3 2 0 c 6 7 13 e v mb o a r do ft i , o nw h i c ht oe v a l u a t et h ea l g o r i t h m ,t h ep a p e ra c h i e v e dt h ee x p e c t e de f f e c t ,l a y i n g s o l i df o u n d a t i o nf o rt h ef u r t h e ra p p l i c a t i o ni nt h er e a lp r o d u c t k e y w o r d s :h e a r ts o u n d ,e c g , t w a ,d s p 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外j 本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 学位论文作者签名: 年月日 南开大学学位论文使用授权书 根据南开大学关于研究生学位论文收藏和利用管理办法,我校的博士、硕士学位获 得者均须向南开大学提交本人的学位论文纸质本及相应电子版。 本人完全了解南开大学有关研究生学位论文收藏和利用韵管理规定。南开大学拥有在 著作权法规定范围内的学位论文使用权,即:( 1 ) 学位获得者必须按规定提交学位论文( 包 括纸质印刷本及电子版) ,学校可以采用影印、缩印或其他复制手段保存研究生学位论文, 并编入南开大学博硕士学位论文全文数据库;( 2 ) 为教学和科研目的,学校可以将公开 的学位论文作为资料在图书馆等场所提供校内师生阅读,在校园网上提供论文目录检索、文 摘以及论文全文浏览、下载等免费信息服务;( 3 ) 根据教育部有关规定,南开大学向教育部 指定单位提交公开的学位论文;( 4 ) 学位论文作者授权学校向中国科技信息研究所和中国学 术期刊( 光盘) 电子出版社提交规定范围的学位论文及其电子版并收入相应学位论文数据库, 通过其相关网站对外进行信息服务。同时本人保留在其他媒体发表论文的权利。 非公开学位论文,保密期限内不向外提交和提供服务,解密后提交和服务同公开论文。 论文电子版提交至校图书馆网站:h t t p :2 0 2 1 1 3 2 0 1 6 1 :8 0 0 1 i n d e x h t m 。 本人承诺:本人的学位论文是在南开大学学习期间创作完成的作品,并已通过论文答辩; 提交的学位论文电子版与纸质本论文的内容一致,如因不同造成不良后果由本人自负。 本人同意遵守上述规定。本授权书签署一式两份,由研究生院和图书馆留存。 作者暨授权人签字: 2 0年月日 南开大学研究生学位论文作者信息 论文题目 姓名学号答辩日期 年- 月 日 论文类别博士口学历硕士口 硕士专业学位口高校教师口同等学力硕士口 院 系 既专业 联系电话 e m a l l 通信地址( 邮编) : 备注: 是否批准为非公开论文 注:本授权书适用我校授予的所有博士、硕士的学位论文。由作者填写( 一式两份) 签宇后交校图书 馆,非公开学位论文须附南开大学研究生申请非公开学位论文审批表。 第一章引言 第一章引言 信号处理技术,尤其是数字信号处理技术的发展迅速,已经逐步渗透到了 各个领域。在医学界,心音和心电是应用最为广泛的两种医学信号,而传统的 心音听诊以及人工观测心电图的方法都已经无法满足现代心脏诊断的要求,结 合信号处理技术,对心音信号和心电信号进行一定的分析和处理,可以对心脏 诊断起到重要作用。 本章首先介绍了信号处理,信号处理在现代心脏诊断中的应用和d s p 芯片, 然后是本论文的主要工作和内容安排。 第一节课题的引入 1 1 1 信号处理 在周围环境中,甚至在人体自身内部都存在着各种各样的信号,比如我们 每天看到的视频信号,人体内部产生的心音信号,肺音信号等。几十年来,随 着计算机和信息学科的高速发展,信号处理尤其是数字信号处理技术应运而生 并且迅速发展,现已经形成一门独立的学科体系。简单的讲,数字信号处理就 是利用专用处理设备,以数值计算的方法对信号进行采集、变换、分析与识别 等处理,以此达到抽取有效信息以便达到某种应用目的。 信号处理涉及了大多数的工程应用技术领域,包括对电信号、磁信号、机 械信号、热信号、声信号、光信号以及生物医学信号等各种信号的处理。随着 电子技术的发展,数字信号已经取代模拟信号占据了主导地位,本论文中的信 号处理指的是数字信号处理。 信号处理以很多学科作为基础,在理论上所涉及的范围非常的广泛,数学 领域中的微积分、概率统计、随机过程、高等代数、数值分析和复变函数等都 是信号处理的基本工具,网络理论、信号与系统等均是其理论基础。 信号处理总是得益于它的理论、应用与实现信号处理系统的技术之间的紧 密结合,日益增长的应用范围和对日益增长的高级算法的需求总是与实现信号 处理的器件技术的快速发展齐头并进。 信号处理可以用于沟通人类之间,或人与机器之间的联系;用以探测我们 6 第一章引言 周围的环境,并揭示出那些不易观察到的状态和构造细节,以及用来控制和利 用能源与信息【i j 。 信号处理的理论与算法是紧密结合的,想要实现某种特定功能,信号处理 算法是前提,还必须依靠依靠信号处理理论的支持,进行一系列的严格的算法 分析验证以后,经过仿真、测试,然后借助数字信号处理j 卷片才能将算法应用 于工程实践当中,成为实际的项目应用。 1 1 2 心脏诊断中信号处理的应用 1 1 2 1 信号处理在心音诊断中的应用 心音信号是人体最重要的生理信号之一,心音图则是记载了某时期内心音 的波形图,含有心脏及心血管系统的功能状态和生理信息,在医学界早已广泛 应用于心脏的辅助诊断。但是传统的心脏听诊方法,对医务人员的临床经验有 较高的要求,受人主观因素的影响比较大,并且受到人耳听力范围的限制,有 很多心音成分是人耳不可见的,医师难以清楚的分辩大量有诊断意义的心音成 分。因此,通过对心音信号进行检测、然后用计算机技术和数字信号处理的方 法对采集到的心音信号进行处理,再结合相关医学知识进行心音分析,可以对 心血管疾病的诊断起到重要作用。 1 1 2 2 信号处理在心电图中的应用 心电图是记录心脏电信号的图形,表征了心脏兴奋的变化。心电信号在心 脏诊断中具有重要作用,可以用于判定一系列的病症,比如心律失常,心肌梗 塞以及心肌炎等。但病态心电图种类繁多、变异极大,同种病理的不同患者的 心电图甚至同一患者自身不同时间或者体表不同位置获取的心电图都存在着很 大的差异,所以采用单纯的肉眼观测并不能准确的获取心电图能反映出来的信 息,更无法进行准确的诊断。 t 波电交替是指在心电图中,在规整的心律下,在心电图上t 波的形态、极 性和振幅在相邻心搏出现交替变化的现象,凡同一导联上t 波的形态,极性和 振幅逐个心拍交替变化,如果振幅相差达到或者超过l m m ,即可判定为出现了 t 波电交替现象,但必须除去人体的呼吸引起的改变,心电数据采集时的设备干 扰噪声以及基线漂移噪声等非心脏因素所致的振幅改变,以及心律失常如早搏 二联律所形成的假性电交替 4 1 。t 波电交替与恶性室性心律失常以及心源性猝死 7 第一章引言 之间有着极为密切的联系,所以引起了医学界极大的重视,成了研究的热点。 而t 波电交替的检测也随之成为人们关注的焦点内容。传统的研究方法是医生 直接用肉眼观察体表心电图上的t 波电交替,由于现代对t 波电交替的检测已 经发展到了微伏量级,在常规心电图上人眼根本无法观测到,所以主要依赖于 信号处理的方法来对心电数据进行t 波电交替的检测。 第二节d s p 芯片 数字信号处理芯片( d s p 芯片) 是一种特殊的微处理器,特别适合进行各 种数字信号处理运算。d s p 芯片拥有精度高、灵活性大、可靠性好以及乘加运 算速度快等特点,所以,数字信号处理芯片已经被广泛应用于信号处理的各个 领域,包括语音处理、通信、互联网,机顶盒,图像处理、医学信号处理、精 密控制、多媒体技术以及机器人等领域。 数字信号处理j 卷片的结构特殊,在芯片内部并非采用冯氏结构,而是采用 哈佛总线结构或改进哈佛总线结构,将程序和数据完全分开。并且具有以下特 点:采用流水线操作,可同时完成指令读取和数据运算工作;同时配有专门的 硬件乘法器,提供特殊的d s p 指令。它相对于一般的微处理器在功能上作了扩 充和增强,具有运算速度快、实时数据处理能力强、软硬件接口灵活和开发、 可编程性高、升级方便等优点,可以快速实现各种数字信号处理算法【2 。 美国的德州仪器( t i ) 公司作为世界上最著名的d s p 芯片供应商,其市场占有 率位居全球第一,达到了6 0 左右,拥有绝对的领先优势。本论文采用的 t m s 3 2 0 c 6 7 1 3 芯片是t i 公司的t m s 3 2 0 c 6 0 0 0 系列中的一款浮点型d s p 芯片, 在实现心音识别算法和t 波电交替的谱分析( s m ) 检测算法时显示出了很高的 精度和运算速度。 第三节论文主要工作及内容安排 本论文主要涉及三方面内容,一是心音识别算法的实现,二是t 波电交替 谱分析( s m ) 检测方法的实现,三是算法向d s p 上的移植和优化。主要工作安 排如下: 8 第一章引言 ( 1 ) 研究了心音信号的基本知识和处理方法,查看了大量资料,参考了各种 方法,经过反复比较、测试和仿真实验,对心音信号进行了小波去噪,基于香 农能量的包络提取,并最终实现了心音信号的识别; ( 2 ) 研究了t 波电交替的产生机制和主要的检测方法,并分析和改进了t 波 电交替的谱分析( s m ) 检测算法: ( 3 ) 使用c 语言在p c 机上实现了心音识别算法和t 波电交替检测的谱分析 算法; ( 4 ) 将算法移植到了t i 公司的t m s 3 2 0 c 6 7 1 3d s p 上; ( 5 ) 对代码进行优化。 主要内容安排如下: 第一章为引言内容,主要包含信号处理技术,及其在现代心脏诊断中的应 用和d s p 芯片介绍,以及本论文的主要工作和内容安排; 第二章介绍了d s p 程序开发的原理、工具和d s p 上程序优化的的基本原则; 第三章介绍了心音信号识别算法的原理、流程和在d s p 上的具体实现和代 码优化; 第四章主要包括对心电信号中t 波电交替的谱分析( s m ) 检测算法的分析 和研究,以及在d s p 上的具体实现流程和代码优化; 第五章对本论文所做工作进行总结,同时对相关技术的研究提出展望。 9 第二章d s p 程序开发 第二章d s p 程序开发 d s p 芯片,也称数字信号处理器,是用于构建实时信息处理系统的核心器 件。随着信息技术的发展,互联网络的普及以及通信行业的迅猛发展,d s p 芯 片有了越来越广泛的应用。目前d s p 芯片已广泛应用于嵌入式数字多媒体、通 信终端、消费电子设备和医疗仪器等众多的数字化电子产品中。 在d s p 芯片的广泛应用的同时,d s p 技术也获得了快速发展,t i 公司推出 的t m s 3 2 0 c 6 0 0 0 系列d s p s 芯片,其独特的汇编优化器可以使开发者不必采用 标准汇编,而是采用线性汇编的方式即可达到近似的超高效率;同时t i 公司推 出的汇编级c 编译器,产生的代码平均效率据统计可以达到汇编代码的 7 0 - - 。8 0 ,从而使开发者开始大量使用c 语言来开发d s p 程序,大大降低了开 发难度,缩短了开发周期。 本章主要介绍了本论文使用的t s m 3 2 0 c 6 7 1 3d s p :签片,相关的开发工具以 及t i 公司推出的集成开发环境c c s ( c o d ec o m p o s e rs t u d i o ) ,还有d s p 代码优 化的方法。 第一节d s p 程序开发介绍 2 1 1t m s 3 2 0 c 6 7 1 3d s p 芯片 t m s 3 2 0 c 6 0 0 0 系列是由美国t i 公司始于1 9 9 7 年推出的高性能d s p 芯片, 现已成为t m s 3 2 0 系列产品的重要组成部分。它包括t m s 3 2 0 c 6 剁6 2 x 定点系 列以及t m s 3 2 0 c 6 7 x 浮点系列。c 6 0 0 0 系列d s p s 芯片最主要的特点是在体系 结构上采用了v e l o c i t i 超长指令字( v e r yl o n gi n s t r u c t i o nw o r d ,v l i w ) 结构。 c 6 0 0 0 的v l m 采用了类r i s c 指令集,使用大的统一的寄存器堆,结构规整, 具有潜在的易编程性和良好的编译性能1 5 j 。 c 6 0 0 0 系列提供了业界内运行速度最快的d s p 芯片,将数字信号处理器的处 理能力提高到了一个新的层次,本论文采用的t m s 3 2 0 c 6 7 1 3d s p 芯片作为采用 超长指令字( v l i w ) 结构的浮点信号处理器,是t i 公司继t m s 3 2 0 c 6 2 x 系列定点 d s p :占片后开发的一种新型浮点d s p j 卷片,其主要特点如下: ( 1 ) 运行速度快。t m s 3 2 0 c 6 7 1 3d s p 芯片的时钟速率在3 0 0 、2 2 5 、2 0 0 和 l o 第二章d s p 程序开发 1 6 7 m h z 时,对应的指令周期分别为3 3 、4 4 、5 和6 n s ,相应的运算速度分别可 达2 4 0 0 1 8 0 0 、1 8 0 0 1 3 5 0 、1 6 0 0 1 2 0 0 和1 3 3 6 1 0 0 0m i p s m f l o p s 。 ( 2 ) 采用超长指令字( v l 研) 结构,具有专用的存取结构,具有3 2 个3 2 b i t 的通用寄存器,并且硬件上支持i e e e 格式的3 2 比特单精度与6 4 比特双精度浮 点操作; ( 3 ) 芯片内部集成了2 个乘法器和6 个算术运算单元,而且它们是高度正交 的,使得在一个指令周期内最大能支持8 条3 2 b i t 的指令,其峰值速度可达到 4 8 0 0 m i p s ; ( 4 ) 具有类似r i s c 的指令集。 ( 5 ) 集成了大容量s r a m ,并具有大范围的寻址能力。片内集成了6 4 - - - , 51 2 k b y t e s 程序存储器和6 4 , - 一3 8 4 k b y t e s 数据存储器,并拥有3 2 b i t 的外部存储器 界面,其通过外部存储器接口( e m i f ) 可以与s d r a m ,s b s r a m 和s r a m 等 存储器的直接连接。 ( 6 ) 多种集成外设,芯片内部集成了多通道d m a e d m a 接口,多通道缓存 串口( m c b s p ) ,3 2 b i t 计时器等; ( 7 ) 指令集在t m s 3 2 0 c 6 2 x 系列d s pj 签片的基础上进行了扩充,所以 t m s 3 2 0 c 6 2 x 系列d s p :签片的指令在上面可以直接运行。 ( 8 ) 低廉的使用成本。由于其强大的运算能力,能够完成更多的运算,从而 也就带来了较低的使用成本; ( 9 ) 低功耗,采用了低电压进行高效稳定的供电,降低了功耗。 2 1 2d s p 程序编译及相关工具 t id s p 上进行程序开发主要涉及编译器( c o m p i l e r ) ,汇编器( a s s e m b l e r ) , 连接器( 1 i n k e r ) ,归档器( a r c h i v e r ) ,建库器( 1 i b r a r y - b u i l du t i l i t y ) ,运行支持库 ( r u nt i m es u p p o r tl i b r a r y ) ,h e x 转换器( h e xc o n v e r s i o nu t i l i t y ) ,交叉引用列表 器( c r o s sr e f e r e n c el i s t e r ) ,绝对列表器( a b s o l u t el i s t e r ) 等。在t i 公司的d s p 集成开发环境c c s 中,其大部分设置可通过c c s 的工具栏中p r o j e c t b u i l do p t i o n s 来进行设置,避免了以往只能通过命令行来设定的局限性,提高了开发的友好 度。 第二章d s p 程序丌发 图2 1 编译结构图 由于t i 公司推出的汇编语言级的c 编译器效率非常高,所以目前大多数的 d s p 程序开发主要采用c 语言进行。c 6 0 0 0 系列d s p 程序编译主要工具如下: ( 1 ) c 编译器:对输入的a n s ic 语言的源代码进行编译,产生c 6 0 0 0 汇编 语言源代码。如图2 2 所示,c 编译器将输入的a n s ic 源代码依次通过内 部的语法分析器( p a r s e r ) ,c 优化器( o p t i m i z e r ) 和代码产生器( c o d e g e n e r a t o r ) ,生成汇编文件。首先是分析器,其输入是c 源文件,读入a n s i c 语言源代码,进行语法和语义检查,输出为掌i f 的中间文件,并输入到优 化器中;其次是优化器( 可选) ,其输入是中间文件( 木i f ) ,用户可以通过 命令行或者在c c s 中进行设置,来选择优化的级别,产生更高效率的牛o p t 文件,并输入到代码生成器中;最后是代码生成器,其输入是幸i f 或者o p t 文件,生成拳a s m 的汇编文件,输出到汇编器中。 1 2 第二章d s p 程序开发 图2 2 编译文件结构 ( 2 ) 汇编器:把汇编语言源文件转化为机器语言目标文件,机器语言格式为 公用目标格式( c o f f ) 。 图2 3 程序编译流程 ( 3 ) 连接器( l i n k e r ) :d s p 程序开发过程中并不只产生一个目标文件,连 接器的功能就是将工程中的多个目标文件组合,产生一个可执行文件。连接器 依赖于日标文件和目标库文件,才能完成重定位并产牛单个的可执行文件。 ( 4 ) 运行支持库( r u n t i m es u p p o r t l i b r a r y ) :运行支持库包括了c 编译器所 支持的a n s ic 语言运行支持函数、浮点运算函数和c 编译器支持的i o 函数, 固宁恒恺一 呈| 囱要 f 昌誊 第二章d s p 程序开发 由于d s p 并不支持a n s ic 语言所支持的i o 函数,但是编译器为了便于调试, 加入了虚拟屏幕输出i o 函数的支持,只是效率较低。运行支持库主要包含r t s 库文件,文件目录为:c c s c 6 0 0 0 c g t o o l s l i b ,以及对应的源程序文件r t s s r c , 文件目录为:c c s c 6 0 0 0 c g t o o l s k l i b 。 ( 5 ) h e x 转换器( h e xc o n v e r s i o nu t i l i t y ) :作用主要是把c o f f 目标文件转 换成其他的目标文件格式,用于在其他d s p 芯片上进行运行。 d s p 程序开发还有一系列其他的工具,比如用于对文档( a r c h i v e ) 或者库 ( 1 i b r a r y ) 中的文件进行操作的归档器( a r c h i v e r ) ,用于建立满足开发者要求的 运行支持库的建库器( 1 i b r a r y - b u i l du t i l i t y ) ,用于生成参照列表文件来进行文件 跟踪和调试的交叉引用列表器( c r o s sr e f e r e n c el i s t e r ) ,以及用于生成含有绝对地 址的列表文件的绝对列表器( a b s o l u t el i s t e r ) 。 2 1 3 集成开发环境c c s c c s ( c o d ec o m p o s e rs t u d i o ) 是一个基于w i n d o w s 平台的高效的c 编译器 和集成开发环境,提供了配置、建立、调试、跟踪和分析d s p 程序的一系列工 具,将复杂的命令行操作集成到了一起,可以方便的进行d s p 程序的编写,调 试和运行,大幅度提高了开发的效率,对于复杂的实时d s p 嵌入式信号处理系 统,更是大大缩短了其开发周期,现在所有t i 公司的d s pj 签片都可以使用c c s 来进行开发。 c c s 主要包含了以下几个部分: ( 1 ) 代码,文本编辑工具 ( 2 ) 集成开发工具,包含c 编译器,汇编器和连接器等一系列工具。 ( 3 ) d s p b i o s 插件 ( 4 ) d s p b i o s 应用模块,主要是提供了大量的a p i 函数 ( 5 ) r t d x 插件,便于与p c 主机进行实时的数据通信。 ( 6 ) 主机接口。 1 4 第二章d s p 程序开筮 圈2 4 c c s 组件结构图 2 1 4 代码和数据的定位 不同于普通的程序开发,d s p 上的程序开发,用户需要对程序和数据进行 手动的绝对定位,这是由采用的文件格式决定的,n 公司c 6 0 0 0 汇编器和编译 器创建的目标文件采用c o f f 的目标文件格式( c o m m o n o b tf i l ef o r m a t ) , 采用c o f f 格式有利于模块化编程,为管理代码段和目标系统存储器提供更加 强有力和灵括的方法。 c o f f 格式的基本思想是在用汇编语言或c 语言编程时,运用代码段和数据 段的概念,其中。段”的概念最为重要。“段”,即为s e c t i o n ,是c o f f 目标 文件中的最小单位。 在c 编译器中,段分为两大类t 已初始化段和末初始化段,除了系统定义 段外,还有用户自己定义的段,在表2 1 中列出了c 编译器中初始化段和末初始 化段中系统定义的部分,用户定义的段可以通过编写c m d 文件来完成,可以用 于对用户程序段和代码段进行定义和定位。c o f f 文件格式包括段头,可执行代 码和初始化数据,可重定位信息,行号入口,符号表,字符串表等。 第二章d s p 程序开发 表2 1d s p 系统设定段 段类型段名 说明 初始化段 t e x t 代码 c i n i t变量初始表 c o n s t常量和字符串 s w i t c h用于大型s w i t c h 语句的跳转表 非初始化段 b s s全局变量和静态变量 s y s m e m 全局堆 s t a c k堆栈 f a r 以f a r 生命的全局静态变量 c l o 用于s t d i o 函数 第二节d s p 程序优化 d s p 系统的软件优化流程如下图所示,整个工作流程分为3 个阶段: 1 6 第二章d s p 程序开发 图2 5 d s p 软件优化流程 第l 阶段,用a n s ic 语言实现算法功能,移植到t m s 3 2 0 c 6 7 1 3d s p 平台 上,并进行程序的初步优化,其中主要包括选择合适的数据结构和数据类型, 降低运算的强度等算法层面上的优化,然后测试程序的运行时间。若不满足要 求,则进入下一阶段的优化。 第2 阶段,利用c 6 0 0 0 编译器所提供的优化方式和各种优化技巧进行代码 优化,如优化器的优化级别选项、使能软件流水、字存取代替半字存取和使用 固化( i n t r i n s i c s ) 函数等方式,对代码进行优化。测试程序的运行时间,如果还 不能满足要求,则进入第3 阶段。 1 7 第二章d s p 程序开发 第3 阶段,将a n s ic 代码中耗时最长或者调用次数最多的部分抽取出来, 使用线性汇编语言重写,用汇编优化器进行优化,测试代码效率,然后确定这 段代码是否需要进一步优化。 2 2 1 算法级优化 2 2 1 1 选择合适数据结构和数据类型 在d s p 上进行程序开发,存储空间的重要性要远远超过在p c 机上进行程 序开发,而且选择合适的数据类型不但可以节约存储空间,同时也可以产生更 小效率更高的代码,对于d s p 程序开发就显得尤为重要。a n s ic 语言提供了丰 富的数据类型,比如字符型、1 6 位整型、3 2 位整型、浮点、枚举、指针、结构 和联合等,要针对程序需要,尽可能使用较小的数据类型来设计数据结构,可 以使编译生成的代码小、效率高。 2 2 1 2 降低运算的强度 d s p 芯片由于含有两个乘法器和6 个运算单元,其对于乘加运算的效率非 常高,所以在程序开发时,应该尽可能将运算转化为运算效率最高的乘法和加 法运算,而减少除法,浮点等复杂运算。主要有以下几种方法: ( 1 ) 使用查表法 用查表法代替一些复杂运算,比如三角函数运算等。特别是在f f t 等程序 中,将一些运行时计算的参数做成查找表或常数数值,这样可以将运行时的计 算转化为编译时的计算,从而提高运算效率。 ( 2 ) 位运算 ,& ,f ,等位运算在a n s ic 语言中具有极高的运算效率,完全可以取代 一些不必要的复杂低效的运算。比如: 除法运算可以使用位右移来实现,同样的乘法也可以采用位左移来实现:n 2 改为n 1 ;n * 9 改为( n 3 ) + n 。 还有取余的运算也可以采用位运算来代替:a 8 改为a & 7 。 在有全集存在的情况下,可以通过位运算来简化一系列数据的表示和运算: 全集s = 0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ;则a = 1 ,3 ,4 ,5 可以简单记为0 ,1 ,0 ,l ,1 ,1 ,o ,o ,因此可以 用二进制数a = 0 1 0 1 1 1 0 0 表示集合a ,仅需一个字节。 可以使用a = ( 0 1 0 1 l l o o ) ,b = ( 1 0 l o l o l o ) 来分别表示a = 1 ,3 ,4 ,5 ,b = 0 ,2 ,4 ,6 第二章d s p 程序开发 两个集合。同时简化一些集合的运算如下: a 并b = o ,1 , 2 ,3 ,4 ,5 ,6 ,a l b = ( 1 l l l l l l o ) a 交b = 4 ,a & b = 0 0 0 0 1 0 0 0 a 补= 0 ,2 ,6 ,7 ,a _ 1 0 1 0 0 0 1l ( 3 ) 减少浮点运算 采用浮点运算定点化可以在d s p 上尽可能避免使用浮点运算,即使c 6 7 1 3 芯片有浮点处理器也要尽可能少的使用浮点数,因为使用浮点变量会使编码尺 度膨胀。同时,浮点数的存储空间是可变的,i e e e 单精度浮点需4 b ,双精度需 8 b ,扩展双精度需1 0 b 。 2 2 2 编译级优化 2 2 2 1 优化相关的编译选项 a l i a s i n g m t 选项,表示在程序中没有使用混迭技术,即用于通知汇编优 化器在程序中不存在存储器的相关性,可是使编译器在无存储器相关性假设下 充分进行代码优化。 o p tl e v e l :0 3 选项用于进行最高级别,文件级别的优化,编译器将尽可能 的采用各种优化方法来对代码进行优化,比如使能软件流水、循环展开和 s i m d ( 单指令多数据流) 等技术,但是在充分优化的同时也可能会带来程序编译 中的错误;0 2 选项是程序级优化,优化级别低一级,相应的也不会编译出错; 一0 1 选项是变量级别优化,优化效果并不明显。 g e n e r a t ed e b u gi n f - g 选项表示在开启- 0 3 选项时程序编译连接就不会出现 错误,但是优化效果就会下降。 p r o g r a ml e v e l :p m 选项表示在工程项目级别上进行优化,将所有文件联合 在一起,去除没有被调用的函数,一直没有变化的变量等以及没有使用的函数 返回值等,用户可以手动进行这一项优化。 o p ts p e e dv ss i z e :m s 0 选项是告知编译器,在优化时不使用冗余循环,用 于减小程序的大小。 s p e c u l a t et h r e s h o l d :一m h n 选项表示在数据内存进行正确数量的填充,保证 正确的执行。 1 9 第二章d s p 程序开发 2 2 2 2 固化函数( i n t r i n s i c s ) c 6 0 0 0 编译器提供了很多固化( i n t r i n s i c s ) 函数,直接映射为内嵌于c 6 0 0 0 汇编指令的特殊函数,可以快速高效的优化a n s ic 语言代码。固化函数都使用 下划线“”开头,调用时如同调用普通函数一样,也具有输入参数和返回值。 对d s p 上的c 语言代码进行编译级优化的第一步就是将程序的函数尽可能 多的使用固化函数来代替,不但可以提高执行效率,同时还由于固化函数不存 在函数调用的问题,还能够让循环体进入软件流水。 2 2 2 3 软件流水 现代的微处理都包含多个独立的部件,对于微处理的每个部件来说,每隔1 个指令周期即可进入一条新指令,这样在同一时间内,就有多条指令交迭地在 不同的单元中进行处理,这种工作方式称为“软件流水”工作方式【5 】。 t m s 3 2 0 c 6 7 1 3d s p 芯片有8 个独立的功能单元,也就是说可以在同一时间最多 达到8 条指令同时执行。 软件流水技术是通过一些循环展开等循环指令的编排,使循环中的多个迭 代运算可以并行执行的方法。在编译c 语言代码时,可以选择编译器的优化级 别选项,编译器将根据程序尽可能地自动安排软件流水,同时开发者也可以手 动进行循环的展开和安排来手工使能软件流水。 a l b l a 2 漉承线填充 c 1 b 2 a 3 d lc 2b 3a 4 e ld 嚷c 3泓a 5 、 循环内核 e 2d 3 ( 7 4 b 5 e 3d 4c 5 e 4 d 5 流水线摊,空j e 5 图2 6 软件流水循环结构 如图2 6 所示为运用软件流水的循环结构,其中阴影部分为“循环内核”, 它表示同一周期内最多执行五次迭代,指令e 1 、d 2 、c 3 、b 4 和a 5 可以并行执 第二章d s p 程序开发 行,在循环内核前执行的过程称为“流水线填充”,循环内核后执行的过程称为 “流水线排空”。由于循环体是程序中占据较多指令周期数的部分,所以应该尽 可能使指令进入循环内核并行执行,来提高效率。 2 2 2 4 数据打包 所谓数据打包,指的是将多个数据捆绑在一起,一次可以进行多个数据的 存取或运算。由于d s p 的数据存取效率相对较低,所以通过尽可能一次性多的 存取数据,充分的利用数据通路的带宽来减少数据的读写次数。比如使用3 2 位 数来存储两个1 6 位数,然后使用固化函数同时完成两组1 6 位数的乘法和加法, 由于乘法和加法的效率远远高于数据的存取效率,所以这样执行的效率比分别 进行两个1 6 位数的存取然后进行乘法和加法速度提高接近5 0 。 2 2 - 3 汇编级优化 虽然通过对c 语言代码的优化可以提高其执行效率,但是有时候c 语言代 码的效率还是远不及汇编代码,尤其是涉及到中断程序,或者需要大量寄存器 的编排的时候c 语言编写的代码效率与汇编语言代码的差距是巨大的。 线性汇编是t i 公司提供的一种特殊的汇编语言,它的指令系统与普通的p c 机的汇编语言的指令系统完全相同,区别是在编写的时候并不需要特殊指定操 作单元和寄存器,也没有必要考虑延时的问题,而且通过使用c 6 0 0 0 提供的特 殊的汇编优化器,可以使线性汇编的效率接近标准汇编,所以它兼有开发时的 高效性和执行时的高效性。 进行代码优化时,将程序中最占资源,调用次数最多,或者没有满足效率 要求的函数取出来,使用线性汇编重写。优化串行代码的效率普遍低于并行代 码,所以开启汇编优化器优化,则汇编器自动安排运行单元,使其尽可能的并 行运行,同时用户也可以自行安排。 2 l 第三幸心音识别在d s p 上的实现 第三章心音识别在d s p 上的实现 心音分析是了解心脏和血管状态的一种重要的手段,多年的研究表明,心 音中第一心音和第二心音包含了心脏和心血管机能的大部分信息,因此对心音 信号中的第一心音和第二心音的识别,可以对心脏和血管系统的辅助诊断起到 重要作用。 本章实现了对心音信号的去噪,包络提取以及第一心音和第二心音的识别 算法,并移植到了d s p 上,进行了代码优化。开发环境为c c s ,在 t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑工程考试常见问题试题及答案
- 自考行政管理的互动式学习方法试题及答案
- 2025年建筑工程考试的关键法则试题及答案
- 2025年文化遗产保护项目资金申请政策研究报告
- 实战练习提升的市政工程考试试题及答案
- 项目管理的组织结构试题及答案
- 2025年公共关系学的实务探索试题及答案
- 湖南2025年湖南省省直事业单位第二次集中招聘笔试历年参考题库附带答案详解
- 河北2025年河北建筑工程学院选聘工作人员笔试历年参考题库附带答案详解
- 武汉武汉市工科院工作人员招聘笔试历年参考题库附带答案详解
- 电厂粉煤灰购销合同
- 注射用A型肉毒毒素-额纹面部皱纹(FWS)量表评分考试
- 《码垛机器人机械手的结构设计》9400字【论文】
- 梁柱加固施工方案
- 排水管道闭水试验施工方案
- 建筑施工环境影响评价报告
- 科技公司简介范文
- 《C语言程序设计》教学设计 项目四量化生活数字为先
- T-CSOE 0003-2024 井下套管外永置式光缆安装要求
- 军人生死观教育
- 农业产业布局规划
评论
0/150
提交评论