首页> 中国专利> 基-6蝶形运算单元、方法、电子设备及存储介质

基-6蝶形运算单元、方法、电子设备及存储介质

摘要

本发明实施例涉及信号处理领域,公开了一种基‑6蝶形运算单元、方法、电子设备及存储介质。本发明中,基‑6蝶形运算单元,包括:第一层运算单元,用于对输入的时域信号进行第一层运算;第二层运算单元,用于根据第一层运算的运算结果,进行第二层运算;第三层运算单元,用于根据第一层运算的运算结果和第二层运算的运算结果,进行第三层运算;第四层运算单元,用于根据第一层运算的运算结果、第二层运算的运算结果和第三层运算的运算结果,进行第四层运算,得到频域信号。本发明的基‑6蝶形运算单元,可以实现减少计算时间,节省计算资源,提高计算效率。

著录项

  • 公开/公告号CN112800387A

    专利类型发明专利

  • 公开/公告日2021-05-14

    原文格式PDF

  • 申请/专利权人 芯翼信息科技(上海)有限公司;

    申请/专利号CN202110338383.3

  • 发明设计人 乔晖;

    申请日2021-03-30

  • 分类号G06F17/14(20060101);

  • 代理机构31260 上海晨皓知识产权代理事务所(普通合伙);

  • 代理人成丽杰

  • 地址 201203 上海市浦东新区博霞路22号209室

  • 入库时间 2023-06-19 10:58:46

说明书

技术领域

本发明实施例涉及信号处理领域,特别涉及一种基-6蝶形运算单元、方法、电子设备及存储介质。

背景技术

离散傅里叶变换(Discrete Fourier Transform,简称“DFT”)是信号处理中的最基本方法,用于将信号从时间域变换到频率域,其计算公式如下所示:

DFT将生成的DFT矩阵F与输入的时域向量做乘法运算,可以看出,对于N个信号采样点,DFT共需要执行N的平方次复数乘法和N(N-1)次复数加法,复杂度高,实现成本高。快速傅里叶变换FFT(Fast Fourier Transform,简称“FFT”)作为离散傅里叶变换DFT(Discrete Fourier Transform,简称“DFT”)的高效计算方法,在数字信号处理领域发挥着重要作用,用于实现信号的调制和解调。

典型的FFT处理器,例如在Cooley, James W.与 Tukey, John W. 1965年发表在《Mathematics Of Computation》第19期第297-301页的论文“An algorithm for themachine calculation of complex Fourier series”和美国专利US5233551A: Radix-12DFT/FFT building block中所公开的,对于6点FFT的计算,通过部署3个基-2蝶形Radix-2运算单元、2个基-3蝶形Radix-3运算单元和两级旋转因子运算单元,来完成计算,其中,每个Radix-2运算单元需要执行2次复数加法运算,每个Radix-3运算单元需要执行7次复数加法和2次复数乘法运算,每一级旋转因子运算单元需要执行6次复数乘法运算,所以,对于6点FFT的计算共需要执行20次复数加法运算和16次乘法运算,其中,复数乘法的逻辑复杂度远高于复数加法。

因此,目前的6点FFT的计算存在以下问题:需要多次乘法运算,运算逻辑复杂度高,需要耗费较多的计算资源。

发明内容

本发明实施方式的目的在于提供一种基-6蝶形运算单元、方法、电子设备及存储介质,可以减少计算时间,节省计算资源,提高计算效率。

为解决上述技术问题,本发明的实施方式提供了一种基-6蝶形运算单元,包括:第一层运算单元,用于将第一时域信号x1与第四时域信号x4相加,得到输出变量s11,将x1与x4相减,得到输出变量s12,将第二时域信号x2与第五时域信号x5相加,得到输出变量s13,将x2与x5相减,得到输出变量s14,将第三时域信号x3与第六时域信号x6相加,得到输出变量s15,将x3与x6相减,得到输出变量s16;第二层运算单元,用于将从第一层运算单元获取的s14和s16相加,得到输出变量s23,将s14和s16相减,得到输出变量s24,将从第一层运算单元获取的s13和s15相加,得到输出变量s21,将s13和s15相减,得到输出变量s22;第三层运算单元,用于将从第二层运算单元获取的s21向右移位1比特后,与从第一层运算单元获取的s11相减,得到输出变量s32,将从第二层运算单元获取的s24向右移位1比特后,与从第一层运算单元获取的s12相加,得到输出变量s31,将从第二层运算单元获取的s23向左移位16比特后,与s23向左移位1比特、s23向左移位2比特、s23向左移位5比特、s23向左移位8比特及s23向左移位12比特相减得到的差,再向右移位15比特,得到输出变量s33,将从第二层运算单元获取的s22向左移位16比特后,与s22向左移位1比特、s22向左移位2比特、s22向左移位5比特、s22向左移位8比特及s22向左移位12比特相减得到的差,再向右移位15比特,得到输出变量s34;第四层运算单元,用于将从第一层运算单元获取的s12和从第二层运算单元获取的s24相减,得到第四频域信号y4,将从第一层运算单元获取的s11和从第二层运算单元获取的s21相加,得到第一频域信号y1,将从第三层运算单元获取的s32和s34相加,得到输出的第五频域信号y5,将s32和s34相减,得到输出的第三频域信号y3,将从第三层运算单元获取的s31和s33相加,得到输出的第六频域信号y6,将s31和s33相减,得到输出的第二频域信号y2。

本发明的实施方式还提供了一种基-6蝶形运算方法,包括:将第一时域信号x1与第四时域信号x4相加,得到输出变量s11,将x1与x4相减,得到输出变量s12,将第二时域信号x2与第五时域信号x5相加,得到输出变量s13,将x2与x5相减,得到输出变量s14,将第三时域信号x3与第六时域信号x6相加,得到输出变量s15,将x3与x6相减,得到输出变量s16;将s14和s16相加,得到输出变量s23,将s14和s16相减,得到输出变量s24,将s13和s15相加,得到输出变量s21,将s13和s15相减,得到输出变量s22;将s21向右移位1比特后,与s11相减,得到输出变量s32,将s24向右移位1比特后,与s12相加,得到输出变量s31,将s23向左移位16比特后,与s23向左移位1比特、s23向左移位2比特、s23向左移位5比特、s23向左移位8比特及s23向左移位12比特相减得到的差,再向右移位15比特,得到输出变量s33,将s22向左移位16比特后,与s22向左移位1比特、s22向左移位2比特、s22向左移位5比特、s22向左移位8比特及s22向左移位12比特相减得到的差,再向右移位15比特,得到输出变量s34;将s12和s24相减,得到第四频域信号y4,将s11和s21相加,得到第一频域信号y1,将s32和s34相加,得到输出的第五频域信号y5,将s32和s34相减,得到输出的第三频域信号y3,将s31和s33相加,得到输出的第六频域信号y6,将s31和s33相减,得到输出的第二频域信号y2。

本发明的实施方式还提供了一种电子设备,包括:至少一个处理器;与至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的基-6蝶形运算方法。

本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述基-6蝶形运算方法。

本发明实施方式相对于现有技术而言,各个运算单元均不涉及乘法运算,只需要加法和移位运算,因此,本发明的基-6蝶形运算单元的运算逻辑复杂度低,可以减少计算时间,节省计算资源,提高计算效率。

另外,第一层运算单元,包括:第一基-2蝶形Radix-2运算单元、第二Radix-2运算单元和第三Radix-2运算单元;第一Radix-2运算单元,用于将x1与x4相加,得到s11,将x1与x4相减,得到s12;第二Radix-2运算单元,用于将x2与x5相加,得到s13,将x2与x5相减,得到s14;第三Radix-2运算单元,用于将x3与x6相加,得到s15,将x3与x6相减,得到s16。通过将每个层运算单元都拆分为多个运算单元的组合,在减少计算时间,节省计算资源,提高计算效率的同时,提高了基-6蝶形运算处理的结构的灵活性。

另外,减法移位运算单元、加法移位运算单元、第一多步移位运算单元和第二多步移位运算单元,还用于在移位运算后,判断移位运算的舍去部分的最高位是否为1;若是,则将移位运算的保留部分的最低位加1。通过在移位运算后,当移位运算的舍去部分的最高位为1时,将移位运算的保留部分的最低位加1,可以减小移位运算的误差,提高计算精度。

另外,基-6蝶形运算单元还包括:同步单元,用于向第一层运算单元发送第一时钟信号,向第二层运算单元发送第二时钟信号,向第三层运算单元发送第三时钟信号,向第四层运算单元发送第四时钟信号,供各个运算单元根据接收到对应的时钟信号进行运算。通过向不同层级运算单元发送时钟信号作为同步信号,供各个运算单元在接收到时钟信号后,开始运算,可以使同一层级的运算单元在同一时间内进行并行运算,节省计算时间,提高计算效率。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是根据本发明第一实施方式提供的基-6蝶形运算单元结构示意图;

图2是根据本发明第一实施方式提供的基-6蝶形运算单元计算效果的数值验证结果图;

图3是根据本发明第二实施方式提供的Radix-2运算单元结构示意图;

图4是根据本发明第二实施方式提供的基-6蝶形运算单元结构示意图;

图5是根据本发明第二实施方式提供的减法移位运算单元结构示意图;

图6是根据本发明第二实施方式提供的加法移位运算单元结构示意图;

图7是根据本发明第二实施方式提供的多步移位运算单元结构示意图;

图8是根据本发明第三实施方式提供的基-6蝶形运算方法流程图;

图9是根据本发明第四实施方式提供的电子设备结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。

本发明的第一实施方式涉及一种基-6蝶形运算单元,如图1所示,包括:

第一层运算单元10,用于将第一时域信号x1与第四时域信号x4相加,得到输出变量s11,将x1与x4相减,得到输出变量s12,将第二时域信号x2与第五时域信号x5相加,得到输出变量s13,将x2与x5相减,得到输出变量s14,将第三时域信号x3与第六时域信号x6相加,得到输出变量s15,将x3与x6相减,得到输出变量s16。

第二层运算单元20,用于将从第一层运算单元获取的s14和s16相加,得到输出变量s23,将s14和s16相减,得到输出变量s24,将从第一层运算单元获取的s13和s15相加,得到输出变量s21,将s13和s15相减,得到输出变量s22。

第三层运算单元30,用于将从第二层运算单元获取的s21向右移位1比特后,与从第一层运算单元获取的s11相减,得到输出变量s32,将从第二层运算单元获取的s24向右移位1比特后,与从第一层运算单元获取的s12相加,得到输出变量s31,将从第二层运算单元获取的s23向左移位16比特后,与s23向左移位1比特、s23向左移位2比特、s23向左移位5比特、s23向左移位8比特及s23向左移位12比特相减得到的差,再向右移位15比特,得到输出变量s33,将从第二层运算单元获取的s22向左移位16比特后,与s22向左移位1比特、s22向左移位2比特、s22向左移位5比特、s22向左移位8比特及s22向左移位12比特相减得到的差,再向右移位15比特,得到输出变量s34。

第四层运算单元40,用于将从第一层运算单元获取的s12和从第二层运算单元获取的s24相减,得到第四频域信号y4,将从第一层运算单元获取的s11和从第二层运算单元获取的s21相加,得到第一频域信号y1,将从第三层运算单元获取的s32和s34相加,得到输出的第五频域信号y5,将s32和s34相减,得到输出的第三频域信号y3,将从第三层运算单元获取的s31和s33相加,得到输出的第六频域信号y6,将s31和s33相减,得到输出的第二频域信号y2。

本实施方式的基-6蝶形运算单元(Radix-6),应用于数字信号处理器(DigitalSignal Process,简称“DSP”)芯片或者其他芯片中,作为FFT算法单元中的构成组件。本申请的基-6蝶形运算单元可以作为一个单独的6点FFT处理器,专用于6个信号采样点的FFT计算,也可以作为一个FFT处理器中的实现6点的FFT计算的运算单元。例如,本实施方式的基-6蝶形运算单元可以应用在长期演进LTE(Long Term Evolution,简称“LTE”)和新空口(NewRadio,简称“NR”)场景的上行链路变换预编码(UL transform precoding),上行/下行链路波形处理(UL/DL waveform process)中,作为大规格FFT设计的一个高效子模块。一般来说,适用于典型无线通信系统比如一般指长期演进技术(Long Term Evolution,简称“LTE”)和新空口(New Radio,简称“NR”)的FFT算法单元是能够同时支持诸如4096、2048或1024等运算点数(即信号采样点的个数)的复杂逻辑模块,这些FFT算法单元将大的运算点数(诸如4096、2048或1024等)分解因子拆成小的运算点数(例如12、8、6或2等),进行递归运算,最终实现大的运算点数的FFT计算。现有技术中使用CTA算法进行基-6蝶形运算,其部署3个Radix-2、2个Radix-3和两级旋转因子运算单元,即使不考虑生成旋转因子的处理负载,也不考虑运算中的倒序等内存操作和计算中其他的处理过程,也需要执行20次复数加法运算和16次乘法运算,因此仍然需要耗费较长的计算时间。本实施方式的基-6蝶形运算单元,根据对DFT矩阵运算的等价替换运算,以数字电路的形式,定制6点FFT处理算法的专用逻辑实现,只要输入的是位宽适配的信号序列,即6个采样点的信号序列,本实施方式的基-6蝶形运算单元即可将输入的6点时域信号的采样点经过加法及移位运算,转换成6点频域信号输出,本实施方式的基-6蝶形运算单元,只进行加法及移位运算,拥有理论意义上接近严格最优的算法复杂度,计算性能效果的数值验证结果如图2所示,解决工程实践中FFT计算复杂度高的问题。

下面对本实施方式的基-6蝶形运算单元的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。

对于输入的信号采样序列,基-6蝶形运算单元将每个采样点,即每个时域信号,储存为I路在前,Q路在后的复数变量,将6个时域信号顺序储存为x1,x2,x3,x4,x5,x6,其中,每个输入的时域信号都是一个复数变量,并以定点格式表示。

第一层运算单元有6个输入端,6个输出端,第二层运算单元有4个输入端,4个输出端,第三层运算单元有6个输入端,4个输出端,第四层运算单元有8个输入端,6个输出端。

具体地,第一层运算单元的第一输入端用于输入x1,第二输入端用于输入x2,第三输入端用于输入x3,第四输入端用于输入x4,第五输入端用于输入x5,第六输入端用于输入x6,第一输出端与第三层运算单元的第一输入端和第四层运算单元的第三输入端连接,向第三层运算单元和第四层运算单元输出s11,第二输出端与第三层运算单元的第三输入端和第四层运算单元的第一输入端连接,向第三层运算单元和第四层运算单元输出s12,第三输出端与第二层运算单元的第三输入端连接,向第二层运算单元输出s13,第四输出端与第二层运算单元的第一输入端连接,向第二层运算单元输出s14,第五输出端与第二层运算单元的第四输入端连接,向第二层运算单元输出s15,第六输出端与第二层运算单元的第二输入端用于输出s16。

第二层运算单元的第一输出端与第三层运算单元的第五输入端连接,向第三层运算单元输出s23,第二输出端与第三层运算单元的第四输入端和第四层运算单元的第二输入端连接,向第三层运算单元、第四层运算单元输出s24,第三输出端与第三层运算单元的第二输入端和第四层运算单元的第四输入端连接,向第三层运算单元、第四层运算单元输出s21,第四输出端与第三层运算单元的第六输入端连接,向第三层运算单元输出s22。

第三层运算单元的第一输出端与第四层运算单元的第五输入端连接,向第四层运算单元输入s32,第二输出端与第四层运算单元的第七输入端连接,向第四层运算单元输入s31,第三输出端与第四层运算单元的第八输入端连接,向第四层运算单元输入s33,第四输出端与第四层运算单元的第六输入端连接,向第四层运算单元输入s34。

在一个例子中,基-6蝶形运算单元中还存在存储单元,如寄存器,用于存储s11、s12、s24、s21,其中,对s11和s12各需要使用两个中间复数变量进行存储,对s24和s21各需要使用一个中间复数变量进行存储,即本实施方式共需要6个中间复数变量进行计算的中间存储。

在一个例子中,基-6蝶形运算单元中还存在同步单元,用于向第一层运算单元发送第一时钟信号,向第二层运算单元发送第二时钟信号,向第三层运算单元发送第三时钟信号,向第四层运算单元发送第四时钟信号,供各个运算单元根据接收到对应的时钟信号进行运算。本实施例中,通过向不同层级运算单元发送时钟信号作为同步信号,供各个运算单元在接收到时钟信号后,开始运算,可以使同一层级的运算单元在同一时间内进行并行运算,节省计算时间,提高计算效率。

本实施方式的基-6蝶形运算单元,通过部署减法移位运算单元、加法移位运算单元、移位运算单元、减法运算单元、加法运算单元和Radix-2运算单元,代替现有技术中Radix-2运算单元、Radix-3运算单元和旋转因子运算单元,进行基-6蝶形运算的运算,算法中总计只有23次复数加法(和少量移位),完全没有乘法。即,本实施例中的各个运算单元均不需要乘法运算,只需要加法和移位运算,因此,各个运算单元均不涉及乘法运算,只需要加法和移位运算,因此,本发明的基-6蝶形运算单元的运算逻辑复杂度低,可以减少计算时间,节省计算资源,提高计算效率。同时,本发明的基-6蝶形运算单元,由于只需要加法和移位运算,不涉及乘法运算,因此,电路结构简单,还可以节约电路面积。

值得一提的是,本实施方式中所涉及到的各单元、模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本发明的第二实施方式涉及一种基-6蝶形运算单元。第二实施方式与第一实施方式大致相同,主要区别之处在于:在第二实施方式中,将第一实施方式的各层运算单元进行拆分细化为多个运算单元的组合。

本实施方式的基-6蝶形运算单元中的第一层运算单元,可以由3个如图3所示的Radix-2运算单元组成,每个Radix-2运算单元执行的基本运算的算式如下:Out1 = in1 +in2,Out2 = in1–in2,in1为第一输入端口输入的变量,in2为第二输入端口输入的变量。

在一个例子中,本实施方式的基-6蝶形运算单元还可以根据四层运算单元,构造为如图4所示的四层结构。在第一层结构10(即第一层运算单元)中,基-6蝶形运算单元部署了3个Radix-2运算单元,每个Radix-2运算单元对输入的两个复数变量进行运算,并得到2个输出结果。

具体地,第一Radix-2运算单元101,对输入的时域信号x1、x4进行运算,得到s11、s12。其中,s11 = x1 + x4,s12 = x1 - x4。x1从第一Radix-2运算单元101的第一输入端口输入,x4从第一Radix-2运算单元101的第二输入端口输入,s11从第一Radix-2运算单元101的第一输出端口输出,s12从第一Radix-2运算单元101的第二输出端口输出。第二Radix-2运算单元102,对输入的时域信号x2、x5进行运算,得到s13、s14。其中,s13 = x2 + x5,s14= x2 - x5。x2从第二Radix-2运算单元102的第一输入端口输入,x5从第二Radix-2运算单元102的第二输入端口输入,s13从第二Radix-2运算单元102的第一输出端口输出,s14从第二Radix-2运算单元102的第二输出端口输出。第三Radix-2运算单元103,对输入的时域信号x3、x6进行运算,得到s15、s16。其中,s15 = x3 + x6,s16 = x3 - x6。x3从第三Radix-2运算单元103的第一输入端口输入,x6从第三Radix-2运算单元103的第二输入端口输入,s15从第三Radix-2运算单元103的第一输出端口输出,s16从第三Radix-2运算单元103的第二输出端口输出。

在第二层结构20(即第二层运算单元)中,基-6蝶形运算单元部署了2个Radix-2运算单元,每个Radix-2运算单元将相连的第一层结构中的Radix-2运算单元的输出作为输入,进行DFT运算并得到2个输出结果。

具体地,第四Radix-2运算单元201,对第二Radix-2运算单元102输出的s14,和第三Radix-2运算单元103输出的s16,进行运算,得到s23和s24。其中,s23 = s14 + s16,s24= s14 - s16。s14从第四Radix-2运算单元201的第一输入端口输入,s16从第四Radix-2运算单元201的第二输入端口输入,s23从第四Radix-2运算单元201的第一输出端口输出,s24从第四Radix-2运算单元201的第二输出端口输出。第五Radix-2运算单元202,对第二Radix-2运算单元102输出的s13,和第三Radix-2运算单元103输出的s15,进行运算,得到s21和s22。其中,s21 = s13 + s15,s22 = s13 - s15。s13从第五Radix-2运算单元202的第一输入端口输入,s15从第五Radix-2运算单元202的第二输入端口输入,s21从第五Radix-2运算单元202的第一输出端口输出,s22从第五Radix-2运算单元202的第二输出端口输出。

在第三层结构30(即第三层运算单元)中,基-6蝶形运算单元部署了1个减法移位运算单元、1个加法移位运算单元和2个多步移位运算单元,其中,1个减法移位运算单元和1个加法移位运算单元各有2个输入端口和1个输出端口,多步移位运算单元有1个输入端口和1个输出端口。如图5所示的减法移位运算单元(即blks)的运算方法如下: Out = in1 -(in2>>1),in1为减法移位运算单元的第一输入端口输入的变量,in2为减法移位运算单元的第二输入端口输入的变量,in2>>1表示将in2的数值右移1位,即,右移1比特,Out为减法移位运算单元的输出结果。如图6所示的加法移位运算单元(即blka)的运算方法如下:Out= in1+(in2>>1),in1为加法移位运算单元的第一输入端口输入的变量,in2为加法移位运算单元的第二输入端口输入的变量,Out为加法移位运算单元的输出结果。如图7所示的多步移位运算单元(即blkm)的运算方法如下:out = (in<<16) - (in<<1) - (in<<2) - (in<<5) - (in<<8) - (in<<12),Out = out>>15, in为多步移位运算单元的输入端口输入的变量, Out为多步移位运算单元的输出结果。

具体地,减法移位运算单元301,对第一Radix-2运算单元101输出的s11,和第五Radix-2运算单元202输出的s21,进行运算,得到s32。其中,s32= s11- (s21>>1),s21>>1表示将s21右移1比特,即,将s21的实数部分和虚数部分都右移1位。s11从减法移位运算单元301的第一输入端口输入,s21从减法移位运算单元301的第二输入端口输入,s32从减法移位运算单元301的输出端口输出。加法移位运算单元302,对第一Radix-2运算单元101输出的s12,和第四Radix-2运算单元201输出的s24,进行运算,得到s31。其中,s31= s12+ (s24>>1),s12从加法移位运算单元302的第一输入端口输入,s24从加法移位运算单元302的第二输入端口输入,s31从加法移位运算单元302的输出端口输出。第一多步移位运算单元303,对第四Radix-2运算单元201输出的s23,进行运算,得到s33。其中,s33= [(s23<<16) -(s23<<1) - (s23<<2) - (s23<<5) - (s23<<8) - (s23<<12)] >>15,s23<<16表示将s23左移16位,即,将s23的实数部分和虚数部分都左移16位,s23<<1、s23<<2等移位运算以此类推,s23从第一多步移位运算单元303的输入端口输入,s33从第一多步移位运算单元303的输出端口输出。第二多步移位运算单元304,对第五 Radix-2运算单元202输出的s22,进行运算,得到s34。其中,s34= [(s22<<16) - (s22<<1) - (s22<<2) - (s22<<5) - (s22<<8)- (s22<<12)] >>15,s22从第二多步移位运算单元304的输入端口输入,s34从第二多步移位运算单元304的输出端口输出。

进一步地,减法移位运算单元301、加法移位运算单元302、第一多步移位运算单元303和第二多步移位运算单元304,在移位运算后,还判断移位运算的舍去部分的最高位是否为1,若舍去部分的最高位是1,则将移位运算的保留部分的最低位加1。例如,将00000111向右移位2比特,则舍去部分为11,保留部分为00000001,由于舍去部分的最高位为1,因此,此次移位的结果为00000010。

本实施例中,通过在移位运算后,当移位运算的舍去部分的最高位为1时,将移位的保留部分的最低位加1,可以减小移位运算的误差,提高计算精度。

在第四层结构40(即第四层运算单元)中,基-6蝶形运算单元部署了1个减法运算单元(即sub)、1个加法运算单元(即add)和2个Radix-2运算单元,其中,1个减法运算单元和1个加法移位运算单元各有2个输入端口和1个输出端口,Radix-2运算单元有2个输入端口和2个输出端口,因此,基-6蝶形运算单元在第四层得到6个输出结果,这6个输出结果即是基-6蝶形运算单元对输入的6个时域信号运算后得到的6个频域信号,y1, y2, y3, y4,y5, y6。

具体地,减法运算单元401,对第一Radix-2运算单元101输出的s12,和第四Radix-2运算单元201输出的s24进行运算,得到y4。其中,y4= s12- s24,s12从减法运算单元401的第一输入端口输入,s24从减法运算单元401的第二输入端口输入,y4从减法运算单元401的输出端口输出。加法运算单元402,对第一Radix-2运算单元101输出的s11,和第五Radix-2运算单元202输出的s21进行运算,得到y1。其中,y1= s11+ s21。s11从加法运算单元402的第一输入端口输入,s21从加法运算单元402的第二输入端口输入,y1从加法运算单元402的输出端口输出。第六Radix-2运算单元403,对减法移位运算单元301输出的s32,和第二多步移位运算单元304输出的s34进行运算,得到y5和y3。其中,y5 = s32 + s34,y3 = s32 -s34,s32从第六Radix-2运算单元403的第一输入端口输入,s34从第六Radix-2运算单元403的第二输入端口输入,y5从第六Radix-2运算单元403的第一输出端口输出,y3从第六Radix-2运算单元403的第二输出端口输出。第七Radix-2运算单元404,对加法移位运算单元302输出的s31,和第一多步移位运算单元303输出的s33进行运算,得到y6和y2。其中,y6= s31 + s33,y2 = s31 - s33,s31从第七Radix-2运算单元404的第一输入端口输入,s33从第七Radix-2运算单元404的第二输入端口输入,y6从第七Radix-2运算单元404的第一输出端口输出,y2从第七Radix-2运算单元404的第二输出端口输出。

在一个例子中,本实施方式的基-6蝶形运算单元每层的运算单元可以并行处理。由基-6蝶形运算单元中的同步单元,向第一层运算单元发送第一时钟信号,向第二层运算单元发送第二时钟信号,向第三层运算单元发送第三时钟信号,向第四层运算单元发送第四时钟信号,供各个运算单元根据接收到对应的时钟信号进行运算。各个运算单元在接收到同步信号,即时钟信号后,才开始执行本单元的运算,使得同一层结构中的运算单元可以并行处理。

具体地,同步单元可以向第一、第二和第三Radix-2运算单元发送第一时钟信号,在第二预设时间向第四和第五Radix-2运算单元发送第二时钟信号,在第三预设时间向减法移位运算单元、加法移位运算单元、第一多步移位运算单元和第二多步移位计算单元发送第三时钟信号,在第四预设时间向减法运算单元、加法运算单元、第六Radix-2运算单元和第七Radix-2运算单元发送第四时钟信号。

本实施例中,通过向不同层级运算单元发送时钟信号作为同步信号,供各个运算单元在接收到时钟信号后,开始运算,可以使同一层级的运算单元在同一时间内进行并行运算,节省计算时间,提高计算效率。

进一步地,基-6蝶形运算单元使用寄存单元,对第一Radix-2运算单元输出的s11、s12进行中间存储,供减法移位运算单元、加法移位运算单元、减法运算单元和加法运算单元获取对应的输入变量进行运算,对第四Radix-2运算单元输出的s24和第五Radix-2运算单元输出的s21进行中间存储,供减法运算单元和加法运算单元获取对应的输入变量进行运算。具体地,寄存单元使用两个中间复数变量存储s11,使用两个中间复数变量存储s12,使用一个中间复数变量存储s24,使用一个中间复数变量存储s21,一共使用六个中间复数变量。

本实施例中,通过使用寄存单元,对第一Radix-2运算单元的第一输出变量、第一Radix-2运算单元的第二输出变量、第四Radix-2运算单元的第二输出变量和第五Radix-2运算单元的第一输出变量,供非相邻层级的运算单元获取所需的输入变量,以进行不同层级运算单元的并行运算,节省计算时间,提高计算效率。

本实施方式的基-6蝶形运算单元,通过将每个层运算单元都拆分为多个运算单元的组合,在减少计算时间,节省计算资源,提高计算效率的同时,提高了基-6蝶形运算处理的结构的灵活性。

值得一提的是,本实施方式中所涉及到的各单元、模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本发明的第三实施方式涉及一种基-6蝶形运算方法,应用于上述实施方式的基-6蝶形运算单元,如图8所示,包括:

步骤801,对输入的时域信号进行第一层运算。

具体地,基-6蝶形运算单元将第一时域信号x1与第四时域信号x4相加,得到输出变量s11,将x1与x4相减,得到输出变量s12,将第二时域信号x2与第五时域信号x5相加,得到输出变量s13,将x2与x5相减,得到输出变量s14,将第三时域信号x3与第六时域信号x6相加,得到输出变量s15,将x3与x6相减,得到输出变量s16。

步骤802,根据第一层运算的运算结果,进行第二层运算。

具体地,基-6蝶形运算单元将s14和s16相加,得到输出变量s23,将s14和s16相减,得到输出变量s24,将s13和s15相加,得到输出变量s21,将s13和s15相减,得到输出变量s22。

步骤803,根据第一层运算的运算结果和第二层运算的运算结果,进行第三层运算。

具体地,基-6蝶形运算单元将s21向右移位1比特后,与s11相减,得到输出变量s32,将s24向右移位1比特后,与s12相加,得到输出变量s31,将s23向左移位16比特后,与s23向左移位1比特、s23向左移位1比特、s23向左移位5比特、s23向左移位8比特及s23向左移位12比特相减得到的差,再向右移位15比特,得到输出变量s33,将s22向左移位16比特后,与s22向左移位1比特、s22向左移位2比特、s22向左移位5比特、s22向左移位8比特及s22向左移位12比特相减得到的差,再向右移位15比特,得到输出变量s34。

进一步地,在移位运算后,基-6蝶形运算单元还判断移位运算的舍去部分的最高位是否为1,若舍去部分的最高位是1,则将移位运算的保留部分的最低位加1。例如,将00000111向右移位2比特,则舍去部分为11,保留部分为00000001,由于舍去部分的最高位为1,因此,此次移位的结果为00000010。

步骤804,根据第一层运算的运算结果、第二层运算的运算结果和第三层运算的运算结果,进行第四层运算,得到频域信号。

具体地,基-6蝶形运算单元将s12和s24相减,得到第四频域信号y4,将s11和s21相加,得到第一频域信号y1,将s32和s34相加,得到输出的第五频域信号y5,将s32和s34相减,得到输出的第三频域信号y3,将s31和s33相加,得到输出的第六频域信号y6,将s31和s33相减,得到输出的第二频域信号y2。

在一个例子中,基-6蝶形运算单元还对s11、s12、s24、s21进行中间存储,其中,对s11和s12各需要使用两个中间复数变量进行存储,对s24和s21各需要使用一个中间复数变量进行存储,即本实施方式共需要6个中间复数变量进行计算的中间存储。

在一个例子中,基-6蝶形运算单元还在向第一层运算单元发送第一时钟信号,向第二层运算单元发送第二时钟信号,向第三层运算单元发送第三时钟信号,向第四层运算单元发送第四时钟信号,供各个运算单元根据接收到对应的时钟信号进行运算。

不难发现,本实施方式为与第一、第二实施方式相对应的方法实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明第四实施方式涉及一种电子设备,如图9所示,包括:至少一个处理器901;与至少一个处理器通信连接的存储器902;其中,存储器902存储有可被至少一个处理器901执行的指令,指令被至少一个处理器901执行上述的基-6蝶形运算方法。

其中,存储器902和处理器901采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器901和存储器902的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器901处理的信息通过天线在无线介质上进行传输,进一步,天线还接收信息并将信息传送给处理器901。

处理器901负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器902可以被用于存储处理器在执行操作时所使用的信息。

本发明第五实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。

即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号