xd翻译成稿
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
齐 齐 哈 尔 大 学 外文翻译成稿 学 院 通信与电子信息工程学院 专业班级 电子064 学生姓名 徐 丹 指导教师 董 亮 成 绩 齐齐哈尔大学毕业设计(外文翻译成稿) 一种实时小波变换计算的SOPC核结构在工业中的应用 摘要——小波变换已经被应用在很多领域,从图像处理到通信技术。本文介绍了以SOPC为核心输入信号为小波变换计算的设计和实现。这个核可能被连接到其他类似内核以执行上级的小波变换中。由于其灵活性,本文所阐述的电路可嵌入SOPC中,因此而建立的数字系统用低成本FPGA的硬件资源,实时计算一个相当复杂的行动,且获得的结果可被SOPC系统中其余的核所利用。在数据处理这一核心方面取得的成果使小波变换计算,甚至是高速信号,包括以SOPC为核心的更高级别的操作成为可能,如数据压缩,脉冲检测等。 一 引言 在过去几年中,小波变换在信号处理的重要性急剧增加,而此转换应用中可以采用的数量也相应增加。从图像压缩[1]在雷达脉冲检测[2]或在电力系统中的扰动检测[3],在这个数学变换的领域,通常可应用于需要在相对较短的时间内高速率数据信号处理。然而,小波变换的结构要求输入信号中有一些复杂的算术操作(例如乘积),其中强调小波变换计算必须在输入信号数据速率相同的系统中以实时方式进行。 在可编程器件领域发展的最近几年,复杂的数字时钟设计中高速率的实施允许采用低成本器件。这些装置最有前途的特点之一是集成了大量的可编程硬件资源,可用于实现两个数字信号处理单元和插入现成的组件(在这种情况下被称为核),如微处理器,内存控制器等,以整合整个数字系统。由于整个系统是在单个芯片上实现的,这些设备被称为可编程片上系统(SOPCs)[4,5]。 本文介绍了以SOPC为核心,输入信号为小波变换的计算的设计和实施。这个核可以嵌入在SOPC中,以这种方式构建的数字系统,能够计算相当复杂的实时操作,且使用成本低廉的硬件资源FPGA,获得的结果可被SOPC系统中其余的核所利用。这个核使得在这些设备上建立一个完整的SOPC成为可能,能够计算一个完整的基于SOPC的小波变换和将这一计算结果用于执行诸如数据压缩和脉冲检测等更高一级的业务。 在SOPC中所有元素的互连要求有该共享信号和所有元素的功能总线定义。虽然标准定义不同,联网计划为这个核的选择是横臂接口[6]。本文介绍的电路是一个基于SOPC的横臂核。 本文的其余部分安排如下。第二节介绍小波变换算法和计算这一数学操作最常用的架构。然后,在第三节中我们描述了实现小波变换横臂核,硬件结构的使用,有计算小波变换和连接这一核到横臂总线的体系结构。第四节讨论了在计算的准确性和硬件资源的使用性上,实施所取得的成果。在最后,第五节介绍了这项工作的结论。 1 齐齐哈尔大学毕业设计(外文翻译成稿) 二 小波变换算法 离散小波变换(DWT)构成的滤波有两种不同的FIR滤波器输入信号:g[N] (低通滤波器)和h[N](高通滤波器)。因此,输入信号包含低频和高频成分。为了减少这两个组件的冗余信息,为过滤器的输出值降低采样率,我们只使用每两个样本之一。因此,整个系统的数据传输速率保持恒定(输入信号分为两个不同的输出信号,它们都有一半的初始数据速率)。 图2-1为小波变换算法框图。虽然结构图中显示了对应算法的直接执行,但实际不会这样执行。其原因也是性能优化的主要理由:这两个输出信号降低了采样率,因此可以减少计算输出值,而不会将操作的数目丢弃。因此,如果我们假设,仅仅需要样本,任何滤波器的输出样本(低通或高通)将如下: h[n] H(z) G(z) ↓2x ↓2x low[n] high[n] 图2-1 小波算法的框图 y0h0x0h1x1zy2h0x2h1x31zy4h0x4h1x5z1h2x2zh2x4zh2x6z2 1212. . . (2-1) x[n] Heven(z) ↓2x Geven(z) z1 Hodd(z) ↓2x Godd(z) 图2-2 多相实施的框图 公式(2-1)表明为了获取输出信号,偶数输入样品只乘以偶数系数,奇数输入样本只受奇数系数影响。因此,最初的h[N]滤波器可分为两个较小的滤波器,一个包含偶系数,一个包含奇系数。如果输入数据被分为奇数和偶数组件(即采样操作前过滤),由此产生的系统按照要求,将原有一半的乘法数进行运算。该算法被称为小波变换多相 2 齐齐哈尔大学毕业设计(外文翻译成稿) 表示法[7]。请注意虽然输出样本数量已经减少,可这个操作在硬件上的实现,仍需用到原有操作量使用的乘法器和寄存器。图2-3显示了:新的滤波器的秩序是原有秩序的一半,由于我们现在有四个过滤器,故硬件的复杂性并没有变化。然而,由于这些输入数据的过滤率是原来的一半,在执行方面所面对的压力要低得多,因为乘数器和加法器有更多的时间来完成他们的操作。 在多相算法中得到的结果用矩阵方程表示为: low[n]Heven(z)high[n]Geven(z)x[n] Hodd(z)11Godd(z)z (2-2) ↓2x a0 a1a1 aMaM1 z1 a0 ↓2x z1 1 z1 图2-3 实施框图 包含偶数和奇数组件的h[n]和g[N]滤波器的矩阵称为多相矩阵,也可表示为乘积的矩阵[8,9]。图3所示的体系结构可以被实现。这一次硬件储备更为明显:寄存器数目减少,现在它们中产生的结果很相似[10]。在这种情况下,两个滤波器(高通和低通滤波器)共享相同的延迟单元,结果的执行也可能采取这样一个优势,两个滤波器的常量结果非常相似(除了标志)。 三 电路描述 1. 小波变换计算 对这个小波算法的实现所需选择的架构基于以下原则: (1)两种滤波器(h[n]和g[n])具有相同的长度,因此该系数(L)相同。 (2)输出信号必须降低采样率,从而降低了输出样本数量的计算。 (3)滤波器系数按公式3相互关联: g[L1n](1)nh[n] (3-1) h [n]和g[N]滤波器中相同系数的共享,使两滤波器共享它们的延迟单元,只有乘法器和加法器须为滤波器的实施而反复执行。正如上一节所述,在不同体系结构的最终采样操作中,小波算法被用于降低电路的复杂性:因为我们有两个采样周期来计算两个滤波器的输出值,我们使用第一周期计算输入信号的低通元件部分,重复使用相同的硬件 3 齐齐哈尔大学毕业设计(外文翻译成稿) 元件,使用第二期计算高通元件部分。但是由于两个滤波器不同,其系数也将不同,因此,在一些其他的解决办法中要求硬件重用是被允许的。此处的主要问题是与系数间的关系(见公式 (3-1)):一半是重复,而另一半恰好是相反数。因此,对N阶滤波器来说,我们仅需要N不断地被乘,N路多路复用器和N2信号改变电路。 如图3-1所示,四阶滤波器小波电路的实现框图。不断地输入不同的乘数取决于所期望的输出(低通或高通组件)。有限状态机控制着信号的选择和分享所有硬件操作。寄存器用于存储信号的低通部分,而高通部分用于输出计算值。因此,这两个信号,可同时在系统的输出获得。 x[n] 1z z1 z1 z1 -1 -1 h[0] h[1] h[2] h[3] 图3-1 四阶小波滤波器结构框图 该体系结构如图3-1,当只要求延迟N – 1个单元,采用N次实施延迟N个单元。然而,添加最后的延迟单元,以提高整个电路的速度性能。因为计算低通部分和高通部分使用相同的硬件资源,他们不能在同一时钟周期同时得到。如果仅使用N – 1个延迟单元,在该系统中每个输出样本将需要两个时钟周期来计算(每个组件之一),最大输入采样率将达到系统时钟的一半。然而,在最后加入一个新的延迟单元,电路可以在第一个周期计算低通组成部分,而在第二个周期计算高通部分,即使输入数据率等于时钟频率,这种体系结构允许使用高速的输入信号。考虑到这一点,为得到系数为h [N]的输入样本,将通过x[n]个低通元件和x[L - n]个高通元件。 图3-1显示了关于多路复用器的使用,当过滤器的顺序是2的倍数,不需要使用多路复用器。其原因是n次多路复用需要两种不同的信号:x[n]和x[L - n]。对于某些复用器nL2,输入信号要求有相同的系数。然而,要完全一样,在方程3中(1)n组成部分必须是正的,这需要n是偶数。 2. 横臂核 4 齐齐哈尔大学毕业设计(外文翻译成稿) 前段中小波变换的计算电路中提供了一个横臂接口,为SOPC设计提供了充分的连接。这个核的主要特点如下: (1)横臂的连接,可使电路连接到SOPC平台。因此,任何其他电路(如微处理器)都可控制小波变换的计算,并读出结果以执行更复杂的任务,如数据压缩,故障检测等。 (2)除了被要求的信号实施横臂连接,这个核拥有自己的输入和输出的信令协议,通过级联相似的模块以实现更高次小波变换计算电路。因此,用户可以得到任何所需的结果(在时间和频域),只要将核复制几次。 (3)FIFO存储器已添加存储两个滤波器的输出,允许核独立工作,直至整个小波变换计算完成。为了使这一计划更实际,当FIFO存储器被完全填满时,电路产生一个中断请求信号通知外部设备。 级联小波变换核要求输入和输出的数据同步:如每个小波变换阶段引入的采样操作,当每个小波输出数据速率是输入数据速率的一半时为小波计算核。此外,使用相同的硬件资源计算两个输出(高通和低通滤波器),在某些时刻的输出部分可能包含无效数据。为了解决这一问题,当一个新的输入抽样可用时,小波核中的输入信号必须是正的。这种脉冲只会持续一个时钟周期并且是定期的。在最坏的情况下,系统的每个时钟周期接受一个新的样本,那么系统将始终保持这个控制信号。为了控制其他小波变换内核,该电路还提供了一个输出信号,只有这个信号是正数时,两个过滤器才输有效的数据。 存储器中存储的结果,允许外部电路忽略整个数据的计算过程:小波变换计算被触发后,在存储器中,核将简单地存储结果作为它们所获得的,当这个进程结束时产生一个中断信号。按顺序保存结果,小波变换的低通部分保存在存储器的低位,高通部分保存在存储器的高位,公约为小波系数。 小波计算的另一个关键操作是触发转换。由于没有数据必须被配置去执行此操作(所有重要数据,例如缓冲范围,抽样位数等等,在安装前嵌入SOPC核),不需要输入控制寄存器执行此操作,对此我们已经有了公认。 四 结果 本文所描述的电路已在Spartan3的FPGA(XC3S200)[11]中被编译和实现。在本节中,我们将分析电路的行为,比较在硬件资源和速度方面理论电路和实际电路产生的结果。 1. 算法检查 5 齐齐哈尔大学毕业设计(外文翻译成稿) 这一步骤的主要目标是建立一个精确的需求,通过小波变换核而提供出接近理论的结果。在系数的近似上存在小误差,(通常系数若是分数数据,用纯硬件资源计算时将转变成整数数据)累积是不同阶段滤波器的产物,从而导致输出信号出现很大的误差。因此,一个好的系数近似值将减少错误的产生。然而,数据位数的提高同样存在着缺陷。数据越大将耗损更多的硬件资源,如数据存储、执行乘法器、加法器和一些算术操作数。 滤波器的执行,我们选择了4阶Daubechies系数1432,3423,34313[12]。,242虽然这个核可被用于执行不同范围的滤波(如Haar,Daubechies17等),选择滤波器需用足够长的时间去测试电路的灵活性和精确性。在测试这个算法时,不同的输入信号被使用,但为简洁起见,在本文中我们只叙述一个大幅削减正弦波所获得的结果。 图4-1表明理论结果和第1阶段8位与12位精度的小波转换实际结果。从这些波形中得到的结论是,仅使用8位精度的滤波器不能充分反应小波变换。当出现高频扰动会提升错误(见低通滤波器的结果,存在一刀切现象),在高通滤波中输出信号必须提供一个小的输出信号。不过数位的增强,使理论与实际结果存在的差异减少,12位精度适合这个特定应用。 图4-1 理论信号与8位和12位精度电路的产生的输出的比较 6 齐齐哈尔大学毕业设计(外文翻译成稿) 表4-1 不同理论精度和实际产生的平均误差 Precision Error LPF ErrorHPF 8bit 0.034650 0.028584 12bit 0.0030834 0.0018604 16bit 0.00090254 0.00012236 表4-2 配置不同小波变换核的执行结果 Implementaiton Slices 4 input LUTs Multipliers BRAMs Equiv.GateCount Max.Clock Freq 16bit(Specific) 107(5%) 151(3%) 4(33%) 1(12%) 83,770 52.7MHz 12bit(Specific) 85(4%) 119(3%) 4(33%) 1(12%) 83,290 52.9MHz 8bit(Specific) 69(3%) 83(2%) 4(33%) 1(12%) 82,726 60.0MHz 16bit(Generic) 1,149(59%) 1,119(29%) 0(0%) 0(0%) 77,092 37.7MHz 12bit(Generic) 828(43%) 787(20%) 0(0%) 0(0%) 57,090 44.8MHz 8bit(Generic) 524(26%) 438(11%) 0(0%) 0(0%) 37,082 59.2MHz 表4-1显示了在不同精度的电路中获得的平均误差。当我们使用更多的位来表示数字时,平均误差减少。由于误差是由绝对误差计算出来的,低通滤波器(LPF)的值大于高通滤波器(HPF)的值。在分析结果后,最适当的解决方式似乎是采取12位精度,因为它保持的平均误差较低,同时不会过多增加电路复杂性。 2. 综合结果 本文描述的小波变换核已被合成在Xilinx Spartan3的FPGA(XC3S200),这是一个低成本的可编程器件。由于设备内部结构的不同,文件阐述的电路根据系统要求以不同方式落实。在这些设备的可用硬件资源中,小波变换核的实施需要的相应设备如下: (1)硬件乘法器: FPGA有1218位×18位乘法器。使用这些模块将节省通用逻辑阵列的空间,也可被SOPC中的其它模块执行。 (2)RAM块: XC3S200器件中有12块RAM存储器,是18千位的双端口存储模块。这些存储器是专门用来存储小波变换执行结果的缓冲区。 当然在这个特殊的FPGA中,某些可用资源的或是不得用于其它设备,或是存在不同的特征。因此,为了使其应用扩展到所有的平台,我们采用没有特殊功能的且精度不同的电路。表4-2显示了所有硬件架构的实施效果。在标有“特定”字样的硬件架构的实施中,已创建的可用资源在目标FPGA中,且有可能无法在其他装置中应用。另一方面,在标有“通用”字样的硬件架构的实施中,只用到通用逻辑器。观察类似方法的 7 齐齐哈尔大学毕业设计(外文翻译成稿) 执行和不同数字精度的演变,我们认识到高精度电路一般是大规模电路(需要更多的硬件资源)且数据计算率较慢(造成电路慢)。 对通用和特定方法进行比较,我们可以看到FPGA中特定硬件资源产生的作用。在这个特定的做法中,大量的目标资源(单片和LUTs)的使用低于通用方式。最主要的原因是,大多区域中核组件(即乘数器和存储器)未被占用,因为它们一直被特定模块实现。大多复杂性电路有一点奇怪的现象,当特定硬件被使用时,若以相等的门数作为衡量,执行时所用到的其他资源很少。在这种情况下,所有的乘法器和存储器有完全一样的大小(根本原因是它们有灵活的模块:18位存储器和18千位存储器),即使抽样范围改变,硬件仍保持不变,尽管局部的乘法器和存储器不被使用。 表4-2还显示了最小和最快的实施方法是采用8位精度。然而,正如前面已经指出的,在输入信号为小波变换的计算中若引入8位精度存在明显的错误。想更准确地执行,最好采用12位精度的做法,并且带有嵌入式乘法器和RAM模块、低成本FPGA通用资源的4%、片外可用资源,如微处理器积分器和其它外设。在这种情况下,时钟的最大频率为52.9MHz,而本文描述的小波变换计算电路每个时钟周期处理的输入样本的数据速率为634.8Mbit/s。 五 结论 本文介绍了基于横臂核的输入信号为离散小波变换计算的设计和执行情况。在此实施中使用了已优化的硬件资源,硬件架构是基于与高通和低通滤波器密切相关的系数。因此仅有一半的乘法器被要求使用,该电路能够用于在相同抽样率中输入信号为小波变换的计算。因此,在低成本FPGA中,该电路处理信号的能力高达52.9MSample/s。 SOPC总线的使用,使电路与复杂数字系统的互连成为可能,增加了这个核的应用领域范围。因此,微处理器可处理小波变换触发的计算,其结果可用于检测应用或遥测技术应用,如将已压缩的输入信号发送到另一个位置。这个灵活的输入信号接口,可为任意预期的数量而轻松地调整输入采样率(小于计算的最大允许量)。电路提供了一个中断请求信号,它可能是有益的、甚至是非常缓慢的信号,微处理器可能直到整个过程完成才停止。 在对硬件资源的使用中,本设计的实现使用低成本的FPGA即可,微处理器和其他外设仍可占用硬件资源,基于SOPC的计算方式使控制应用在设备上执行成为可能。 8 本文来源:https://www.wddqw.com/doc/97199dfa83eb6294dd88d0d233d4b14e85243e64.html