《定点参考独立分量分析算法的fpga实现-王佑锋.docx》由会员分享,可在线阅读,更多相关《定点参考独立分量分析算法的fpga实现-王佑锋.docx(58页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、大连理工大学 硕士学位论文 定点参考独立分量分析算法的 FPGA实现 姓名:王佑锋 申请学位级别:硕士 专业:电路与系统 指导教师:林秋华 20081201 摘 要 参考独立分量分析 (independent component analysis with reference, ICA-R)是一种半 盲分离算法。它将源信号的部分先验知识以参考信号形式引入到传统 ICA算法中,从而 在一定的量度下只抽取与参考信号最为接近的期望源信号。由于利用了部分先验信息, ICA-R算法在解决分离信号顺序不确定性、提高分离效率和分离性能方面均优于传统全 盲 ICA,在语音分离、功能磁共振成像信号分析等方面取得
2、了良好的应用结果。 然而, ICA-R算法的计算复杂度较大,分离速度还难以达到实时性要求,限制了其 在实际中的应用。为此,有人提出了定点 ICA-R算法,在算法层面减小了计算复杂度, 但与实时分离仍有差距。考虑到硬件实现能为算法提供一个理想的并行运行环境,从而 更加有效地解决实时性问题,本文在比较了通用处理器、 DSP、 ASIC和 FPGA等几种 硬件实现方案后,择优选择了基于 FPGA实现定 点 ICA-R算法的硬件实现方案。 本文主要的研究工作有: ( 1)比较了 FPGA的传统设计方法和基于 DSP开发平台的 现代设计方法,选取了后者并熟悉了 MATLAB /Simulink和 Sys
3、tem Generator等开发环 境。 ( 2)研究了定点 ICA-R算法的原理、主要功能和分离过程,依照算法的流程进行了 功能模块划分,主要包括输入模块、解混模块、判断模块、权向量更新模块和输出模块。 (3)基于 MATLAB/Simulink和 System Generator, 对各个子模块分别进行了 FPGA设计 实现。其中,权向量更新模块的非线性函数实现影响算法精度,本文研究并使用了査找 表和分段线性逼近等两种方法加以实现,并分析比较了两种方法的优劣。 ( 4)加入了时 序调整电路和循环控制电路,连接各个模块,完成了整个算法设计。( 5)进行了细致的系 统仿真,分析了仿真结果。为了
4、验证 FPGA实现的定点算法性能,使用了正弦循环信号 和语音信号等不同的源信号及其随机混合信号做了大量的仿真试验,并将仿真结果与 MATLAB环境下得到的仿真结果进行了比较与分析,结果表明了本文设计的有效性。 关键词: FPGA; ICA-R; System Generator;非线性函数 FPGA Implementation of Fixed-point ICA-R Algorithm Abstract Independent component analysis with reference (ICA-R) is a semi-blind source separation algori
5、thm. It incorporates some prior information about the sources into the conventional ICA to extract the desired sources under some measurements. Compared with traditional ICA, ICA-R outputs only signals of interest in a predefined order, provides much improved performance and has fast convergency spe
6、ed by using a little prior information. It has been efficiently applied to many fields such as speech processing and fMRI (functional magnetic resonance imaging) data analysis. However, the computation complexity of ICA-R discourages its time sensitive application. As such, fixed-point ICA-R algorit
7、hm is given to reduce the computation complexity of ICA-R at the arithmetic level. However, the fixed-point ICA-R algorithm still cannot meet the requirement of real-time separation. It is well known that hardware implementation of an algorithm provides an optimal parallelism environment, and thus c
8、an provide faster and real-time solutions. After comparison with general-purpose processor (GPP), DSP and ASIC, we chose FPGA to implement fixed-point ICA-R algorithm. The main works of this thesis are as follows. (1) described traditional design technique and DSP-based implementation platform techn
9、ique, the second technique is used and MATLAB/Simulink and System Generator are accordingly studied. (2) briefly introduced the fixed-point ICA-R algorithm, and classified the algorithm into five modules, which were input module, unmixing module, weight vector updating module, judgment module, and o
10、utput module, respectively. (3) designed each of five modules based on FPGA. To efficiently implement the nonlinear function in the weight vector updating module, we presented and compared two approaches, one was to construct a look-up table (LUT)? the other was to use the piecewise linear approxima
11、tion. (4) a大连理工大学学位论文独创性声明 作者郑重声明:所呈交的学位论文,是本人在导师的指导下进行研究 工作所取得的成果。尽我所知,除文中已经注明引用内容和致谢的地方外, 本论文不包含其他个人或集体已经发表的研究成果,也不包含其他已申请 学位或其他用途使用过的成果。与我一同工作的同志对本研究所做的贡献 均已在论文中做了明确的说明并表示了谢意。 若有不实之处,本人愿意承担相关法律责任。 学位论文题目: 定点参考独立分量分析算法的 FPGA实现 大连理工大学学位论文版权使用授权书 本人完全了解学校有关学位论文知 识产权的规定,在校攻读学位期间 论文工作的知识产权属于大连理工大学,允许论
12、文被查阅和借阅。学校有 权保留论文并向国家有关部门或机构送交论文的复印件和电子版,可以将 本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、 缩印、或扫描等复制手段保存和汇编本学位论文。 学位论文题目: 定点参考独立分量分析算法的 FPGA实现 _ 作者签名: 之么蛑 曰期: _1_年 _12_月 1曰 导师签名: 日 期 : 年 吖 月 “ W日 1 绪论 这一部分主要介绍本文的研究意义、数字信号处理算法硬件实现的常用技术,以及 论文的主要研究内容及结构安排 。 M课题的意义及研究现状 本课题研究来源于国家自然科学基金 (60402013)和辽宁省自然科学基金 (2006217
13、4)。 独立分量分析 (independent component analysis, ICA) 又被称为盲源分离,是指在不 知道源信号的分布类型和混合参数的情况下,仅利用源信号的混合信号去恢复源信号的 各个独立成分。通常,观测信号来自一组传感器,每个传感器的接收信号是源信号的不 同组合。 ICA的特有优势在于,它能在源信号和传输通道参数均未知的情况下分离源信 号。因此, ICA己成为信号处理领域的一个研究热点,并广泛应用在无线通信 2、生物 医学 3、语音和图像处理 4 5等许多领域。 但是,由于不利用源信号的先验信息, ICA算法通常以分离所有的源信号为目标, 而且分离的多个输出信号存在顺
14、序不确定问题 6。实际上,源信号的大致信息客观存在, 如语音信号的基音频率信息已知。于是,人们研究了在 ICA算法基础上应用源信号部分 先验信息的半盲分离方法 7,并进一步改善了 ICA性能。 目前,半盲分离算法较多。其中,参考独立分量分析 (ICA with reference,ICA-R)算 法 7优势明显。 ICA-R将源信号的部分先验知识以参考信号形式引入到传统ICA算法 中,从而在一定的量度下只抽取与参考信号最为接近的某个或某些期望的源信号。因此, 该算法不但能解决分离信号的顺序不确定问题、提高分离效率(仅输出感兴趣信号 ) , 而且能进一步提髙 ICA分离性能。 基于这些性能优势,
15、 ICA-R算法将成为是实际信号分离的首选。然而,以 ICA-R算 法目前的计算复杂度,其分离速度还难以达到实时性要求 。为此,文献 10提出了定点 ICA-R算法,在算法层面减小了计算复杂度。考虑到硬件执行能为算法的实现提供一个 理想的并行运行环境,可以有效解决实时性问题,本文将在硬件上实现定点 ICA-R算法, 以期进一步提高算法的分离速度,实现实时的信号分离。 目前实现数字信号处理算法的常用技术主要有: (1) 通用处理器实现 现在己经有大量的信号处理算法在通用处理器上快速实现。然而通用处理器作为 CPU, 需要完成大量的控制任务和管理任务,使得硅片中大量面积被通讯与控制电路占 用,大量
16、耗时的数学运算只集中在小面积的硅片上执行。另外,通用处理器是基于传统 的冯诺依曼结构设计的,决定了其指令只能串行执行。这些导致了通用处理器实现算法 的运算效率相对而言仍比较低。 (2) DSP处理器实现 DSP处理器是一种面向高速信号处理的专用微处理器。它的突出之处在于 , DSP不 再采用传统处理器的冯诺依曼结构,而是采用了哈佛结构,程序存储器和数据存储器分 开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行 独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,流水线操作,大大地 提 高了数据处理能力和指令的执行速度。但是,基于 DSP的硬件实现成本高,且系统集
17、 成度也不够高。 (3) ASIC 实现 通常认为,当处理器的结构最佳地匹配了算法的结构时,算法的实现效率才是最髙 的。因此,对数字信号处理算法采用并行流水的阵列处理结构才是最佳方法,并且不同 的算法对应不同的结构, .尽管它们在整体上都具有流水、并行的特征。 ASIC技术就是 针对算法的特点采用了流水并行处理的结构,因此它能够最大程度地提高算法的运算速 度,即克服了传统微处理器串行执行的工作模式,采用脉动阵列处理器作为基本处理单 元,并以高度并行流水的方式作业,从而大大提高了算法的执行速度和效率。但是,专 用处理器带来的不足也很明显。首先,它不具备通用处理器及 DSP处理器的可编程性 及由此
18、带来的灵活性;另外,ASIC开发费用过高、周期较长,尤其是算法得到改进时 , 必须付出昂贵的代价。 (4) FPGA 实现 FPGA是 ASIC家族中的一个分支,属于可编程逻辑器件。 FPGA实现算法主要有 以下几点优势: 1)FPGA非常适合于各种算术运算,包括含有大量乘加运算的数字信号 处理算法。用 FPGA设计数字信号处理算法系统时,可以利用并行结构和算术运算 的优 点,充分利用硬件资源,并在性能上超过 DSP器件。在现有的数字信号处理算法实现 方案中,利用 FPGA中阵列乘法的分步式运算,可以将数据带宽和吞吐量提高几个数量 级。 2)相对通用处理器而言 , FPGA可以由设计者根据算法
19、的内在结构设计合适的处理 阵列,避免串行执行指令的低效。 3)相对 ASIC而言,釆用 FPGA可避免初期巨大的开 发投资,同时拥有微处理器的通用性和灵活性。在算法修改时,短时间内就将新的算法 付诸实际。在算法成熟且应用量大时,可将 FPGA设计转化为 ASIC实现。因此,利用 FPGA实现数字信号处 理算法方便、快捷,是硬件快速设计实现的最佳选择。 根据文献报道, FPGA已经被有效应用到 ICA算法的实现中。例如, Lim等人利用 Xilinx Virtex XCV812E设计完成了两个基于互信息最大化与输出散度最小化的独立分 量神经网络算法 11; Sattar和 Charayaphan
20、在 Xilinx Virtex E上设计实现了信息最大化算 法 1215:1 111等人在 AlteraEP20K600E上实现了信息最大化和自适应噪声抵消的组合算 法,用于最小化源信号和噪声间的熵 近年来,随着 FPGA技术的快速发展,有关 ICA 算法硬件实现的文献不断涌现 119,但 ICA-R算法的硬件实现方面未有报道。为此,本 文针对一单元定点 ICA-R算法给出 FPGA硬件实现方案。 1.2本文主要研究内容 根据上述设计目标,本文主要进行了以下内容的研究: (1) 比较了 FPGA的传统设计方法和基于 DSP开发平台的设计方法,选取了本文的 设计方法一基于 DSP开发平台的新设计
21、方法;熟悉了 MATLAB/Simulink开发环境,以 及 System Generator 开发平台。 (2) 研究了定点 ICA-R算法的原理、主要功能和分离过程,依照算法的流程进行了 功能模块划分,主要包括输入模块、解混模块、判断模块、权向量更新模块和输出模块。 (3) 基于 MATLAB /Simulink和 System Generator, 对各个子模块分别进行 FPGA设 计实现。其中,权向量更新模块的非线性函数实现影响算法精度,本文研究并使用了査 找表和分段线性近似等两种方法加以实现,并分析比较了两种方法的优劣 。 . (4) 添加控制电路,连接各个模块,完成了整个算法系统的
22、设计。由于算法复杂度 较高,使用的循环变量较多,故加入了时序调整电路和循环控制电路,以保证整个系统 正确有序地运行。 (5) 进行了系统仿真,分析了仿真结果。为了验证 FPGA实现的定点算法系统的性 能,使用了正弦循环信号和语音信号等不同的源信号及其随机混合信号做了大量的仿真 试验,并将仿真结果与 MATLAB环境下得到的仿真结果进行了比较与分析,给出了相 应的分析结果。 1.3论文结构安排 本文的具体结构安排如下: 第一章绪论 9主要介绍课题的来源、研究意义和研究现状,数字信号处理算法的 几种实现方法及其优缺点,最后对本文的主要研究内容以及文章结构进行了简述。 第二章 FPGA概述。介绍 F
23、PGA结构原理、发展现状以及应用前景,接着介绍了 FPGA设计方法,包括传统的设计方法和基于 DSP开发平台的设计方法,最后介绍了 FPGA设计工具。 第三章参考独立分量分析算法。简要介绍了独立分量分析算法和参考独立分量分 析算法,以及参考独立分量分析算法和定点改进,并进行了定点改进算法实现的功能模 块划分。 第四章定点参考独立分量分析算法的 FPGA实现。在 MATLAB/Simulink环境下 , 利用 System Generator开发平台对定点参考独立分量分析算法的各个功能模块分别进行 实现,并最终完成了整个算法系统的实现。 第五章电路仿真及结果分析。分别使用正弦循环信号和语音信号与
24、不同噪声信号 的随机混合信号作为输入信号,对所实现的系统进行了仿真,计算了分离结果的信噪比 , 并将仿真结果与 MATLAB仿真结果进行了比较和分析。 最后,在结论部分对全文进行了回顾和总结,并指出了下一步的相关研究工作和需 要注意的问题。 2 FPGA设计概述 本章简单介绍 FPGA的发展应用、结构原理、设计方法以及设计工具。 2. 1 FPGA发展及应用 随着微电子设计技术与工艺的发展,数字集成电路从小规模集成电路 (SSI)、 中规模 集成电路 (MSI)、 大规模集成电路 (LSI)、 超大规模集成电路 (VLSI)逐步发展到专用集成 电路 (ASIC)。 ASIC的出现降低了产品的生
25、产成本,提高了系统的可靠性,缩小了设计 的物理尺寸,但是 ASIC因其设计周期长,改版投资大,灵活性差等缺陷制约着它的应 用范围。硬件工程师希望有 一 种更灵活的设计方法,在实验室就能设计、更改大规模数 字逻辑,研制自己的 ASIC并马上投入使用,这就提出了可编程逻辑器件的基本思想。 可编程逻辑器件随着制造工艺的发展取得了长足的进步。从早期的只能存储少量数 据、完成简单逻辑功能的可编程只读存储器 (PROM)、 紫外线可擦除只读存储器 (EPROM) 和电可擦除只读存储器 (EEPROM), 发展到能完成中大规模的数字逻辑功能的可编程逻 辑阵列 (PLA)、 可编程阵列逻辑 (PAL)和通用阵
26、列逻辑 (GAL)。 以及可以完成超大规模复 杂组合逻辑与时序逻辑的复杂可编程逻辑器件 (CPLD)和现场可编程门阵列 (FPGA)。 1984 年 Xilinx 公司发明了 FPGA,并陆续推出了 XC2000, XC3000, XC4000,XC6200 等一系列 FPGA芯片。 FPGA通常包含三类可编程资源:可编程逻辑功能块、可编程 I/O 块和可编程内部互连。可编程逻辑功能块是实现用户功能的基本单元,它们通常排列成 个阵列,散布于整个芯片;可编程 I/O块完成芯片上逻辑与外部封装脚的接口,常围 绕着阵列排列于芯片四周 ; 可编程内部互连包括各种长度的连线线段和 一 些可编程连接 开关
27、,它们将各个可编程逻 辑块或 I/O块连接起来,构成特定功能的电路。 电路设计工程师设计一个电路首先要确定线路,然后进行软件模拟以及优化,以确 认所设计电路的功能及性能。然而设计规模不断增大,工作频率不断提高,给电路引入 许多分布参数的影响,而这些影响用软件模拟的方法较难反映出来,所以有必要作硬件 仿真。FPGA就可以实现硬件仿真以做成模型机。将软件模拟后的线路经过一定处理后 下载到 FPGA,就可容易地得到一个模型机,设计者就可以很直观地测试其逻辑功能及 性能指标。不同厂家生产的 FPGA在可编程逻辑块的规模、内部互连线的结构和采用 的 可编程元件上存在较大的差异。较常用的有 Xilinx、 Altera和 Actel公司的 FPGA。 目前,可编程逻辑器件已在以下领域得到了广泛应用。 (1) 通信领域。现代通信系统也正朝着功能更强、体积更小、速度更快、功耗更低 的方向发展,而 FPGA/CPLD在集成度、功能和速度上的优势正好可以满足现代通信系