一种用于音频信号的快速处理方法技术

技术编号:23363382 阅读:49 留言:0更新日期:2020-02-18 17:24
为了节省音频处理运算量,本发明专利技术设计一种用于音频信号的快速处理方法,其包含以下步骤:步骤1、按频率抽取FFT/IFFT;步骤2、按频域抽取FFT蝶形运算数据地址的变化规律:对于基4的DIF FFT,每级计算都是由四个数据为一组构成的N个输入数据,进入蝶形运算得到个N个输出数据。步骤3、获取基4的DIF旋转因子的变化规律:对于按频率抽取的FFT算法,除最后一级外,其余各级蝶形单元的计算结果均需要与旋转因子相乘,获取基4的DIF FFT/IFFT输出数据排序的规律。步骤4、执行混合基DIF FFT/IFFT;步骤5、实序列的FFT运算方案包括:用一个N‑FFT同时计算两个N点实序列FFT;用一个N‑FFT计算一个2N点实序列的FFT。

A fast processing method for audio signal

【技术实现步骤摘要】
一种用于音频信号的快速处理方法
本专利技术主要是利用混合基FFT/IFFT原理来实现对音频数据信号的快速运算处理。
技术介绍
目前,对音频数据信号的处理算法(比如降噪、回声消除等)一般都是在频域中实现。而在对音频数据的数字信号处理上,时频转换都需要做FFT/IFFT运算。因为音频处理算法是通过分帧实现的。每帧音频数据均对应不同的采样率,采样点数一般为64/128/256点,所以音频信号常用基2的方法实现64/128/256点FFT/IFFT。已有技术的缺陷:基2FFT/IFFT运算量大于基4和混合基的FFT/IFFT;FFT/IFFT默认输入都是复数,没有利用音频是实数信号的特点简化FFT/IFFT的运算量;已有算法一般都是浮点的,运算开销比定点大。快速傅里叶变换(FFT)/傅里叶逆变换(IFFT)原理:时域信号通过傅里叶变换获得频域信号;频域信号利用傅里叶逆变换得到时域信号。长度为N的数据序列x(n)的离散傅里叶变换X(k)可表示为:(1-1)相应地,由X(k)通过离散傅里叶逆变换(IDFT)到x(n)可表示为:(1-2)其中,为旋转因子。快速傅里叶变换(FFT)的基本思想是把原始的N点序列,依次分解成一系列的短序列。充分利用DFT中旋转因子的特性:对称性、周期性和可约性,求出这些短序列的DFT并进行适当组合,达到去除重复计算、减少乘法运算和简化结构的目的。可知IFFT的计算就是将输入取共轭后做FFT运算,然后对结果除以IFFT点数N即可。
技术实现思路
为了解决以上缺陷,本专利技术设计一种用于音频信号的快速处理方法,其包含以下步骤:步骤1、按频率抽取FFT/IFFT:设定所输入音频信号序列x(n)的长度为N=4L,L为整数,按照对执行DFT的X(k)中k除以4余数的不同进行分解,其基4运算都是有一定规律的,每一级的运算皆由N/4个蝶形运算构成,每一个蝶形运算的基本迭代公式如式(1-1)所示;(2-1)在上式(2-1)中,m表示第m级蝶形运算,k为数据所在的行数,N为所要计算的数据的点数,为旋转因子,令,,,,可得基4按频率抽取的蝶形运算如图2所示。由式(2-1)可知,一次基4蝶形运算需要3次复数乘法和4次复数加/减法运算。综上所述,由基4按频率抽取算法计算N点FFT时需要log4N=L级运算。图2是个16点基四FFT流程图。步骤2、按频域抽取FFT蝶形运算数据地址的变化规律:对于基4DIFFFT,每级计算都是由四个数据为一组构成的N个输入数据,进入蝶形运算得到个N个输出数据。在图2中,第1级进行蝶形运算的四个数据中相邻数据之间相差值为4,第2级进行蝶形运算的四个数据中相邻数据之间相差值为1,设此差值为D,蝶形运算所在的级数为P,则对于N=4L点FFT,共有log4N=L级运算,每级运算有N/4个蝶形运算单元,因此,D与P的关系为:D=4L-P;步骤3、获取基4的DIF旋转因子的变化规律:对于按频率抽取的FFT算法,除最后一级外,其余各级蝶形单元的计算结果均需要与旋转因子相乘。在图2中,第2级蝶形运算不需要与旋转因子相乘,第1级蝶形运算则需要与相应的4组旋转因子相乘。各级对应的组数分别为(N,N/4,N/16....1)各级蝶形因子的指数分别为:////1,获取基4的DIFFFT/IFFT输出数据排序的规律:由图2可知,基4DIFFFT/IFFT输出顺序就是输入按照4进制的倒序,如03(4进制)对应的就是30(4进制)。对于所有的基四FFT/IFFT,输出都是将最后一级运算结果按4进制数倒序得到。步骤4、执行混合基DIFFFT/IFFT:设输入序列x(n)的长度为N=4L*2,L为整数。对于这种情况,如32点,128点FFT/IFFT,在基4的基础上,本专利在最后一级加入基2运算即可实现。最后一级的基2运算的蝶形运算数据地址差值为1。它的运算公式如下:(3-1)步骤5、计算实序列的FFT:前面提到的FFT算法的输入的都是复数,但是对于音频信号,输入都是实数。实序列的FFT运算方案包括:用一个N-FFT同时计算两个N点实序列FFT;用一个N-FFT计算一个2N点实序列的FFT。附图说明图1是基4DIF的蝶形运算流图;图2是16点基4DIFFFT运算流程图;图3是FFT/IFFT实现定点化方案原理框图。具体实施方式本专利技术的具体技术方案将在结合附图描述的基础上更好地体现,本专利技术的方法包括以下步骤:步骤1、按频率抽取FFT/IFFT:设定所输入音频信号序列x(n)的长度为N=4L,L为整数,按照对执行DFT的X(k)中k除以4余数的不同进行分解,其基4运算都是有一定规律的,每一级的运算皆由N/4个蝶形运算构成,每一个蝶形运算的基本迭代公式如下列式(2-1)所示,(2-1)在上式(2-1)中,m表示第m级蝶形运算,k为数据所在的行数,N为所要计算的数据的点数,为旋转因子,令,,,,可得基4按频率抽取的蝶形运算如图2所示。由式(2-1)可知,一次基4蝶形运算需要3次复数乘法和4次复数加/减法运算。综上所述,由基4按频率抽取算法计算N点FFT时需要log4N=L级运算。图2是个16点基四FFT流程图。步骤2、按频域抽取FFT蝶形运算数据地址的变化规律:对于基4DIFFFT,每级计算都是由四个数据为一组构成的N个输入数据,进入蝶形运算得到个N个输出数据。在图2中,第1级进行蝶形运算的四个数据中相邻数据之间相差值为4,第2级进行蝶形运算的四个数据中相邻数据之间相差值为1,设此差值为D,蝶形运算所在的级数为P,则对于N=4L点FFT,共有log4N=L级运算,每级运算有N/4个蝶形运算单元,因此,D与P的关系为:D=4L-P;步骤3、获取基4的DIF旋转因子的变化规律:对于按频率抽取的FFT算法,除最后一级外,其余各级蝶形单元的计算结果均需要与旋转因子相乘。在图2中,第2级蝶形运算不需要与旋转因子相乘,第1级蝶形运算则需要与相应的4组旋转因子相乘。各级对应的组数分别为(N,N/4,N/16....1)各级蝶形因子的指数分别为:////1,获取基4的DIFFFT/IFFT输出数据排序的规律:由图2可知,基4DIFFFT/IFFT输出顺序就是输入按照4进制的倒序,如03(4进制)对应的就是30(4进制)。对于所有的基四FFT/IFFT,输出顺序都是将最后一级的数据地址按4进制数倒序得到。步骤4、执行混合基DIFFFT/IFFT:设输入序列x(n)的长度为N=4L*2,L为整数。对于这种情况,如32点,128点FFT/IFFT,在基4的基础上,本专利在最后一级加入基2运算即可实现。最后一级的基2运算的蝶形运算数据地址差值为1。它的运算公式如下:(3-1)下面以32点为例,介绍混合基的FFT实现:1)32点混合基FF本文档来自技高网...

【技术保护点】
1.一种用于音频信号的快速处理方法,其特征是包含以下步骤:/n步骤1、按频率抽取FFT/IFFT:设定所输入音频信号序列

【技术特征摘要】
1.一种用于音频信号的快速处理方法,其特征是包含以下步骤:
步骤1、按频率抽取FFT/IFFT:设定所输入音频信号序列x(n)的长度为N=4L,L为整数,按照对执行DFT的X(k)中k除以4余数的不同进行分解,其基4运算都是有一定规律的,每一级的运算皆由N/4个蝶形运算构成,




(2-1)






在上式(2-1)中,m表示第m级蝶形运算,k为数据所在的行数,N为所要计算的数据的点数,为旋转因子,令,,,,可得基4按频率抽取的蝶形运算,
由式(2-1)可知,一次基4蝶形运算需要3次复数乘法和4次复数加/减法运算,综上所述,由基4按频率抽取算法计算N点FFT时需要log4N=L级运算;
步骤2、按频域抽取FFT蝶形运算数据地址的变化规律:对于基4DIFFFT,每级计算都是由四个数据为一组构成的N个输入数据,进入蝶形运算得到个N个输出数据,第1级进行蝶形运算的四个数据中相邻数据之间相差值为4,第2级进行蝶形运算的四个数据中相邻数据之间相差值为1,设此差值为D,蝶形运算所在的级数为P,则对于N=4L点FFT,共有log4N=L级运算,每级运...

【专利技术属性】
技术研发人员:左罡胡晨光
申请(专利权)人:易兆微电子杭州有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1