有效
一种信号处理电路、方法、处理器、存储介质及芯片
刘畅、赵东艳、李德建、杨凯悦、沈冲飞、谭浪、杨立新
北京智芯微电子科技有限公司
摘要
提供一种信号处理电路、方法、处理器、存储介质及芯片,属于数字信号处理技术领域。该电路包括串行/并行数据转换器、N点FFT计算模块和FFT转换模块;所述串行/并行数据转换器,用于将由时域信号组成的第一实数序列转化为复数序列,所述第一实数序列的长度为2N或2N‑1,所述复数序列的长度为N;所述N点FFT计算模块,用于对所述复数序列进行快速傅里叶变换,得到复数序列的快速傅里叶变换结果;所述FFT转换模块,用于根据复数序列与第一实数序列的快速傅里叶变换结果的转换关系,将复数序列的快速傅里叶变换结果转换为第一实数序列的快速傅里叶变换结果,以得到所述第一实数序列的频域信号。本发明实施例可以减小信号处理电路的面积、存储量以及功耗。
1.一种信号处理电路,其特征在于,该电路包括:串行/并行数据转换器、N点FFT计算模块和FFT转换模块;所述串行/并行数据转换器,用于将由时域信号组成的第一实数序列转化为第二实数序列和第三实数序列,将第二实数序列和第三实数序列转化为复数序列,所述第二实数序列和第三实数序列分别为所述复数序列的实部和虚部,所述第一实数序列的长度为2N或2N-1,所述复数序列的长度为N;所述N点FFT计算模块,用于对所述复数序列进行快速傅里叶变换,得到复数序列的快速傅里叶变换结果;所述FFT转换模块包括中间存储器和计算单元,所述中间存储器与所述N点FFT计算模块和所述计算单元相连;所述中间存储器用于存储所述N点FFT计算模块输出的复数序列的快速傅里叶变换结果;所述计算单元用于根据复数序列与第一实数序列的快速傅里叶变换结果的转换关系,将所述中间存储器中存储的复数序列的快速傅里叶变换结果转换为第一实数序列的快速傅里叶变换结果,以得到所述第一实数序列的频域信号;所述根据复数序列与第一实数序列的快速傅里叶变换结果的转换关系,将所述中间存储器中存储的复数序列的快速傅里叶变换结果转换为第一实数序列的快速傅里叶变换结果,包括:将所述N点FFT计算模块输出复数序列的快速傅里叶变换结果的过程按照输出时序划分为多个阶段,以及在每个阶段,除序列号为0的复数序列的快速傅里叶变换结果外,当N点FFT计算模块输出的复数序列的快速傅里叶变换结果的序列号与中间存储器中存储的复数序列的快速傅里叶变换结果的序列号相加之和不等于 时,将该复数序列的快速傅里叶变换结果暂存于所述中间存储器中;直至所述N点FFT计算模块输出相加之和为 的复数序列的快速傅里叶变换结果时,所述计算单元根据复数序列与第一实数序列的快速傅里叶变换结果的转换关系对其进行运算,得到第一实数序列的快速傅里叶变换结果,其中 为复数序列的长度。
2.根据权利要求1所述的信号处理电路,其特征在于,所述N点FFT计算模块包括至少一级单路延迟反馈单元;每一级单路延迟反馈单元串行连接,各自包括蝶形运算单元和乘法器,所述蝶形运算单元用于对上一级输出的数据进行交叉加减运算;所述乘法器用于将交叉加减运算结果与旋转因子相乘,并将相乘的结果作为下一级单路延迟反馈单元的输入;其中最后一级单路延迟反馈单元的输出为复数序列的快速傅里叶变换结果。
3.根据权利要求2所述的信号处理电路,其特征在于,所述蝶形运算单元包括第一蝶形运算单元和第二蝶形运算单元,所述第一蝶形运算单元包括多个第一存储器、第二存储器,所述第二蝶形运算单元包括多个第三存储器、第四存储器、第五存储器和第六存储器。
4.根据权利要求3所述的信号处理电路,其特征在于,所述对上一级输出的数据进行交叉加减运算,包括:所述第一蝶形运算单元将上一级输出的每个数据集的第一部分数据存入第一存储器,并与上一级输出的该数据集的第二部分数据进行交叉加减运算,以及将交叉加减运算中交叉相加得到的第一数据集与交叉相减得到的第二数据集分别存入第一存储器和第二存储器后,输出至第二蝶形运算单元;所述第二蝶形运算单元将所述第一数据集分为两部分,将所述第一数据集的第一部分数据存入第三存储器,并与所述第一数据集的第二部分数据进行交叉运算,以及将交叉加减运算中第一部分数据的实部和第二部分数据的虚部相加、第一部分数据的虚部和第二部分数据的实部相减得到的第三数据集存入第三存储器,将交叉加减运算中第一部分数据的实部和第二部分数据的虚部相减、第一部分数据的虚部和第二部分数据的实部相加得到的第四数据集存入第四存储器;所述第二蝶形运算单元将所述第二数据集分为两部分,将所述第二数据集的第一部分数据存入第五存储器,并与所述第二数据集的第二部分数据进行交叉运算,以及将交叉加减运算中第一部分数据的实部和第二部分数据的虚部相加、第一部分数据的虚部和第二部分数据的实部相减得到的第五数据集存入第五存储器,将交叉加减运算中第一部分数据的实部和第二部分数据的虚部相减、第一部分数据的虚部和第二部分数据的实部相加得到的第六数据集存入第六存储器;其中,存储器中存储的每一数据集均被划分为第一部分数据和第二部分数据,第一部分数据和第二部分数据的数据量相同,第一部分数据的输出时序先于第二部分数据;所述第一蝶形运算单元的第一存储器和第二存储器的数量与上一级输出的数据的数据集的数量相对应。
5.根据权利要求4所述的信号处理电路,其特征在于,所述第一蝶形运算单元将上一级输出的每个数据集的第一部分数据存入第一存储器,并与上一级输出的该数据集的第二部分数据进行交叉加减运算,以及将交叉加减运算中交叉相加得到的第一数据集与交叉相减得到的第二数据集分别存入第一存储器和第二存储器后,输出至第二蝶形运算单元,包括:第一蝶形运算单元将上一级输出的每个数据集的第一部分数据存入第一存储器;当上一级输出该数据集中第二部分数据的第j个复数时,将其与第一部分数据的第j个复数代入公式1、2,得到的结果作为第一数据集中的第j个数据;将其与第一部分数据的第j个复数代入公式3、4,得到的结果作为第二数据集中的第j个数据;当j从1递加至 时,重复上述步骤得到包含 个数据的第一数据集和包含 个数据的第二数据集,所述第一数据集存储于第一存储器中,第二数据集存储于第二存储器中, 为复数序列的长度; (1)其中, 和 是上一级输出的每个数据集的第一部分数据中第j个复数的实部和虚部; 和 是上一级输出的每个数据集的第二部分数据中第j个复数的实部和虚部; 和 是第一数据集中第j个数据的实部和虚部; 和 是第二数据集中第j个数据的实部和虚部。
6.根据权利要求4所述的信号处理电路,其特征在于,所述第二蝶形运算单元将所述第一数据集分为两部分,将所述第一数据集的第一部分数据存入第三存储器,并与所述第一数据集的第二部分数据进行交叉运算,以及将交叉加减运算中第一部分数据的实部和第二部分数据的虚部相加、第一部分数据的虚部和第二部分数据的实部相减得到的第三数据集存入第三存储器,将交叉加减运算中第一部分数据的实部和第二部分数据的虚部相减、第一部分数据的虚部和第二部分数据的实部相加得到的第四数据集存入第四存储器,包括:所述第二蝶形运算单元将所述第一数据集分为两部分,将所述第一数据集的第一部分数据存入第三存储器;当第一存储器输出第一数据集的第二部分数据中第j个复数时,将其与第一部分数据的第j个复数代入公式5、6,得到的结果作为第三数据集中的第j个数据;将其与第一部分数据的第j个复数代入公式7、8,得到的结果作为第四数据集中的第j个数据;当j从1递加至 时,重复上述步骤得到包含 个数据的第三数据集和包含 个数据的第四数据集,所述第三数据集存储于第三存储器中,第四数据集存储于第四存储器中, 为复数序列的长度;其中, 和 是第一数据集的第一部分数据中第j个复数的实部和虚部; 和 是第一数据集的第二部分数据中第j个复数的实部和虚部; 和 是第三数据集中第j个数据的实部和虚部; 和 是第四数据集中第j个数据的实部和虚部。
7.根据权利要求3-6任一项所述的信号处理电路,其特征在于,所述N点FFT计算模块由 级单路延迟反馈单元串行组成;其中第n级单路延迟反馈单元的第一蝶形运算单元包括 个存储量为 *Mbit的第一存储器,以及与第一存储器的数量和存储量相同的第二存储器;第n级单路延迟反馈单元的第二蝶形运算单元包括 个存储量为 的第三存储器,以及与第三存储器数量和存储量相同的第四存储器、第五存储器、第六存储器, , 为复数序列的长度。
8.根据权利要求1所述的信号处理电路,其特征在于,所述计算单元与所述N点FFT计算模块相连;所述中间存储器用于存储所述N点FFT计算模块输出的部分复数序列的快速傅里叶变换结果。
9.根据权利要求1所述的信号处理电路,其特征在于,所述复数序列与第一实数序列的快速傅里叶变换结果的转换关系为:其中, 为N点FFT计算模块输出的复数序列的序列号为k的快速傅里叶变换结果, 为N点FFT计算模块输出的复数序列的序列号为 的快速傅里叶变换结果的共轭复数, 和 为中间运算结果, 为旋转因子, 为第一实数序列的序列号为k的快速傅里叶变换结果, 为复数序列的长度。
10.根据权利要求9所述的信号处理电路,其特征在于,第一实数序列的序列号为0的快速傅里叶变换结果根据以下公式计算得到:其中, 为第一实数序列的序列号为0的快速傅里叶变换结果, 为N点FFT计算模块输出的复数序列的序列号为0的快速傅里叶变换结果的实部, 为N点FFT计算模块输出的复数序列的序列号为0的快速傅里叶变换结果的虚部。
11.根据权利要求9所述的信号处理电路,其特征在于,第一实数序列的序列号为N的快速傅里叶变换结果根据以下公式计算:其中, 为第一实数序列的序列号为N的快速傅里叶变换结果, 为N点FFT计算模块输出的复数序列的序列号为0的快速傅里叶变换结果的实部, 为N点FFT计算模块输出的复数序列的序列号为0的快速傅里叶变换结果的虚部。
12.根据权利要求8-11任一项所述的信号处理电路,其特征在于,所述N点FFT计算模块输出复数序列的快速傅里叶变换结果的过程按照输出时序被划分为 个阶段,阶段1包含2个复数序列的快速傅里叶变换结果,阶段 包含 个复数序列的快速傅里叶变换结果, ;所述中间存储器的存储量为 ,在第 个阶段存储 个复数序列的快速傅里叶变换结果。
13.根据权利要求12所述的信号处理电路,其特征在于,所述信号处理电路还包括一个存储量为N*Mbit的旋转因子存储器,用于存储旋转因子。
14.一种信号处理方法,其特征在于,该方法包括:将由时域信号组成的第一实数序列转化为第二实数序列和第三实数序列,将第二实数序列和第三实数序列转化为复数序列,所述第二实数序列和第三实数序列分别为所述复数序列的实部和虚部,所述第一实数序列的长度为2N或2N-1,所述复数序列的长度为N;对所述复数序列进行快速傅里叶变换,得到复数序列的快速傅里叶变换结果;根据复数序列与第一实数序列的快速傅里叶变换结果的转换关系,将所述复数序列的快速傅里叶变换结果转换为第一实数序列的快速傅里叶变换结果,以得到所述第一实数序列的频域信号;根据复数序列与第一实数序列的快速傅里叶变换结果的转换关系,将所述复数序列的快速傅里叶变换结果转换为第一实数序列的快速傅里叶变换结果,包括:将N点FFT计算模块输出复数序列的快速傅里叶变换结果的过程按照输出时序划分为多个阶段,以及在每个阶段,除序列号为0的复数序列的快速傅里叶变换结果外,当N点FFT计算模块输出的复数序列的快速傅里叶变换结果的序列号与中间存储器中存储的复数序列的快速傅里叶变换结果的序列号相加之和不等于N时,将该复数序列的快速傅里叶变换结果暂存于中间存储器中;直至N点FFT计算模块输出相加之和为N的复数序列的快速傅里叶变换结果时,根据复数序列与第一实数序列的快速傅里叶变换结果的转换关系对其进行运算,得到第一实数序列的快速傅里叶变换结果,N为复数序列的长度。
15.根据权利要求14所述的信号处理方法,其特征在于,所述对所述复数序列进行快速傅里叶变换,得到复数序列的快速傅里叶变换结果,包括:进行至少一级蝶形运算,每级蝶形运算包括:对上一级输出的数据进行交叉加减运算;将交叉加减运算结果与旋转因子相乘,并将相乘的结果作为下一级快速傅里叶变换的输入;其中最后一级快速傅里叶变换的输出为复数序列的快速傅里叶变换结果。
16.一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行权利要求14-15任一项所述的信号处理方法。
17.一种处理器,其特征在于,用于运行程序,其中,所述程序被运行时用于执行权利要求14-15任一项所述的信号处理方法。
18.一种芯片,其特征在于,所述芯片包括多个根据权利要求17所述的处理器。



