书签 分享 收藏 举报 版权申诉 / 9

一种利用数论变换计算循环卷积的电路结构.pdf

  • 上传人:le****a
  • 文档编号:6155844
  • 上传时间:2019-05-08
  • 格式:PDF
  • 页数:9
  • 大小:658.15KB
  • 摘要
    申请专利号:

    CN201410062873.5

    申请日:

    2014.02.25

    公开号:

    CN103870438A

    公开日:

    2014.06.18

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 17/14申请日:20140225|||公开

    IPC分类号:

    G06F17/14; G06F7/72

    主分类号:

    G06F17/14

    申请人:

    复旦大学

    发明人:

    韩军; 杨春峰; 曾晓洋

    地址:

    200433 上海市杨浦区邯郸路220号

    优先权:

    专利代理机构:

    上海正旦专利代理有限公司 31200

    代理人:

    陆飞;王洁平

    PDF完整版下载: PDF下载
    内容摘要

    本发明属于集成电路设计技术领域,具体为一种利用数论变换计算循环卷积的电路结构。其包括输入数据缓存RAM、输出数据缓存RAM、运算RAM、计数器、主控制器、地址产生模块、蝶形运算模块和取模运算单元等。本发明中变换只需要加法(减法)及移位操作而不用乘法,从而提高了运算速度,费马数论变换(FNT)还消除了FFT带来的舍入误差,故能得到高精度的卷积,并且不需要基函数的存取,从而节省的存储空间,是一种以更小的芯片面积和更低的功耗实现快速循环卷积运算的电路结构,能够较好地应用于图像滤波和图像处理领域。

    权利要求书

    权利要求书
    1.  一种利用数论变换计算循环卷积的电路结构,其特征在于:其包括输入数据缓存RAM、运算RAM、计数器、主控制器、地址产生模块、蝶形运算模块、取模运算单元和输出数据缓存RAM;其中:
    输入数据缓存RAM,对输入数据进行缓存;
    计数器,在1-N之间循环计数,N为变换序列长度,其计数输出作为主控制器的输入;
    主控制器,根据计数器的值控制地址产生模块,以及产生蝶形运算单元移位数的值和符号;
    地址产生模块,输出读写运算RAM的地址,以及判断是不是最后一位写地址,并将判断结果输出到输出数据缓存RAM;
    运算RAM,用于存取由蝶形运算单元计算得到的中间结果;
    蝶形运算模块,分别从运算RAM读取中间运算结果、从输入数据缓存RAM读取输入序列数据和从主控制读取移位控制信号,进行蝶形运算;
    取模运算模块,将蝶形运算模块得到的数据对费马数进行取模,并将结果输出到输出数据缓存RAM;
    输出数据缓存RAM,对输出数据进行缓存;其中:
    所述蝶形运算单元中包含逻辑移位、取反、选择器、加减控制逻辑和加减法器;其中:
    逻辑移位,用于进行逻辑移位操作,移位数据为输入数据缓存RAM模块输出的序列,移位量为主控制器输入的移位控制信号;
    取反,对移位后的数据乘以-1;
    选择器,对移位输出和移位输出取反后的数据进行选择,选择端的控制信号为移位控制信号的最高位;
    加减控制逻辑,用来控制加减法器进行加法或减法操作;
    加减法器,进行加减法运算;
    由输入数据缓存RAM输入的数据yn先经过移位操作,具体移位数值由从主控制器输入的数据shift进行控制;然后移位后的数据分为2路,一路不进行任何操作,另一路进行取反操作;之后2路数据经过选择器,从主控制器输入的信号控制选择器进行数据选择;最后,选择器的输出与从运算RAM读入的数据进行相加得到输出。

    2.  根据权利要求1所述的电路结构,其特征在于:所述取模运算单元中包括选择器、选择器控制逻辑和减法器;其中:
    选择器,对两个输入数据选择;
    选择器控制逻辑,产生选择器的选择端信号;
    减法器,进行减法运算;将输入数据In的高位数据In[63:32]减去低位数据In[31:0],再减去符号位In[64:64],即可得到输入数据In[64:0]对模M=Ft=2^32+1的取模运算结果。

    说明书

    说明书一种利用数论变换计算循环卷积的电路结构
    技术领域
    本发明属于集成电路设计技术领域,具体涉及一种新型利用数论变换计算循环卷积的电路结构。 
    背景技术
    卷积是一种线性运算,其本质是滑动平均思想,广泛应用于图像滤波,图像处理中常见的mask运算就是卷积。另外,卷积在工程和数学中还有很多其他应用,统计学中,加权的滑动平均是一种卷积。概率论中,两个统计独立变量X与Y的和的概率密度函数是x与Y的概率密度函数的卷积。声学中,回声可以用源声与一个反映各种反射效应的函数的卷积表示。电子工程与信号处理中,任意一个线性系统的输出都可以通过将输入信号与系统函数做卷积获得,物理学中,任意一个线性系统都存在卷积。 
    所谓两个序列xn(n=0,1,…,N-1)和hn(n=0,1,…,N-1)的循环卷积是指: 

    上式中的符号<k>N表示整数k模N的最小非负剩余,也就是整数k被正整数N 除所余的非负整数。
    循环卷积可用变换法实现,一般常用的变换为快速傅里叶变换(FFT)。分别计算xn和hn(n=0,1,2,…,N-1)的FFT,即Xk,Hk,将它们相乘得到yn的FFT,即Yk=Xk*Hk(k=0,1,2,…,N-1),最后将Yk进行反变换(IFFT),就得到yn,示意图如图1所示。 
    由图1可知,利用FFT计算长度为N的序列的循环卷积,需要两次正变换,一次拟变换和N次乘法,一个N点的FFT变换需要O(Nlog2N)次乘法。 
    以数论为基础的计算循环卷积的方法叫做数论变换(NTT)。特别引人关注的是NTT中有一种Fermata数变换(FNT),这样变换只需要加法(减法)及移位操作而不用乘法,从而提高了运算速度。FNT还消除了FFT带来的舍入误差,故能得到高精度的卷积,并且不需要基函数的存取,从而节省的存储空间。但是,FNT也有缺点,主要是没有明显的物理意义;序列{xn}的变换{Xk}不再是频谱,因此中间过程不能如FFT那样用于测频;在加上字长受限制,不够灵活。 
    数论变换(NTT)是一种有限域内的运算,它和FFT一样都是一种线性正交变换,具有FFT类似的性质,具有循环卷积特性,因此可用于计算两个序列的循环卷积,并且具有FFT一样的快速算法。但不同之处有两点,第一是以α代替FFT中的WN,由于α是一正整数,不像FFT那样要预先储存基函数WN;第二是每一步运算过程都要判断一下中间量是否超过模M,如果超过模M,就应去小于模M的同余值,以防溢出。由NTT计算序列循环卷积的过程示意图如图2所示。 
    对序列xn进行数论变换的公式如下: 

    其中变换矩阵T为:

    对于费马数论变换(FNT),模M为费马数(M=2N+1),整数α为M的N阶本源单位根,N为序列xn的长度。
    与快速傅里叶变换(FFT)一样,数论变换(NTT)也有快速算法,快速算法的流程图如图6所示。 
    这相当于FFT的按频率抽取的算法,同样可用按时间抽取的算法。用上述快速算法,可将原来所需的N2个乘法降为Nlog2N次乘法。如果α是2或者2的幂,则只需要Nlog2N次移位操作。 
    为了使NTT具有快速演算的效果,通常对M、N、α的要求是: 
    1.    变换长度N必须适合FFT类型的快速演算,因而要求N是高度复合的数。当
    N=2m时,就能满足这样的要求,同时,由于N表示输入采样点的个数,所以不能过小。
    2.    数论变换的一个特点是用一个整数α代替FFT中的WN,FFT需要大量的复乘, 
    而NTT只需作α的方幂的乘法。如果能选择α,使得α的幂是一种简单运算,那就能起到节省运算的目的。如果选取α为2或2的幂,这时在作2的方幂的乘法时,仅为移位操作。
    3.    为了便于模M的运算,当用二进制表示M时,其位数(一般称为字长)越小 
    越好。但M的值不能过小,以防止溢出。对于费马数论变换(FNT),M取作费马数:
    M = Ft = 2b + 1,其中b=2t (t=0,1,2,…)
    对于FNT,N=2b=2t+1,α=2,能满足要求,例如当t=5时,M=232+1,N=64;
    可以看到变换长度N受到模M大小的限制,为了解决这一问题,可以利用多维数论变换,例如若采用二维数论变换,当M大小一样时,能实现N=2048点的数论变换。目前,模M取作费马数,是较为合适的模数。
    发明内容
    本发明的目的在于提供一种实现快速循环卷积运算的电路结构。 
    本发明利用数论变换中的费马数论变换(FNT)计算循环卷积的流程如下:在输入端的2路8位的序列xn和yn,分别经过数论变换得到对应的频域内的序列Xk和Yk,Xk与Yk相乘得到积Gk,Gk再经过数论变换逆变换即可得到序列gn,也即是序列xn和yn的循环卷积。 
    本发明提供一种利用数论变换计算循环卷积的电路结构,其包括输入数据缓存RAM、运算RAM、计数器、主控制器、地址产生模块、蝶形运算模块、取模运算单元和输出数据缓存RAM;其中: 
    输入数据缓存RAM,对输入数据进行缓存;
    计数器,在1-N之间循环计数,N为变换序列长度,其计数输出作为主控制器的输入;
    主控制器,根据计数器的值控制地址产生模块,以及产生蝶形运算单元移位数的值和符号;
    地址产生模块,输出读写运算RAM的地址,以及判断是不是最后一位写地址,并将判断结果输出到输出数据缓存RAM;
    运算RAM,用于存取由蝶形运算单元计算得到的中间结果;
    蝶形运算模块,分别从运算RAM读取中间运算结果、从输入数据缓存RAM读取输入序列数据和从主控制读取移位控制信号,进行蝶形运算;
    取模运算模块,将蝶形运算模块得到的数据对费马数进行取模,并将结果输出到输出数据缓存RAM;
    输出数据缓存RAM,对输出数据进行缓存;其中:
    所述蝶形运算单元中包含逻辑移位、取反、选择器、加减控制逻辑和加减法器;其中:
    逻辑移位,用于进行逻辑移位操作,移位数据为输入数据缓存RAM模块输出的序列,移位量为主控制器输入的移位控制信号;
    取反,对移位后的数据乘以-1;
    选择器,对移位输出和移位输出取反后的数据进行选择,选择端的控制信号为移位控制信号的最高位;
    加减控制逻辑,用来控制加减法器进行加法或减法操作;
    加减法器,进行加减法运算;
    由输入数据缓存RAM输入的数据yn先经过移位操作,具体移位数值由从主控制器输入的数据shift进行控制;然后移位后的数据分为2路,一路不进行任何操作,另一路进行取反操作;之后2路数据经过选择器,从主控制器输入的信号控制选择器进行数据选择;最后,选择器的输出与从运算RAM读入的数据进行相加得到输出。
    本发明中,所述取模运算单元中包括选择器、选择器控制逻辑和减法器;其中: 
    选择器,对两个输入数据选择;
    选择器控制逻辑,产生选择器的选择端信号;
    减法器,进行减法运算;将输入数据In的高位数据In[63:32]减去低位数据In[31:0],再减去符号位In[64:64],即可得到输入数据In[64:0]对模M=Ft=2^32+1的取模运算结果。
    本发明中利用费马数论变换(FNT)计算循环卷积的整体电路结构示意图如图3所示;输入数据先经过输入数据缓存RAM进行缓存,主控制器根据计数器的值通知地址产生模块产生对应的地址,这些地址分别输入到输入数据缓存RAM、运算RAM产生对应的运算数据,这些数据被输入到蝶形运算模块参与运算,根据条件分别将蝶形单元的运算结果输出到运算RAM或取模运算单元,取模运算单元计算得到的结果输出到输出数据缓存RAM,输出数据缓存RAM则在地址产生模块的控制下输出最终的计算结果。 
    本发明中,蝶形运算单元不需要乘法器,有3路输入信号,从运算RAM输入的序列xn;从输入数据缓存RAM输入的序列yn;从主控制器输入的移位控制信号shift。 
    本发明的有益效果在于:其变换只需要加法(减法)及移位操作而不用乘法,从而提高了运算速度,费马数论变换(FNT)还消除了FFT带来的舍入误差,故能得到高精度的卷积,并且不需要基函数的存取,从而节省的存储空间,是一种以更小的芯片面积和更低的功耗实现快速循环卷积运算的电路结构,能够较好地应用于图像滤波和图像处理领域。 
    附图说明
    图1利用数论变换(FTT)计算循环卷积的流程图。 
    图2利用数论变换(NTT)计算循环卷积的流程图。 
    图3利用费马数论变换(FNT)计算循环卷积的整体电路结构示意图。 
    图4 蝶形运算单元内部结构图。 
    图5 取模运算单元内部结构图。 
    图6 NTT快速算法流图。 
    具体实施方式
    利用NTT计算循环卷积的整体流程图如图2所示。 
    对于费马数论变换电路模块,有一个8bits的数据输入端口,一个32bits的数据输出端口。在输入端口,8bits的输入数据先经过输入数据缓存RAM缓存,然后在时钟信号的控制下被送入蝶形运算单元参与运算;本发明实现的是N(N=2k,k=1,2,3...)点循环卷积的计算,因此计数器的宽度为N bits,在0-2N之间循环计数;主控制器根据计数器的值控制地址产生模块,以及产生蝶形运算单元移位数的值和符号;地址产生模块输出读写运算RAM的地址,以及判断是不是最后一位写地址,并将判断结果输出到输出数据缓存RAM;运算RAM用于存取由蝶形单元计算得到的中间结果;取模运算单元从蝶形运算单元得到65bits的数据,然后将数据对费马数F=2^32+1取模,并将结果输出到输出数据RAM, 输出数据缓存RAM则在地址产生模块的控制下输出最终的计算结果。 
    如图4所示,在蝶形运算单元,有3路输入信号,从运算RAM输入的中间结果xn为65bits;从输入数据RAM输入的数据yn为8bits;从主控制器输入的移位控制信号shift为6bits,其中第5bits用于控制移位数量,第6bit是符号位。由输入数据RAM输入的数据线经过移位操作,具体移位数值由从主控制器输入的数据进行控制。然后移位后的数据分为2路,一路不进行任何操作,另一路进行取反操作,然后2路数据经过选择器,从主控制器输入的信号控制选择器进行数据选择。最后,选择器的输出与从运算RAM读入的数据进行相加得到输出。 
    如图5所示,在取模运算单元,输入数据In的高位数据In[63:32]减去低位数据In[31:0],再减去符号位In[64:64],即可得到输入数据In[64:0]对模M=Ft=2^32+1的取模运算结果。 

    关 键  词:
    一种 利用 数论 变换 计算 循环 卷积 电路 结构
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种利用数论变换计算循环卷积的电路结构.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6155844.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1