实现fft/ifft变换的电路及方法

文档序号:6442348阅读:1178来源:国知局
专利名称:实现fft/ifft变换的电路及方法
技术领域
本发明涉及一种信号处理技术,特别是涉及一种用于对生物医学信号实现FFT/IFFT变换(快速傅立叶变换/快速傅立叶逆变换)的电路及方法。
背景技术
近年来,随着微电子技术和医疗电子行业的发展,以及全球老龄化社会的到来,新技术新思想(例如,processing on node技术)的产生,便携式、植入式、穿戴式等一系列便携式医疗电子产品受到广泛的关注。这些产品的主要特征是小型化、智能化、高集成度和电池供电,所以其面积和功耗对产品性能影响很大。而且这些产品需要具有能在节点处理的能力,即,把采集的信号在节点实时处理之后,再发送出去的能力。许多重要的生理信号(例如:EEG、)在频域反应出信号的特征,所以,频谱分析是很重要的一个环节。对于进行频谱分析,就要对生理信号进行FFT/IFFT变换处理。现有的实现FFT/IFFT变换的方式主要有两种,一种实现方式是基于软件的实现方式,即将采集到的生理信号发送到PC机上,在PC机上利用软件而进行处理,但是这种基于软件的实现方式存在着占用指令周期长、吞吐量小、可扩展性差等等的缺陷。而另一种实现方式是基于硬件的实现方式,例如采用数字信号处理单元(Digital Signal Processor,DSP)、现场可编程门阵列(Field Programmable Gate Array, FPGA)和专用集成电路(Application Specific Integrated Circuit, ASIC)。其中,数字信号处理单兀 DSP 具有乘法加法单元,其实现FFT/IFFT变换灵活、方便,但是其计算能力有限,不适合超长点数的计算。现场可编程门阵列FPGA的计算速度难以提高、功耗大,且其不适合量产。而专用集成电路ASIC的速度快、功耗低。也就是说,现有的基于硬件的实现方式中,有些是集中于计算速度的提高,有些是集中于精度的提高,有些是集中于功耗的降低,有些是集中于面积的减少,其都没有同时考虑这些因素。因此,目前亟需提出一种新的实现FFT/IFFT变换的电路及方法,以克服上述缺陷。

发明内容
本发明的目的在于,克服现有技术的缺陷,提供一种实现FFT/IFFT变换的电路及方法,其功耗低、面积小、可扩展性好以及实时性好,利于进行生理信号的处理。本发明的目的及解决其技术问题是采用以下技术方案来实现的。本发明提供一种实现FFT/IFFT变换的电路,其包括控制信号产生单元、蝶形结构单元、数据存储单元、旋转因子存储单元和地址生成单元。其中,该控制信号产生单元连接该蝶形结构单元、该数据存储单元、该旋转因子存储单元和该地址生成单元;该数据存储单元用于接收数据序列的输入,并输出结果数据;该旋转因子存储单元用于存储旋转因子;该地址生成单元连接该数据存储单元和该旋转因子存储单元,以为该数据存储单元和旋转因子存储单元提供地址;而该蝶形结构单元连接该数据存储单元和该旋转因子存储单元以根据该旋转因子存储单元所提供的旋转因子对该数据序列进行蝶形运算以产生结果数据。优选地,该数据存储单元包括两个双端口的静态随机存取存储器。优选地,一个双端口的静态随机存取存储器作为该数据存储单元的实部模块,以存储该数据序列中各个复数形式的数据点的实部;而另一个双端口的静态随机存取存储器作为该数据存储单元的虚部模块,以存储该数据序列中各个复数形式的数据点的虚部。优选地,该旋转因子存储单元为单端口的只读存储器。优选地,该数据存储单元接收的该数据序列的长度为N,而该旋转因子存储单元根据周期性和对称性而存储N/4个旋转因子,该蝶形结构单元执行m级的蝶形运算,且每级蝶形运算均执行N/2个蝶形运算,其中N = 2m。优选地,每个旋转因子的存储地址由m,B,N和M所决定,其中,B用来计数执行蝶形运算的次数,而M为实现FFT/IFFT变换的电路最大能计算的点数。优选地,该蝶形结构单元执行每级蝶形运算中的单个蝶形运算过程中的乘法运算次数为三次。本发明还提供一种实现FFT/IFFT变换的方法,其包括步骤a:接收并存储长度为N的数据序列;以及步骤b:利用蝶形结构单元对该数据序列进行log 级蝶形运算,且每级蝶
形运算均包括(j )个蝶形运算。优选地,步骤b是分别从N/4个旋转因子中选择出正确的旋转因子而对该长度为N的数据序列进行log 级蝶形运算。优选地,每级蝶形 运算中的每个蝶形运算执行三次乘法运算。本发明的用于对生物医学信号实现FFT/IFFT变换的电路及方法,采用最简单的Radix_2算法,实现简单。在设计中采用了流水线的设计,提高了处理速度;将数据存储单元SRAM和旋转因子存储单元ROM集成到一个系统中,降低了功耗,提高了访问速度;将旋转因子存储单元ROM的存储空间降低到原来的1/4,减少了面积的开销;而蝶形结构单元中会减少乘法器的个数,降低了功耗,减少了其面积。由上可知,本发明的实现FFT/IFFT变换的电路具有功耗低、面积小、可扩展性好以及实时性好等优点。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。


图1为本发明一较佳实施例所揭示的实现FFT/IFFT变换的电路的示意图;图2为图1所示实现FFT/IFFT变换的电路进行FFT/IFFT运算过程中控制信号产生单元的状态装换示意图;图3为本发明的实现FFT/IFFT变换的电路的实验结果示意图。
具体实施例方式为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的实现FFT/IFFT变换的电路及其方法其具体实施方式
、方法、步骤、结构、特征及其功效,详细说明如下。有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例的详细说明中将可清楚呈现。通过具体实施方式
的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。图1为本发明一较佳实施例所揭示的实现FFT/IFFT变换的电路的示意图。如图1所示,本发明的实现FFT/IFFT变换的电路100主要包括五大部分,即包括控制信号产生单元110、蝶形结构单元120、数据存储单元例如静态随机存取存储器SRAM、旋转因子存储单元例如只读存储器ROM、以及地址生成单元150。其中数据存储单元SARM和旋转因子存储单元R0M,可以是利用软件产生存储模块的数据。本发明将数据存储单元SRAM和旋转因子存储单元ROM集成到一个系统中,从而大大降低了功耗。在本实施例中,控制信号产生单元110分别连接蝶形结构单元120、数据存储单元SRAM、旋转因子存储单元ROM和地址生成单元150,而蝶形结构单元120与数据存储单元SRAM和旋转因子存储单元ROM分别连接,且地址生成单元150与数据存储单元SRAM和旋转因子存储单元ROM分别连接。具体地,数据存储单元SRAM可分为实部模块SRAM_R和虚部模块SRAM_I两个部分,即其包括两个双端口的静态随机存取存储器,其中一个作为该数据存储单元的实部模块SRAM_R,而另一个作为该数据存储单元的虚部模块SRAM_I。在本实施例中,数据存储单元SRAM可接收数据序列的输入,而输入的数据序列中的各个数据点通常为复数,且同一数据序列中的各个数据点的实部存储在实部模块SRAM_R中,而虚部则存储在SRAM_I中。而数据序列的长度,也即数据点的个数定义为N ;在此,N的取值例如为8、16、32、...,相应地实现FFT/IFFT变换的电路100则执行8点、16点、32点FFT/IFFT运算、...。此外,数据存储单元SRAM可为双端口的存取单元。为了提高实现FFT/IFFT运算的计算精度,数据存储单元SRAM中的实部模块SRAM_R和虚部模块SRAM_I的输入输出位宽可以是20bit,且每块模块的容量可以是20*256。因为ECG等生理信号一般都是通过12bit的逐次逼近型模数转换器SAR_ADC将采集的模拟信号变化为数字信号,所以在开始初始化的过程中需要正确连接信号。而在计算过程中,本发明采用的是流水线结构,蝶形结构单元120可将其计算的结果暂存到原来的单元中,与并行结构相比,大大减少了面积的开销。旋转因子存储单元ROM可为单端口的R0M,其用来存储旋转因子。当本发明的实现FFT/IFFT变换的电路进行N点FFT/IFFT运算时,则其一般需要对应的N个旋转因子。但
是根据旋转因子f的周期性和对称性(如公式(I)),可以将旋转因子存储单元ROM
中所需要存储的旋转因子的个数降低到N/4个。因此采用这个设计思想,本发明可降低旋转因子存储单元ROM的面积和功耗。在计算过程中,可根据控制信号产生单元11提供的控制信号和计算精度至旋转因子存储单元R0M,而选择具有合适位宽的旋转因子存储单元ROM。例如,在本实施例中,旋转因子存储单元ROM的位宽可以是lObit,所以其存储容量是10*64(256/4)。
权利要求
1.一种实现FFT/IFFT变换的电路,其特征在于,该实现FFT/IFFT变化的电路包括:控制信号产生单元、蝶形结构单元、数据存储单元、旋转因子存储单元和地址生成单元,其中,该控制信号产生单元连接该蝶形结构单元、该数据存储单元、该旋转因子存储单元和该地址生成单元;该数据存储单元用于接收数据序列的输入,并输出结果数据;该旋转因子存储单元用于存储旋转因子;该地址生成单元连接该数据存储单元和该旋转因子存储单元,以为该数据存储单元和旋转因子存储单元提供地址;而该蝶形结构单元连接该数据存储单元和该旋转因子存储单元以根据该旋转因子存储单元所提供的旋转因子对该数据序列进行蝶形运算以产生结果数据。
2.如权利要求1所述的实现FFT/IFFT变换的电路,其特征在于,该数据存储单元包括两个双端口的静态随机存取存储器。
3.如权利要求2所述的实现FFT/IFFT变换的电路,其特征在于,一个双端口的静态随机存取存储器作为该数据存储单元的实部模块,以存储该数据序列中各个复数形式的数据点的实部;而另一个双端口的静态随机存取存储器作为该数据存储单元的虚部模块,以存储该数据序列中各个复数形式的数据点的虚部。
4.如权利要求1所述的实现FFT/IFFT变换的电路,其特征在于,该旋转因子存储单元为单端口的只读存储器。
5.如权利要求1所述的实现FFT/IFFT变换的电路,其特征在于,该数据存储单元接收的该数据序列的长度为N,而该旋转因子存储单元根据周期性和对称性而存储N/4个旋转因子,该蝶形结构单元执行m级的蝶形运算,且每级蝶形运算均执行N/2个蝶形运算,其中N = 2'
6.如权利要求5所述的实现FFT/IFFT变换的电路,其特征在于,每个旋转因子的存储地址由m,B,N和M所决定,其中,B用来计数执行蝶形运算的次数,而M为实现FFT/IFFT变换的电路最大能计算的点数。
7.如权利要求1所述的实现FFT/IFFT变换的电路,其特征在于,该蝶形结构单元执行每级蝶形运算中的单个蝶形运算过程中的乘法运算次数为三次。
8.一种实现FFT/IFFT变换的方法,其特征在于,该实现FFT/IFFT变换的方法包括: 步骤a:接收并存储长度为N的数据序列; 步骤b:利用蝶形结构单元对该数据序列进行1g2"级蝶形运算,且每级蝶形运算均包括(f)个蝶形运算。
9.如权利要求8所述的实现FFT/IFFT变换的方法,其特征在于:步骤b是分别从N/4个旋转因子中选择出正确的旋转因子而对该长度为N的数据序列进行1gf级蝶形运算。
10.如权利要求8所述的实现FFT/IFFT变换的方法,其特征在于:每级蝶形运算中的每个蝶形运算执行三次乘法运算。
全文摘要
一种实现FFT/IFFT变换的电路,包括控制信号产生单元、蝶形结构单元、数据存储单元、旋转因子存储单元和地址生成单元。该控制信号产生单元连接该蝶形结构单元、该数据存储单元、该旋转因子存储单元和该地址生成单元;该数据存储单元用于接收数据序列的输入,并输出结果数据;该旋转因子存储单元用于存储旋转因子;该地址生成单元连接该数据存储单元和该旋转因子存储单元,为该数据存储单元和旋转因子存储单元提供地址;该蝶形结构单元连接该数据存储单元和该旋转因子存储单元以根据该旋转因子存储单元所提供的旋转因子对该数据序列进行蝶形运算以产生结果数据。本发明的电路具有功耗低、面积小、可扩展性好以及实时性好等优点。
文档编号G06F17/14GK103176949SQ201110430750
公开日2013年6月26日 申请日期2011年12月20日 优先权日2011年12月20日
发明者张凤娟, 聂泽东, 王磊 申请人:中国科学院深圳先进技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1