掌桥专利:专业的专利平台
掌桥专利
首页

基于带低功耗加速器单片机的多点数快速傅里叶变换方法

文献发布时间:2023-06-19 19:30:30


基于带低功耗加速器单片机的多点数快速傅里叶变换方法

技术领域

本发明涉及数字信号处理领域,尤其是涉及一种基于带低功耗加速器单片机的多点数快速傅里叶变换方法。

背景技术

FFT是DFT的快速算法,它大幅度提高了DFT的计算速度,使数字信号的实时处理成为可能,是数字信号处理领域广泛使用的最有效的算法之一。

现有的FFT算法一般采用单片机、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)和现场可编程门阵列(Field Programmable Gate Array,FPGA)等平台来实现。

其中,DSP是数字信号处理的专用芯片,可以很好地支持以乘法和累加为算法基础的运算,实现FFT的实时处理。但FFT处理过程所需的存储单元比较大,而DSP芯片的存储资源有限,且计算能力有限,不适合超长点数的计算。FPGA作为定制化的硬件加速器,具有较高的灵活性,其内部大量的并行逻辑计算资源,匹配FFT算法中蝶形单元独立、并行处理的特点,将FFT运算的数据带宽提高几个数量级。但FPGA的开发需要使用硬件描述语言,增加了开发难度和周期,且FPGA实现功耗大,难以满足一些工业低功耗需求。ASIC是通过硬件描述语言将寄存器转换成电路后经过综合、静态时序分析、布局布线、后端设计等流程后针对某种数字信号处理算法的专门优化过的电路版图,最后由半导体厂商生产流片的过程,ASIC实现FFT时,具有比DSP和FPGA更好的性能,可靠性高,功耗低,可应用在高速实时处理系统和一些比较特殊的场合。但其可编程能力差,编程结束后修改困难,且开发周期长,生产成本高,灵活性和扩展性都较差。

在高实时性系统中,流水结构的FFT经常被采用,主要是利用旋转因子的对称性来降低FFT的资源占用,申请号为202010031509.8的专利《具有优化资源消耗的定点FFT实现系统》公开了一种装置,基于对运算单元的数量优化以及蝶形运算架构,并通过基-2FFT的算法在利用旋转因子的对称性以及在不损失计算结果精度的情况下尽可能减小每一级蝶形运算的字长,利用这两种方法来减少定点FFT运算的资源消耗。

现有技术中还有通过并行架构或配合基-4、基-2

对于某些空间和硬件资源都比较紧张的系统,申请号为201611187723.2的专利《一种FFT复用方法》提出了一种复用方法,通过蝶形运算单元复用,采用半并行流水操作,有效平衡内部处理速度与资源消耗之间的矛盾,有效降低了对逻辑资源的需求,满足工程应用的需求,但该方法也需设计相配合的系统才能实现。

发明内容

本发明是为了克服现有技术的需要设计新的装置且难以满足一些工业低功耗实现多点数的快速傅里叶变换的需求的问题,提出一种基于带低功耗加速器单片机的多点数快速傅里叶变换方法,即通过将多点数序列拆分,再使用单片机自带的LEA快速计算有限长离散时间序列的FFT,最后将结果重新组合,实现多点数快速傅里叶变换。

为了实现上述目的,本发明采用以下技术方案:

基于带低功耗加速器单片机的多点数快速傅里叶变换方法,包括以下步骤:S1:通过实验采集或模拟仿真获得多点数实验数据即多点数序列x(n),n=0,1,2,…,N-1;S2:对多点数序列x(n)按照时间奇偶进行逐级分组,得到多组不同的少点数序列,包括偶序列和奇序列;S3:采用单片机自带的LEA分别计算各组少点数奇偶序列的FFT,并将少点数FFT结果原位存储;S4:利用重组计算公式,将少点数FFT结果进行多级重组,恢复出实验数据x(n)的DFT的前半部分,并进行原位存储;S5:基于单片机自带的硬件乘法器计算出实验数据的功率谱的前半部分,并进行原位存储。本发明的基于带低功耗加速器单片机的多点数快速傅里叶变换方法,是一种可满足更多应用场景需求的、可变长度的FFT方法。该方法在硬件方面,利用单片机自带的LEA实现FFT,相比于同条件下不使用LEA的情况,不仅在应用上节约了能源,而且提高了信号处理速度;在软件方面,当实验数据长度超过了带低功耗加速器单片机能处理的长度范围时,通过将多点数逐级分解成少点数,再使用LEA对少点数进行FFT变换,最后数据重组实现多点数的快速傅里叶变换;在内存方面,从数据分组到少点数FFT变换,再到数据重组,逐级采用原位覆盖存储的方式,节省了数字信号处理过程所需的存储空间。

作为本发明的优选方案,所述S2具体为:对长度为N的多点数序列x(n),按照n的奇偶进行第1级分解,将多点数序列x(n)分为长度分别为N/2的偶序列x

作为本发明的优选方案,所述S3中各组少点数奇偶序列的FFT的计算公式如下:

X

。对于M点的少点数实序列x

作为本发明的优选方案,所述S4中的重组计算公式如下:

作为本发明的优选方案,所述S4具体为:令r=i-1,R=2M,

作为本发明的优选方案,所述多点数实验数据即多点数序列x(n)的数据点数N常规取2的整数次幂,若不够,则用零补齐。通过实验采集或模拟仿真都可以获得N点的离散实验数据,即实序列x(n)。

作为本发明的优选方案,所述多点数实验数据为整型数据,若单片机中整型数据占用空间为m个字节,则在单片机中开辟N*m个字节的存储空间来存储实验数据x(n),逐级分解不会影响总数据长度,每级分组后的子序列采用覆盖存储。在内存方面,从数据分组到少点数FFT变换,再到数据重组,逐级采用原位覆盖存储的方式,节省了数字信号处理过程所需的存储空间。

因此,本发明具有以下有益效果:本发明的基于带低功耗加速器单片机的多点数快速傅里叶变换方法,是一种可满足更多应用场景需求的、可变长度的FFT方法。该方法在硬件方面,利用单片机自带的LEA实现FFT,相比于同条件下不使用LEA的情况,不仅在应用上节约了能源,而且提高了信号处理速度;在软件方面,当实验数据长度超过了带低功耗加速器单片机能处理的长度范围时,通过将多点数逐级分解成少点数,再使用LEA对少点数进行FFT变换,最后数据重组实现多点数的快速傅里叶变换;在内存方面,从数据分组到少点数FFT变换,再到数据重组,逐级采用原位覆盖存储的方式,节省了数字信号处理过程所需的存储空间。

附图说明

图1是本发明专利的主要技术流程框图。

图2是本发明专利的具体技术方案流程框图。

图3是单片机模拟仿真生成的实验数据的时域波形图。

图4是多点数实验数据逐级分解成少点数子序列示意图。

图5是基于LEA计算少点数FFT并原位存储示意图。

图6是少点数FFT重组多点数FFT并原位存储示意图。

图7是基于硬件乘法器计算功率谱并原位存储示意图。

图8是单片机模拟仿真生成的实验数据的频域幅值谱局部放大图。

图9是采集的涡街流量信号的时域波形图。

图10是采用单片机自带的LEA快速实现2048点实序列的DFT的流程框图。

图11是涡街流量信号的频域幅值谱局部放大图。

具体实施方式

下面结合附图与具体实施方式对本发明做进一步的描述。

一种基于带低功耗加速器单片机的多点数快速傅里叶变换方法,结合单片机自身硬件资源计算多点数离散时间序列的傅里叶变换,实现多点数的快速傅里叶变换,提高功率谱分析的实时性,并降低对存储空间的需求。具体包括以下步骤:S1:通过实验采集或模拟仿真获得多点数实验数据即多点数序列x(n),n=0,1,2,…,N-1;S2:对多点数序列x(n)按照时间奇偶进行逐级分组,得到多组不同的少点数序列,包括偶序列和奇序列;S3:采用单片机自带的LEA分别计算各组少点数奇偶序列的FFT,并将少点数FFT结果原位存储;S4:利用重组计算公式,将少点数FFT结果进行多级重组,恢复出实验数据x(n)的DFT的前半部分,并进行原位存储;S5:基于单片机自带的硬件乘法器计算出实验数据的功率谱的前半部分,并进行原位存储。

本发明方法的优点是:提供的基于带低功耗加速器单片机的多点数快速傅里叶变换方法是一种可满足更多应用场景需求的、可变长度的FFT方法。该方法在硬件方面,利用单片机自带的LEA实现FFT,相比于同条件下不使用LEA的情况,不仅在应用上节约了能源,而且提高了信号处理速度,如在16MHz主频下,通过LEA实现512点CFFT对比未使用LEA的情况,其处理速度提高高达24倍,能耗降低高达36倍;在软件方面,当实验数据长度超过了带低功耗加速器单片机能处理的长度范围时,通过将多点数逐级分解成少点数,再使用LEA对少点数进行FFT变换,最后数据重组实现多点数的快速傅里叶变换;在内存方面,从数据分组到少点数FFT变换,再到数据重组,逐级采用原位覆盖存储的方式,节省了数字信号处理过程所需的存储空间。

实施例:

本发明的设计思想是:基于实验采集或模拟仿真的多点数实验数据,先进行有限次奇偶分组;再基于单片机自带的LEA快速计算少点数奇偶序列的DFT,并根据基-2按时间抽取的FFT的核心公式和圆周共轭对称性重组,进而快速计算多点数实验数据的DFT,以提高基于FFT的数字信号处理方法的实时性;然后,根据实验数据FFT的结果计算实验数据的功率谱,FFT和功率谱的计算结果都原位存储,保证最大限度的节省存储空间。

本发明的技术方案流程图如图2所示。首先,通过实验采集或模拟仿真获得实验数据x(n);其次,对多点数的实验数据x(n)逐级按照奇偶进行有限次分组,得到多组不同的少点数序列,即偶序列和奇序列;再次,采用单片机自带的LEA分别计算各组少点数奇偶序列的FFT,并将少点数FFT结果原位存储;然后,根据DFT的圆周共轭对称性和基-2按时间抽取的FFT的核心公式,将少点数FFT结果进行多级重组,恢复出多点数实验数据的FFT的前半部分X(k),并进行原位存储;最后,基于单片机自带的硬件乘法器计算出实验数据的功率谱的前半部分P(k),并进行原位存储。

下面,具体介绍基于带低功耗加速器单片机的多点数快速傅里叶变换方法的处理步骤:

(1)获取实验数据

基于FFT的数字信号处理方法应用广泛,例如涡街流量计,当涡街流量计实验平台给定流量时,涡街传感器输出的信号被调理电路预处理,经过适当地放大和滤波后,被单片机采样,得到离散实验数据;离散实验数据也可以直接由单片机模拟生成。因此,通过实验采集或模拟仿真都可以获得N点的离散实序列x(n)。为了方便计算多点数的FFT,数据点数N常规取2的整数次幂,若不够,则用零补齐。本发明以图3所示的一组2048点的仿真正弦信号为例来说明基于带LEA单片机的多点数FFT的具体处理方法,采样频率为2048Hz,幅值为1V,初始相位为0rad,信号频率为10Hz。

(2)数据分组

当数据点数N很多,直接通过基2-FFT计算频谱比较耗时,影响实时性。带LEA的单片机能快速计算FFT,在同主频下,针对512点CFFT其处理速度比不使用LEA时快21-24倍。但是,LEA只能快速计算少点数的FFT,当数据长度N大于LEA能处理的最大实序列点数M,则可以通过图1所示的流程进行数据分组、调用LEA和数据重组来快速计算多点数的FFT。

数据分组的具体流程如图4所示。对长度为N的多点数序列x(n),按照n的奇偶进行第1级分解,将x(n)分为长度分别为N/2的偶序列x

采样过后的实数序列为整型数据,若单片机中整型数据占用空间为mB(即mByte),则在单片机中开辟N*mB的存储空间来存储实验数据x(n),逐级分解不会影响总数据长度,因此,每级分组后的子序列采用覆盖存储,数据分组过程共需要N*mB的空间来存储数据。下述基于LEA实现多点数的FFT的过程和功率谱的计算结果都原位存储。

对于图3所示的仿真数据,实验数据为N=2048点实数。若LEA最多能处理M=512点的数据,则按照上述分解方式,对2048点仿真数据进行2级奇偶分解,最终分解成4组512点的子序列,并原位覆盖存储。

(3)计算少点数FFT

第i级的子序列x

根据DFT的对称特性,实序列的DFT具有圆周共轭对称性,则X

对于M点的少点数实序列x

对于图3所示的仿真数据,利用LEA分别对第2级分解后的4组512点的子序列计算256点的CFFT,可得到4组512点子序列的DFT的前半部分,即X

(4)重组多点数FFT

步骤(2)中按照时间奇偶进行实验数据的分组。若对x(n)进行DFT变换的结果为X(k),即X(k)=DFT[x(n)],k=0,1,…,N-1,则X

步骤(3)中利用单片机自带的LEA得到了第i级2

X

根据上述公式,计算并保存X

第i级2组复序列X

对于图3所示的仿真数据,根据步骤(3)得到的4组X

(5)计算功率谱

步骤(4)重组得到N点实验数据x(n)对应的X(k)的前半部分,即N/2点的复序列。基于X(k),利用单片机自带的硬件乘法器可以计算出实验数据的功率谱P(k)的前半部分,共N/2点的长整型数据,占用存储空间N*mB,与X(k)的前半部分所占用的空间容量一致。因此,多点数实验数据的功率谱的前半部分可以覆盖其FFT的前半部分存储而不需要重新开辟存储空间。计算实验数据功率谱的前半部分并原位存储的示意图如图7所示。对于长度为N的实验数据,基于带LEA单片机的多点数FFT方法的处理过程仅需要N*mB的存储空间。

对于图3所示的仿真数据,根据步骤(4)得到2048点仿真数据的FFT的前半部分。然后,计算其功率谱的前半部分,并按照图7进行原位存储。由功率转换成幅值,即得到仿真数据的幅值谱的局部放大图如图8所示。采用基-2按时间抽取的FFT直接计算N点实验数据的FFT的前半部分,需要

对比可知,对于多点数FFT的处理,本发明方法的运算量要低于直接采用基-2按时间抽取的FFT的运算量。针对少点数的FFT,采用相同的运算方法,同主频下使用LEA的单片机的处理速度比不使用LEA快至少10倍。因此,基于带LEA单片机的多点数FFT方法能有效提高多点数FFT的处理速度,提高实时性。

基于数字信号处理方法的涡街流量计,常采用FFT将信号从时域变换到频域,再提取涡街流量信号的频率。智能涡街流量计的实时测量主要依赖于基于FFT的数字信号处理方法的计算速度。本发明以图9所示的一组实验数据为例来验证基于带LEA的单片机的涡街流量信号测量的实时性和准确性。对于50mm口径的涡街流量计,采样频率f

选择的带LEA的低功耗单片机最多能处理512点的CFFT(即M=1024),采用单片机自带的LEA快速实现2048点实序列的DFT的流程框图如图10所示。将2048点的实验数据x(n)按照时间n的奇偶分为两组1024点的实序列,即偶序列和奇序列;利用LEA对奇偶序列分别计算512点的CFFT,得到奇偶序列的DFT的前半部分,即两组512点的复序列;再根据核心公式、定义和圆周共轭对称性,重组出实验数据x(n)的DFT的前半部分,即1024点的复序列X(k)。下面,详细介绍基于带LEA的单片机的涡街流量信号快速处理方法的具体流程:

针对给定气体流量信号的处理,首先,取一组流量数据x(n),该数据为N=2048点实数,此时M=1024,故按照上述数据分组方式对2048点数据进行1级奇偶分解,即按照时间n的奇偶将x(n)分为1024点的实序列偶序列x

本发明为一种基于带低功耗加速器的单片机的多点数快速傅里叶变换方法,用于提高多点数离散时间序列的傅里叶变换的实时性。首先,通过实验采集或模拟仿真获得实验数据;其次,对多点数实验数据按照时间奇偶进行逐级分组,得到多组不同的偶序列和奇序列;再次,采用单片机自带的低功耗加速器分别计算各组少点数奇偶序列的快速傅里叶变换,并将少点数傅里叶变换结果原位存储;然后,根据圆周共轭对称性和核心公式,将少点数傅里叶变换结果进行多级重组,恢复出实验数据的离散傅里叶变换的前半部分,并进行原位存储;最后,基于单片机自带的硬件乘法器计算出实验数据的功率谱的前半部分,并进行原位存储。

术语解释:

LEA:带低功耗加速器。

DFT:离散傅里叶变换。

FFT:快速傅里叶变换。

CFFT:复数快速傅里叶变换。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何不经过创造性劳动想到的变化或替换,都应涵盖在本发明保护范围之内。

相关技术
  • 基于多相分解的GHz高速采样信号可变点数快速傅里叶变换方法
  • 基于快速傅里叶变换的低功耗两线制涡街流量计
技术分类

06120115931326