CN103605635A - 一种基于fpga的dft计算模块及方法 - Google Patents

一种基于fpga的dft计算模块及方法 Download PDF

Info

Publication number
CN103605635A
CN103605635A CN201310624062.5A CN201310624062A CN103605635A CN 103605635 A CN103605635 A CN 103605635A CN 201310624062 A CN201310624062 A CN 201310624062A CN 103605635 A CN103605635 A CN 103605635A
Authority
CN
China
Prior art keywords
module
phase
port
dft
summation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201310624062.5A
Other languages
English (en)
Inventor
文必洋
谭剑
田茂
田应伟
李柯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN201310624062.5A priority Critical patent/CN103605635A/zh
Publication of CN103605635A publication Critical patent/CN103605635A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于FPGA的DFT计算模块及方法,涉及到线性调频雷达系统中的解距离运算。包括相位计算模块1,CORDIC模块2,求和模块3,传输缓冲模块4。其中相位计算模块用于计算DFT变换核相位,CORDIC模块用于计算采样点与变换核相乘,求和模块用于采样点与DFT变换核相乘结果的累加,传输缓冲则主要利用RAM来实现时钟频率的转换,将需要频点的数据存储起来,以便后续的时钟取走。由于在实际应用中线性调频雷达需要的DFT频点数远小于时域点数,所以可以利用时分复用的方式计算DFT结果,而且存储量很小。该DFT模块用于线性调频系统的脉冲压缩处理,具有结构简单,消耗资源少,实时性强等优点。

Description

一种基于FPGA的DFT计算模块及方法
技术领域
本发明涉及一种DFT计算模块及方法,尤其是涉及一种基于FPGA的DFT计算模块及方法。 
背景技术
线性调频系统雷达一般采用脉冲压缩的方式,实现远距离探测和高距离分辨。而常用的脉冲压缩方法有匹配滤波和主动相关两种,主动相关即先对线性调频信号进行混频去载频去斜坡,然后转换到频域,由此实现脉冲压缩。 
对于有限长时域序列,离散傅里叶变换(DFT)是一种最常见的时频转换工具,时域中的N点序列x[n]的DFT定义为 
X [ k ] = Σ n = 0 N - 1 x [ n ] e - j 2 πkn / N , 0 ≤ k ≤ N - 1 - - - ( 1 )
在实际应用中,上述式子使用FFT(快速傅里叶变换)来实现。它利用DFT系数的特性,合并DFT运算中的某些项,把长序列DFT转换为短序列的DFT来计算,从而大大减少了计算量。 
结合线性调频系统解距离的实际需要,在解距离过程中只需要极少一部分的频点结果,也就是说需要的频点数远小于时域数据量。如果运用传统的FFT实现时频转换,根据FFT运算的特点,需要存储全部的采样结果,然后进行乘加运算。对于大采样点数的系统而言,需要消耗非常多的存储资源,而且由于是后处理,在采样数据结束之后还需要一定的运算时间才能完成。对于只需要保留极少频点的系统来说,FFT消耗存储资源过多,实现时间较长。 
无论是使用DFT实现还是FFT实现,都会涉及到采样点与变换核(e-j2πkn/N)相乘,结合变换核相乘就是数据在复平面上相位旋转的特性,使 用CORDIC代替乘法器,这样就不需要存储乘法系数。坐标旋转数字计算机CORDIC算法,通过移位和加减运算,能递归计算常用函数值。初始向量(x0,y0)旋转角度θ之后得到向量(xn,yn),满足如下关系: 
xn=x0cosθ-y0sinθ; 
                             (2) 
yn=y0cosθ+x0sinθ; 
在此处只需要计算采样点与一个复指数相乘,故将CORDIC的x_in输入端连接采样点,y_in输入端连接零,得到的结果为 
xn+jyn=x0×e    (3) 
CORDIC计算的基本概念是将目标旋转角θ分解为一组预定基本角度的加权和,用这组预定基本角度的线性组合逼近,即进行大小为基本角度集内对应角度值的旋转。这种算法的巧妙之处在于基本角度的选取恰好使每次矢量以基本角度值旋转后,新矢量坐标值的计算只需要简单的移位和加法操作就能完成。由于只使用移位和加法运算来计算像正弦和余弦等超越函数,所以对于那些乘法和除法等计算量很大而内存有限的系统,CORDIC算法是很有效的。 
发明内容
本发明主要是解决现有技术所存在的技术问题;提供了一种基于FPGA的DFT计算模块,采样结束DFT计算就结束,需要存储资源少,计算一个采样值,丢弃一个采样值,实现结构简单,只需要采用时分复用和相乘累加的流水线操作。 
本发明的上述技术问题主要是通过下述技术方案得以解决的: 
一种基于FPGA的DFT计算模块,其特征在于,依次连接的相位计算模块(1)、CORDIC模块(2)、求和模块(3)以及传输缓冲模块(4)。 
在上述的一种基于FPGA的DFT计算模块,所述的相位计算模块(1)使用两个RAM和一个加法器,其中一个单端口RAM用于保存相位增量(相位增量存储器),一个双端口RAM用于保存累加计算后的相位量(相位存储器), 它们均采用复用时钟源clock2。 
在上述的一种基于FPGA的DFT计算模块,所述CORDIC模块(2)使用scaled radians的相位格式。 
在上述的一种基于FPGA的DFT计算模块,所述CORDIC模块(2)相位输入端为相位计算模块(1)的相位值,数据输入端为采样数据,采样数据为采样时钟clock1,而输入相位使用复用后的时钟clock2. 
在上述的一种基于FPGA的DFT计算模块,所述求和模块(3)由相加模块和双端口RAM组成;其中相加模块中的加法器a输入端数据为CORDIC计算结果,b输入端数据为双端口RAM读取结果,求和运算使用的是复用时钟源clock2。 
在上述的一种基于FPGA的DFT计算模块,所述求和模块(3)中双端口RAM的端口B用于存入每次求和的结果,端口A用于读取上次求和的值,存储过程使用的是复用时钟源clock2。 
在上述的一种基于FPGA的DFT计算模块,所述传输缓冲模块(4)由一个双端口RAM组成,A端口以复用时钟clock2存入累加结果,B端口以采样时钟clock1输出DFT结果。 
一种基于FPGA的DFT计算方法,其特征在于,包括以下步骤: 
步骤1:相位计算模块(1)在每一帧数据开始前,将128个相位增量写入相位增量存储器中,关注第i+1个频点数据,只需要将相应的相位增量2π×i/N(其中N表示计算DFT的数据总量)保存在RAM中,将相位存储器中相位值清零,保证每个数据所计算相位的正确性; 
步骤2:当一个采样点到来时,相位存储器地址遍历128个单元,从A端口取出相应的相位值
Figure BDA0000423168710000031
以便后续的CORDIC模块使用,同时使用相同的地址单元,从相位增量存储器中取出对应的相位增量
Figure BDA0000423168710000032
计算下个采样 点的复指数序列相位值
Figure BDA0000423168710000041
并将该值从相位存储器的B端口写入,每个采样点到来期间,相位增量存储器和相位存储器均遍历所有地址空间,实现相应频点相位的计算; 
步骤3:CORDIC模块实现变换核与采样点的相乘,基于如下公式 
x[n]e-j2πkn/N,0≤n≤N-1,0≤k≤127 
其中,x[n]表示采样序列中的第n个点,N表示采样数据总量,k表示相应的频点数; 
在采样点x(n)持续期间,依次从相位存储器A端口中读出128个相位值,作为CORDIC模块的相位输入,而采样点数据则作为CORDIC的实部端口输入; 
步骤4:当采样点与相应的复指数相乘后,求和模块实现相乘结果的累加,基于如下公式 
Σ n = 0 i x ( n ) e - j 2 πkn / N + x ( i + 1 ) e - j 2 πk ( i + 1 ) / N , 0 ≤ k ≤ 127
其中i表示当前为止已有i个采样点进行了运算; 
求和模块遍历存储器地址空间,从A端口取出前一个采样点的相乘结果,并在相加模块中与CORDIC输出累加,再将累加结果从B端口存入;如此在一个采样点持续期间,实现所有频点数据的累加过程; 
步骤5:当一帧中所有采样点传输结束,并且相乘累加过程完成后,传输缓冲模块将128个频点值传输给后续设备,具体实现是,由时钟clock2将结果存储A端口,并由传输时钟clock1从B端口取出,实现最后从时钟clock2到clock1的转换。 
因此,本发明具有如下优点:实时性好,采样结束DFT计算就结束,需要存储资源少,计算一个采样值,丢弃一个采样值,实现结构简单,相 比于FFT各种实现方式,本发明只需要采用时分复用和相乘累加的流水线操作。 
附图说明
图1是本发明的时分复用计算流程示意图。 
图2是本发明的主要功能模块示意图。 
图3是本发明中的相位增量存储器模块示意图。 
图4是本发明中的相位存储器模块示意图。 
图5是本发明中的CORDIC模块连接示意图。 
图6是本发明中的求和模块示意图。 
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。图中,相位计算模块1、CORDIC模块2、求和模块3以及传输缓冲模块4。 
实施例: 
下面结合附图及实施例,对本发明作进一步详细的描述。 
步骤1:在每一帧数据开始时,将128个相位增量写入相位增量存储器(如图3),当一个采样点到来时,存储器地址遍历128个单元,取出相应的相位增量,特定的相位增量即能决定最后需要的频点值。如 
Figure BDA0000423168710000051
就能计算出第1个到第128个频点的数据(其中第一个为零频)。当设置成
Figure BDA0000423168710000052
就能得到第1,3,5,…255个频点的数据。将相位2π×i/N写入变换核相位表就能得到相应的第i+1个频点数据,关注感兴趣的频点,只需要调整变换核相位。 
步骤2:每一帧数据开始前将原来存储的相位值清零,每一帧数据进行计算时,每进来一个新数据,存储器地址位(phase_addr1_cnt)遍历0~127 地址空间,从双端口相位存储器一个端口A取出相应的相位值(phase)
Figure BDA0000423168710000061
以便后续的变换核计算。当相位量(phase)供后续变换核使用完后,计算下个采样点对应的复指数序列相位值(phase_temp)并从相位存储器的另一个端口B写入相位存储器。也即完成如下表达式的计算,并存储相应的值: 
步骤3:CORDIC模块实现变换核与采样点的相乘, 
x[n]e-j2πkn/N,0≤n≤N-1,0≤k≤127 
从上式可以看出,对x[n]的操作仅仅只是变换了一个相位,反映在极坐标上就是复矢量绕坐标原点旋转了2πkn/N(正相位对应逆时针方向,负相位对应正时针方向)。在采样点x(n)持续期间,依次从相位存储器中读出128个相位值,作为CORDIC模块的相位输入值phase_in,而采样点数据则作为CORDIC的实部端口输入(x_in),同样CORDIC的运算时钟为clock2,如图5所示。 
步骤4:当采样点与相应的复指数相乘后,对得到的128个结果分别进行累加。如图6求和模块。每次CORDIC产生一个新的输出时,地址位sum_addr1_cnt从累加存储器的A端口取出数据,与CORDIC输出累加,进而从累加存储器的B端口存入,对应的地址空间为sum_addr2_cnt。 
步骤5:当一帧中所有采样点传输结束,并且相乘累加过程完成,将128个频点值传输给后续设备。为了后续处理的方便,传输时钟为clock1,所以需要将最后的计算结果从时钟clock2变换到clock1,这里同样适用一个双端口存储器实现,两个端口使用不同的时钟,以实现他们之间的转换。 
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。 
尽管本文较多地使用了相位计算模块1、CORDIC模块2、求和模块3、传输缓冲模块4等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。 

Claims (8)

1.一种基于FPGA的DFT计算模块,其特征在于,依次连接的相位计算模块(1)、CORDIC模块(2)、求和模块(3)以及传输缓冲模块(4)。 
2.根据权利要求1所述的一种基于FPGA的DFT计算模块,其特征在于,所述的相位计算模块(1)使用两个RAM和一个加法器,其中一个单端口RAM用于保存相位增量(相位增量存储器),一个双端口RAM用于保存累加计算后的相位量(相位存储器),它们均采用复用时钟源clock2。 
3.根据权利要求1所述的一种基于FPGA的DFT计算模块,其特征在于,所述CORDIC模块(2)使用scaled radians的相位格式。 
4.根据权利要求3所述的一种基于FPGA的DFT计算模块,其特征在于,所述CORDIC模块(2)相位输入端为相位计算模块(1)的相位值,数据输入端为采样数据,采样数据为采样时钟clock1,而输入相位使用复用后的时钟clock2。
5.根据权利要求1所述的一种基于FPGA的DFT计算模块,其特征在于,所述求和模块(3)由相加模块和双端口RAM组成;其中相加模块中的加法器a输入端数据为CORDIC计算结果,b输入端数据为双端口RAM读取结果,求和运算使用的是复用时钟源clock2。 
6.根据权利要求5所述的一种基于FPGA的DFT计算模块,其特征在于,所述求和模块(3)中双端口RAM的端口B用于存入每次求和的结果,端口A用于读取上次求和的值,存储过程使用的是复用时钟源clock2。 
7.根据权利要求1所述的一种基于FPGA的DFT计算模块,其特征在于,所述传输缓冲模块(4)由一个双端口RAM组成,A端口以复用时钟clock2 存入累加结果,B端口以采样时钟clock1输出DFT结果。 
8.一种基于FPGA的DFT计算方法,其特征在于,包括以下步骤: 
步骤1:相位计算模块(1)在每一帧数据开始前,将128个相位增量写入相位增量存储器中,关注第i+1个频点数据,只需要将相应的相位增量2π×i/N(其中N表示计算DFT的数据总量)保存在RAM中,将相位存储器中相位值清零,保证每个数据所计算相位的正确性; 
步骤2:当一个采样点到来时,相位存储器地址遍历128个单元,从A端口取出相应的相位值
Figure FDA0000423168700000021
以便后续的CORDIC模块使用,同时使用相同的地址单元,从相位增量存储器中取出对应的相位增量
Figure FDA0000423168700000022
计算下个采样点的复指数序列相位值
Figure FDA0000423168700000023
并将该值从相位存储器的B端口写入,每个采样点到来期间,相位增量存储器和相位存储器均遍历所有地址空间,实现相应频点相位的计算; 
步骤3:CORDIC模块实现变换核与采样点的相乘,基于如下公式 
x[n]e-j2πkn/N,0≤n≤N-1,0≤k≤127 
其中,x[n]表示采样序列中的第n个点,N表示采样数据总量,k表示相应的频点数; 
在采样点x(n)持续期间,依次从相位存储器A端口中读出128个相位值,作为CORDIC模块的相位输入,而采样点数据则作为CORDIC的实部端口输入; 
步骤4:当采样点与相应的复指数相乘后,求和模块实现相乘结果的累加,基于如下公式 
Figure FDA0000423168700000025
其中i表示当前为止已有i个采样点进行了运算; 
求和模块遍历存储器地址空间,从A端口取出前一个采样点的相乘结 果,并在相加模块中与CORDIC输出累加,再将累加结果从B端口存入;如此在一个采样点持续期间,实现所有频点数据的累加过程; 
步骤5:当一帧中所有采样点传输结束,并且相乘累加过程完成后,传输缓冲模块将128个频点值传输给后续设备,具体实现是,由时钟clock2将结果存储A端口,并由传输时钟clock1从B端口取出,实现最后从时钟clock2到clock1的转换。 
CN201310624062.5A 2012-11-27 2013-11-26 一种基于fpga的dft计算模块及方法 Pending CN103605635A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310624062.5A CN103605635A (zh) 2012-11-27 2013-11-26 一种基于fpga的dft计算模块及方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201220635890.X 2012-11-27
CN201220635890 2012-11-27
CN201310624062.5A CN103605635A (zh) 2012-11-27 2013-11-26 一种基于fpga的dft计算模块及方法

Publications (1)

Publication Number Publication Date
CN103605635A true CN103605635A (zh) 2014-02-26

Family

ID=50123864

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310624062.5A Pending CN103605635A (zh) 2012-11-27 2013-11-26 一种基于fpga的dft计算模块及方法

Country Status (1)

Country Link
CN (1) CN103605635A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111339484A (zh) * 2020-02-20 2020-06-26 中国科学院自动化研究所 基于fpga的大型射电干涉阵列相关器的实现方法及装置
CN112822139A (zh) * 2021-02-04 2021-05-18 展讯半导体(成都)有限公司 数据输入、数据转换方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070266070A1 (en) * 2006-05-12 2007-11-15 Chung Hua University Split-radix FFT/IFFT processor
CN101383691A (zh) * 2008-10-14 2009-03-11 哈尔滨工程大学 宽带数字信道化测向器
CN101499775A (zh) * 2009-02-20 2009-08-05 武汉大学 利用cordic对线性调频信号进行脉冲压缩处理的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070266070A1 (en) * 2006-05-12 2007-11-15 Chung Hua University Split-radix FFT/IFFT processor
CN101383691A (zh) * 2008-10-14 2009-03-11 哈尔滨工程大学 宽带数字信道化测向器
CN101499775A (zh) * 2009-02-20 2009-08-05 武汉大学 利用cordic对线性调频信号进行脉冲压缩处理的方法和装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ZHISHENG YAN ET AL: "Design and FPGA implementation of digital pulse compression for chirp radar based on CORDIC", 《IEICE ELECTRONICS EXPRESS》 *
乔磊 等: "基于CORDIC 算法的故障录波启动判据的研究", 《电力系统保护与控制》 *
文婧媛 等: "基于CORDIC 算法的高速可配置FFT 的FPGA 实现", 《微电子学与计算机》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111339484A (zh) * 2020-02-20 2020-06-26 中国科学院自动化研究所 基于fpga的大型射电干涉阵列相关器的实现方法及装置
CN111339484B (zh) * 2020-02-20 2022-07-01 中国科学院自动化研究所 基于fpga的大型射电干涉阵列相关器的实现方法及装置
CN112822139A (zh) * 2021-02-04 2021-05-18 展讯半导体(成都)有限公司 数据输入、数据转换方法及装置

Similar Documents

Publication Publication Date Title
CN101504638B (zh) 一种可变点数流水线fft处理器
CN101154215B (zh) 基23频域取样快速傅立叶变换的硬件结构
CN103499823A (zh) 扩频通信中二维并行捕获系统
CN102998523A (zh) 一种用于电能计量的谐波功率计算方法
CN101354700B (zh) 一种蝶形运算fft处理器
CN102209962A (zh) 计算离散傅里叶变换(dft)系数矩阵的方法和设备
Xiao et al. Reduced memory architecture for CORDIC-based FFT
CN106772475A (zh) 一种基于fpga捕获微弱gps导航信号的电路及方法
CN102129419B (zh) 基于快速傅立叶变换的处理器
CN103605635A (zh) 一种基于fpga的dft计算模块及方法
CN103837878A (zh) 一种gnss卫星信号捕捉方法
CN102353940B (zh) 基于fpga的脉冲压缩优化方法
Bansal et al. Memory-efficient Radix-2 FFT processor using CORDIC algorithm
CN102789446A (zh) 基于cordic算法的dds信号杂散抑制方法及系统
CN102654574B (zh) 基于fpga的多普勒中心估计方法
CN109633613A (zh) 一种高超声速平台联合脉冲压缩和弹速补偿的fpga实现方法
CN101833540B (zh) 信号处理方法和装置
Yang et al. A efficient design of a real-time FFT architecture based on FPGA
CN105741313A (zh) 一种基于fpga的快速实时动目标检测系统
Yan et al. The implement of spaceborne SAR imaging system
CN111025293A (zh) 一种应用于小卫星sar的高效fpga实时成像系统
CN107193784B (zh) 高精度低硬件复杂度的sinc插值实现方法及系统
Leclère et al. Implementing super-efficient FFTs in Altera FPGAs
CN102999474A (zh) 一种基于cordic算法的数据加窗系统及方法
CN110808935B (zh) 线性调频信号自相关运算的精确高效实现方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20140226

RJ01 Rejection of invention patent application after publication