CN116578819A - 一种稀疏分数傅里叶变换fpga实现方法及系统 - Google Patents
一种稀疏分数傅里叶变换fpga实现方法及系统 Download PDFInfo
- Publication number
- CN116578819A CN116578819A CN202310427994.4A CN202310427994A CN116578819A CN 116578819 A CN116578819 A CN 116578819A CN 202310427994 A CN202310427994 A CN 202310427994A CN 116578819 A CN116578819 A CN 116578819A
- Authority
- CN
- China
- Prior art keywords
- signal
- amplitude
- fourier transform
- circulation
- round
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004364 calculation method Methods 0.000 claims abstract description 33
- 238000012216 screening Methods 0.000 claims description 21
- 230000008707 rearrangement Effects 0.000 claims description 19
- 238000007781 pre-processing Methods 0.000 claims description 15
- 238000001914 filtration Methods 0.000 claims description 11
- 238000001228 spectrum Methods 0.000 claims description 11
- 125000004122 cyclic group Chemical group 0.000 claims description 9
- 238000012163 sequencing technique Methods 0.000 claims description 7
- 230000009466 transformation Effects 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000003780 insertion Methods 0.000 claims description 5
- 230000037431 insertion Effects 0.000 claims description 5
- 238000013215 result calculation Methods 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 3
- 230000003595 spectral effect Effects 0.000 claims description 3
- 239000000872 buffer Substances 0.000 claims description 2
- 238000005520 cutting process Methods 0.000 claims description 2
- 238000002156 mixing Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 2
- YLOCGHYTXIINAI-XKUOMLDTSA-N (2s)-2-amino-3-(4-hydroxyphenyl)propanoic acid;(2s)-2-aminopentanedioic acid;(2s)-2-aminopropanoic acid;(2s)-2,6-diaminohexanoic acid Chemical compound C[C@H](N)C(O)=O.NCCCC[C@H](N)C(O)=O.OC(=O)[C@@H](N)CCC(O)=O.OC(=O)[C@@H](N)CC1=CC=C(O)C=C1 YLOCGHYTXIINAI-XKUOMLDTSA-N 0.000 description 1
- 108010072051 Glatiramer Acetate Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 229940042385 glatiramer Drugs 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Discrete Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种稀疏分数傅里叶变换FPGA实现方法及系统,属于数字信号处理和嵌入式领域。首先,将外部输入信号f(n)乘以chirp1信号,得到调频后的信号x(n),并将信号x(n)缓存进DDR3存储芯片以便后续的循环计算;接着对信号x(n)进行稀疏傅里叶变换;最后将稀疏傅里叶变换的计算结果与chirp2信号相乘,从而得到原始输入信号f(n)的分数傅里叶变换结果。相比较于传统的分数傅里叶变换,本方法可以更快速的进行分数傅里叶变换,并可以降低FPGA器件的硬件资源消耗量。
Description
技术领域
本发明属于数字信号处理和嵌入式系统领域,尤其涉及一种稀疏分数傅里叶变换FPGA实现方法及系统。
背景技术
傅里叶变换作为一种信号处理方式,在科学研究与工程技术领域中发挥着重要的作用。但傅里叶变换是一种全局性变换,得到的是信号的整体频谱,因而无法表述信号的时频局部特性;傅里叶变换适合处理平稳信号,对非平稳信号处理效果受限。为了分析和处理非平稳信号,人们提出并发展了一系列新的信号分析理论,而分数傅里叶变换作为傅里叶变换的广义形式,由于其独特的时频联合表征特点而受到了众多科研人员的青睐。
分数傅里叶变换的概念早在1929年就由麻省理工大学的N.Wiener提出。1980年普渡大学盖莱默分校的V.Namias以纯数学的方式提出了分数傅里叶变换的概念。其后,A.C.McBride等从积分形式的角度给出了分数傅里叶变换闭合形式的数学表达式。1993年D.Mendlovic和H.M.Ozaktas从光学角度提出了分数傅里叶变换,给出了分数傅里叶变换的光学实现,并将其用于光学信息处理。的角度解释了分数傅里叶变换的物理意义,指出p阶分数傅里叶变换相当于魏格纳分布函数相空间中角度是pπ/2的旋转,并且给出了一些常见信号的分数傅里叶变换结果。
在1996年土耳其毕尔肯大学的H.M.Ozaktas等人提出了一种计算量与快速傅里叶变换算法相当的离散算法后,分数傅里叶变换得到了快速发展。目前基于这种离散算法的分数傅里叶变换算主要分成三类:特征分解形、线性组合型以及采样型。其中采样型离散分数傅里叶变换算法直接对连续分数傅里叶变换核进行采样得到离散分数傅里叶变换核矩阵,是最直接且简单的离散分数傅里叶变换定义方法。
相对于傅里叶变换来说,分数傅里叶变换的计算方式非常复杂。在以往的FPGA实现方案中,首先要对信号做预处理,进行一次FFT计算,然后对信号进行插值滤波,同时产生chirp1信号,两者乘的结果再与chirp2信号做线性卷积,最后的经过IFFT变换以及抽取才能得到分数阶傅里叶变换的结果。而本发明提出的稀疏分数傅里叶变换FPGA实现方案是只需要进行基本乘法操作,同时也只需要进行FFT变换,大大减少了运算时间消耗,节省了资源利用率。
发明内容
本发明目的在于提供一种稀疏分数傅里叶变换的FPGA实现方法及系统,旨在克服传统分数傅里叶变换算法的硬件实现方案中计算复杂、需要消耗大量硬件资源的问题。
为解决上述技术问题,本发明的具体技术方案如下:
一种稀疏分数傅里叶变换FPGA实现方法,包括如下步骤:
步骤1、对长度为N的信号进行预处理,转换为长度为B的信号;
步骤2、对长度为B的信号做FFT/IFFT变换;
步骤3、对步骤2经过变换后的数据进行插入排序操作,选出阈值;
步骤4、根据步骤3输出的阈值进行候选频点筛选;
步骤5、进行插入排序,确定步骤4所选的每个候选频点对应的幅值,再对已确定幅值的候选频点按照幅值大小进行排序,筛选出大值频点,最后对筛选结果进行调频得到最终的计算结果。
至此,从步骤1到步骤5,完成了一种稀疏分数傅里叶变换FPGA实现方法。
优选的,步骤1的实现过程为:
步骤1.1:获取输入信号f(n),利用chirp1信号对输入信号f(n)进行调频操作,得到x(n)信号,具体的为:
步骤1.1A:根据上位机传入的稀疏分数傅里叶变换的阶数p计算旋转角度α,且α=pπ/2,然后在FPGA中调用Cordic-IP核生成chirp1信号;
步骤1.1B:在数据预处理模块的输入端设置输入计数器,通过对输入信号f(n)的数量进行计数,控制输入信号f(n)的数量;
步骤1.1C:将输入信号f(n)与chirp1信号相乘得到信号x(n),输入信号f(n)与x(n)信号的长度均为N;
步骤1.2:对步骤1.1C获取的信号x(n)进行缓存,具体的为:将信号x(n)进行有符号数扩位操作,将数据位宽扩至与DDR3存储芯片数据线位宽相同后送入异步FIFO中,然后由DDR3控制模块读出异步FIFO中已经完成扩位操作的信号x(n),再以突发写入的形式顺序写入DDR3存储芯片;
步骤1.3:对信号x(n)进行数据频谱重排、滤波、混叠,具体的为:
步骤1.3A:根据信号x(n)在DDR3存储芯片的存储位置,计算信号x(n)每个点重排后的存储位置以及混叠后的存储位置;
将信号x(n)的存储位置乘以随机产生的频谱重排系数σ,计算结果对长度N求模,得到信号x(n)的每个点重排后的存储位置,且信号x(n)重排后的存储位置对长度B求模得到混叠以后的存储位置;
步骤1.3B:调用RAM存储混叠操作完成后所得的长度为B的信号;
在SFrFT系统的L轮geg循环中,第一轮循环将信号x(n)缓存进DDR3存储芯片的同时对信号x(n)并行执行L/2轮频谱重排、滤波、混叠操作,得到L/2个长度为B的数据片;在第二到第L/2-1轮循环中仅输出第一轮循环混叠计算的结果;在第L/2轮循环中,通过DDR3控制模块读取DDR3存储芯片中的数据并将其写入FIFO,在进行有符号数的截位操作,得到原始位宽的信号x(n),然后并行执行L/2轮频谱重排、滤波、混叠操作,且在剩下轮次的循环中仅输出第L/2轮循环混叠计算的结果。
优选的,步骤2的实现过程为:
对步骤1.3B中存储在RAM中的长度为B的信号做FFT/IFFT变换,得到计算结果X(k);其中FFT/IFFT变换通过调用FFT-IP核实现。
优选的,所述步骤3的实现过程为:
步骤3.1:获取两个完全相同的幅值寄存器组,每个幅值寄存器组包含的寄存器数目均为K,同时每个幅值寄存器组均对应一个位宽为Kbit的指示信号,指示信号的比特位与幅值寄存器组中的寄存器一一对应;
步骤3.2:步骤2中得到的计算结果X(k)及坐标被串行输入到幅值寄存器组,经过B个时钟周期以后,计算结果X(k)将被完全输入幅值寄存器组;每个时钟周期第一个幅值寄存器都会得到计算结果X(k)的一个值,同时这个值会与第一个幅值寄存器组中所存数据的幅值比较大小,若这个值的幅值大于第一个幅值寄存器组中某个位置所存数据的幅值,就将指示信号对应位置的bit位置1,反之则置0;
比较完成之后,若指示信号不为0,则指示信号有几个为1的bit位,就将这个值插入第一个幅值寄存器组的第几位寄存器,并将第一个幅值寄存器组在一次比较完成之后剔出的值传递给第二个幅值寄存器组;指示信号为0时,则将与第一个幅值寄存器组所存数据进行比较的X(k)的值传递给第二个幅值寄存器组;
在同一时钟周期内,第二个幅值寄存器组做同样的比较操作;最终两个寄存器组留下的2K个值,是按照幅值从大到小排列的最大的2K个值,为该轮循环从FTT/IFFT计算结果X(k)中筛选出的大值频点;
步骤3.3将第二个幅值寄存器组中幅值最小的值作为阈值传递给候选频点筛选模块,同时将两个幅值寄存器组中所存所有值的频点输出到候选频点筛选模块。
优选的,所述步骤4的实现过程为:
步骤4.1:第一轮循环将步骤3传递过来的从计算结果X(k)中筛选出的大值频点还原成原始频点并存在候选频点筛选模块的频点寄存器组中;
步骤4.2:第二轮循环将步骤3传递过来的大值频点还原成原始频点,并存在候选频点筛选模块的循环移位寄存器组中,然后将频点寄存器组与循环移位寄存器组中存储的原始频点进行比较,如果频点寄存器组和循环移位寄存器组中有相同频点,则清除循环移位寄存器组中对应存储位置的频点,并将频点寄存器组对应存储位置的最高位拉高;
步骤4.3:在第三轮循环中,将频点寄存器组和循环移位寄存器组中存储的原始频点映射到该轮循环步骤3的FFT/IFFT的计算结果中,将对应的幅值与第三轮循环步骤3传递过来的阈值进行比较,淘汰幅值小于阈值且最高位为低的原始频点;将经过筛选以后的频点及每轮循环产生的对应幅值传入结果计算模块进行排序估值。
优选的,所述步骤5中排序具体为:
步骤5.1:对每个频点的实部、虚部分别排序,选择中值作为频点最终的幅值;
步骤5.2:对所有确定幅值的候选频点按照幅值大小进行排序,选取最大的K个作为最终的大值频点;
步骤5.3:根据筛选出的最终的大值频点,由Cordic-IP核产生chirp2信号与之相乘,得到最终计算结果。
本发明还提供一种稀疏分数傅里叶变换FPGA实现系统,该系统用于权利要求1-5中任一项所述的一种稀疏分数傅里叶变换FPGA实现方法,其中该系统的实现器件为FPGA,且FPGA包括Cordic-IP核、数据预处理模块、异步FIFO、DDR3控制模块、RAM、幅值寄存器组、候选频点筛选模块。
有益效果:相对于传统的分数傅里叶变换算法的FPGA实现方案,本发明提出的稀疏傅里叶变换算法能够有效降低计算复杂度,提升计算效率,减少运算时间,并且其较为简单的硬件设计结构使得所占用的硬件资源也大为减少。
附图说明
图1为本发明“一种稀疏分数傅里叶变换FPGA实现方法及系统”实施例中的整体流程图;
图2为本发明“一种稀疏分数傅里叶变换FPGA实现方法及系统”实施例中整体硬件架构图;
图3为本发明“一种稀疏分数傅里叶变换FPGA实现方法及系统”实施例中数据预处理模块的结构框图;
图4为本发明“一种稀疏分数傅里叶变换FPGA实现方法及系统”实施例中地址计算器的结构框图;
图5为本发明“一种稀疏分数傅里叶变换FPGA实现方法及系统”实施例中DDR3控制模块的结构框图;
图6为本发明“一种稀疏分数傅里叶变换FPGA实现方法及系统”实施例中插入排序器的结构框图;
图7为本发明“一种稀疏分数傅里叶变换FPGA实现方法及系统”实施例中候选频点筛选模块的结构框图;
图8为本发明“一种稀疏分数傅里叶变换FPGA实现方法及系统”实施例中结果计算模块的结构框图;
图9为本发明“一种稀疏分数傅里叶变换FPGA实现方法及系统”实施例中实际测试结果;
图10为本发明“一种稀疏分数傅里叶变换FPGA实现方法及系统”实施例中直接做分数傅里叶变换的理论结果。
具体实施方式
为了更好地了解本发明的目的、结构及功能,下面结合附图,对本发明一种稀疏分数傅里叶变换FPGA实现方法做进一步详细的描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例阐述了将本发明“一种稀疏分数傅里叶变换FPGA实现方法及系统”应用于对输入信号做32768点稀疏分数傅里叶变换的实现流程。
图1为本发明“一种稀疏分数傅里叶变换FPGA实现方法及系统”的实施例流程图。图2为本发明“一种稀疏分数傅里叶变换FPGA实现方法及系统”的实施例的整体硬件架构图。
从图1可以看出,本方法包括以下步骤:
步骤A,对输入信号进行预处理操作,即输入信号调频后缓存以及对调频后信号进行频谱重排、滤波、混叠操作;
具体到本例的实施,在综合考虑运算精度与资源消耗之后,本实施例将数据总长度N设置为32768,混叠长度B为512,信号稀疏度K预设为4,稀疏傅里叶变换循环的次数设置为8次;图3显示了实施例中的数据预处理模块架构图;当SFrFT硬件系统启动以后,开始接受数据并启动输入计数器;在第一轮循环中,数据预处理模块中的chirp信号产生模块会产生chirp1信号,chirp1信号与输入信号f(n)相乘得到调频后的信号x(n);图5显示了DDR3控制块的结构,在第一轮循环中,信号x(n)由完成有符号数扩位操作后缓存进一步FIFO,然后由DDR3控制模块读出并写入DDR3存储芯片,在第五轮循环中DDR3控制模块将从DDR3存储芯片中读取缓存数据,并进行有符号数截位操作,再写入异步FIFO中由数据预处理模块读出;图4所示的地址计算器将在第一轮循环和第五轮循环中计算频谱重排对应的滤波器的存储地址以及混叠后的存储地址,完成对信号x(n)的频谱重排、滤波、混叠操作;
本发明实施例中,需要说明的是在第一轮循环中,数据预处理模块在将信号x(n)缓存进DDR3存储芯片的同时对信号x(n)并行执行四轮频谱重排、滤波、混叠操作,得到四个长度为B的数据片;在第二、三、四轮循环中数据预处理模块仅输出第一轮循环产生的计算结果而不再进行其他运算;在第五轮循环中,数据预处理模块将通过DDR3控制模块读取DDR3存储芯片中的数据,然后并行执行四轮频谱重排、滤波、混叠操作,且在第六、七、八轮循环仅输出第五轮循环产生的计算结果而不再进行其他运算;
步骤B,对步骤A处理后的数据进行FFT/IFFT变换,然后选出结果中最大的2K个;
FFT-IP核的参数设置为:FFT类型选择为Radix-4Burst I/O,舍入类型选择四舍五入,计算结果不截位,输入位宽和输出位宽为20bit和30bit,数据类型选择为定点有符号数;插入排序器结构如图4所示,本实例中幅值寄存器组的长度为4,因此可以选择最大的8个点,寄存器存储方式为:高9bit存储频率、中间20bit存储虚部,低20bit存储实部;阈值选择模块在计算完成之后将按照幅值从大到小的顺序输出大值频点,并将最后输出的数据即最小的幅值作为阈值;
步骤C,对大值频点进行重构筛选,选出候选频率点;
图6为插入排序比较器,进行候选频点筛选操作,首先将第一轮阈值选择模块筛选出的大值频点进行重构,并将结果存储到循环移位寄存器组中,存储方式为:最高位置0,低位存储频率点;然后将第二轮阈值选择模块筛选出的大值频点进行重构,并将结果存储到频率点寄存器组中;然后将循环移位寄存器组和频率点寄存器组中的数据进行比较,如果频率点寄存器组和循环移位寄存器组中有相同频率点,则清除循环移位寄存器组中对应的频率点,并将频率点寄存器组对应的频点的最高位拉高;在第三轮循环中,将频率点寄存器组和循环移位寄存器组中的原始频点映射到第三轮循环FFT/IFFT计算结果的大值频点中,让对应的幅值同阈值选择模块传递来的阈值与之进行比较,剔除幅值小于阈值且高位为0的频率点,得到候选频率点;
步骤D,图8为结果计算模块的结构图,对每个候选频率点的实部、虚部分别进行插入排序,取中值作为该频率点的最终幅值;再对所有的候选频率点按照幅值大小进行排序,选最大的4个作为最终的大值频点;同时产生chirp2信号,对大值频点的幅值进行调频,得到最终计算结果;
表1为本实施例的硬件资源消耗情况,其中IO资源消耗较多,但是随着N的增加,IO资源的消耗不会出现明显的增加。同时由于使用DDR3存储芯片进行数据的缓存会大大减少BRAM资源的消耗。
表1:
可以理解,本发明是通过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明所保护的范围内。
Claims (7)
1.一种稀疏分数傅里叶变换FPGA实现方法,其特征在于:包括如下步骤:
步骤1、对长度为N的信号进行预处理,转换为长度为B的信号;
步骤2、对长度为B的信号做FFT/IFFT变换;
步骤3、对步骤2经过变换后的数据进行插入排序操作,选出阈值;
步骤4、根据步骤3输出的阈值进行候选频点筛选;
步骤5、进行插入排序,确定步骤4所选的每个候选频点对应的幅值,再对已确定幅值的候选频点按照幅值大小进行排序,筛选出大值频点,最后对筛选结果进行调频得到最终的计算结果;
至此,从步骤1到步骤5,完成了一种稀疏分数傅里叶变换FPGA实现方法。
2.根据权利要求1所述的一种稀疏分数傅里叶变换的FPGA实现方法,其特征在于,步骤1的实现过程为:
步骤1.1:获取输入信号f(n),利用chirp1信号对输入信号f(n)进行调频操作,得到x(n)信号,具体的为:
步骤1.1A:根据上位机传入的稀疏分数傅里叶变换的阶数p计算旋转角度α,且α=pπ/2,然后在FPGA中调用Cordic-IP核生成chirp1信号;
步骤1.1B:在数据预处理模块的输入端设置输入计数器,通过对输入信号f(n)的数量进行计数,控制输入信号f(n)的数量;
步骤1.1C:将输入信号f(n)与chirp1信号相乘得到信号x(n),输入信号f(n)与x(n)信号的长度均为N;
步骤1.2:对步骤1.1C获取的信号x(n)进行缓存,具体的为:将信号x(n)进行有符号数扩位操作,将数据位宽扩至与DDR3存储芯片数据线位宽相同后送入异步FIFO中,然后由DDR3控制模块读出异步FIFO中已经完成扩位操作的信号x(n),再以突发写入的形式顺序写入DDR3存储芯片;
步骤1.3:对信号x(n)进行数据频谱重排、滤波、混叠,具体的为:
步骤1.3A:根据信号x(n)在DDR3存储芯片的存储位置,计算信号x(n)每个点重排后的存储位置以及混叠后的存储位置;
将信号x(n)的存储位置乘以随机产生的频谱重排系数σ,计算结果对长度N求模,得到信号x(n)的每个点重排后的存储位置,且信号x(n)重排后的存储位置对长度B求模得到混叠以后的存储位置;
步骤1.3B:调用RAM存储混叠操作完成后所得的长度为B的信号;
在SFrFT系统的L轮循环中,第一轮循环将信号x(n)缓存进DDR3存储芯片的同时对信号x(n)并行执行L/2轮频谱重排、滤波、混叠操作,得到L/2个长度为B的数据片;在第二到第L/2-1轮循环中仅输出第一轮循环混叠计算的结果;在第L/2轮循环中,通过DDR3控制模块读取DDR3存储芯片中的数据并将其写入FIFO,在进行有符号数的截位操作,得到原始位宽的信号x(n),然后并行执行已/2轮频谱重排、滤波、混叠操作,且在剩下轮次的循环中仅输出第L/2轮循环混叠计算的结果。
3.根据权利要求2所述的一种稀疏分数傅里叶变换FPGA实现方法,其特征在于,步骤2的实现过程为:
对步骤1.3B中存储在RAM中的长度为B的信号做FFT/IFFT变换,得到计算结果X(k);其中FFT/IFFT变换通过调用FFT-IP核实现。
4.根据权利要求3所述的一种稀疏分数傅里叶变换的FPGA实现方法,其特征在于,所述步骤3的实现过程为:
步骤3.1:获取两个完全相同的幅值寄存器组,每个幅值寄存器组包含的寄存器数目均为K,同时每个幅值寄存器组均对应一个位宽为Kbit的指示信号,指示信号的比特位与幅值寄存器组中的寄存器一一对应;
步骤3.2:步骤2中得到的计算结果X(k)及坐标被串行输入到幅值寄存器组,经过B个时钟周期以后,计算结果X(k)将被完全输入幅值寄存器组;每个时钟周期第一个幅值寄存器都会得到计算结果X(k)的一个值,同时这个值会与第一个幅值寄存器组中所存数据的幅值比较大小,若这个值的幅值大于第一个幅值寄存器组中某个位置所存数据的幅值,就将指示信号对应位置的bit位置1,反之则置0;
比较完成之后,若指示信号不为0,则指示信号有几个为1的bit位,就将这个值插入第一个幅值寄存器组的第几位寄存器,并将第一个幅值寄存器组在一次比较完成之后剔出的值传递给第二个幅值寄存器组;指示信号为0时,则将与第一个幅值寄存器组所存数据进行比较的X(k)的值传递给第二个幅值寄存器组;
在同一时钟周期内,第二个幅值寄存器组做同样的比较操作;最终两个寄存器组留下的2K个值,是按照幅值从大到小排列的最大的2K个值,为该轮循环从FTT/IFFT计算结果X(k)中筛选出的大值频点;
步骤3.3将第二个幅值寄存器组中幅值最小的值作为阈值传递给候选频点筛选模块,同时将两个幅值寄存器组中所存所有值的频点输出到候选频点筛选模块。
5.根据权利要求4所述的一种稀疏分数傅里叶变换FPGA实现方法,其特征在于,所述步骤4的实现过程为:
步骤4.1:第一轮循环将步骤3传递过来的从计算结果X(k)中筛选出的大值频点还原成原始频点并存在候选频点筛选模块的频点寄存器组中;
步骤4.2:第二轮循环将步骤3传递过来的大值频点还原成原始频点,并存在候选频点筛选模块的循环移位寄存器组中,然后将频点寄存器组与循环移位寄存器组中存储的原始频点进行比较,如果频点寄存器组和循环移位寄存器组中有相同频点,则清除循环移位寄存器组中对应存储位置的频点,并将频点寄存器组对应存储位置的最高位拉高;
步骤4.3:在第三轮循环中,将频点寄存器组和循环移位寄存器组中存储的原始频点映射到该轮循环步骤3的FFT/IFFT的计算结果中,将对应的幅值与第三轮循环步骤3传递过来的阈值进行比较,淘汰幅值小于阈值且最高位为低的原始频点;将经过筛选以后的频点及每轮循环产生的对应幅值传入结果计算模块进行排序估值。
6.根据权利要求5所述的一种稀疏分数傅里叶变换FPGA实现方法,其特征在于,所述步骤5中排序具体为:
步骤5.1:对每个频点的实部、虚部分别排序,选择中值作为频点最终的幅值;
步骤5.2:对所有确定幅值的候选频点按照幅值大小进行排序,选取最大的K个作为最终的大值频点;
步骤5.3:根据筛选出的最终的大值频点,由Cordic-IP核产生chirp2信号与之相乘,得到最终计算结果。
7.一种稀疏分数傅里叶变换FPGA实现系统,其特征在于,该系统用于权利要求1-5中任一项所述的一种稀疏分数傅里叶变换FPGA实现方法,其中该系统的实现器件为FPGA,且FPGA包括Cordic-IP核、数据预处理模块、异步FIFO、DDR3控制模块、RAM、幅值寄存器组、候选频点筛选模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310427994.4A CN116578819A (zh) | 2023-04-20 | 2023-04-20 | 一种稀疏分数傅里叶变换fpga实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310427994.4A CN116578819A (zh) | 2023-04-20 | 2023-04-20 | 一种稀疏分数傅里叶变换fpga实现方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116578819A true CN116578819A (zh) | 2023-08-11 |
Family
ID=87535000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310427994.4A Pending CN116578819A (zh) | 2023-04-20 | 2023-04-20 | 一种稀疏分数傅里叶变换fpga实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116578819A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117111859A (zh) * | 2023-10-23 | 2023-11-24 | 北京紫光芯能科技有限公司 | 一种数据写入方法、装置及设备 |
-
2023
- 2023-04-20 CN CN202310427994.4A patent/CN116578819A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117111859A (zh) * | 2023-10-23 | 2023-11-24 | 北京紫光芯能科技有限公司 | 一种数据写入方法、装置及设备 |
CN117111859B (zh) * | 2023-10-23 | 2024-03-19 | 北京紫光芯能科技有限公司 | 一种数据写入方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100481067B1 (ko) | 분산 산술 처리장치 및 그를 이용한 이차원 이산여현변환 처리장치 | |
US4275452A (en) | Simplified fast fourier transform butterfly arithmetic unit | |
CN110765709A (zh) | 一种基于fpga的基2-2快速傅里叶变换硬件设计方法 | |
WO2018027706A1 (zh) | Fft处理器及运算方法 | |
CN101126772A (zh) | 一种示波器的高速信号重构方法 | |
CN116578819A (zh) | 一种稀疏分数傅里叶变换fpga实现方法及系统 | |
US7634524B2 (en) | Arithmetic method and function arithmetic circuit for a fast fourier transform | |
Revanna et al. | A scalable FFT processor architecture for OFDM based communication systems | |
CN102841880B (zh) | 一种基于数字信号处理器快速频谱细化的方法 | |
US9098449B2 (en) | FFT accelerator | |
CN113111300B (zh) | 具有优化资源消耗的定点fft实现系统 | |
CN114764615A (zh) | 卷积运算的实现方法、数据处理方法及装置 | |
EP1076296A2 (en) | Data storage for fast fourier transforms | |
CN101961248A (zh) | 一种超声系统中非线性压缩的方法与装置 | |
CN109829132A (zh) | 一种嵌入式环境下长数据序列快速谱分析方法 | |
CN114185014B (zh) | 一种应用于雷达信号处理的并行卷积方法及装置 | |
Ranganathan et al. | Efficient hardware implementation of scalable FFT using configurable Radix-4/2 | |
RU188978U1 (ru) | Унифицированная реконфигурируемая схема коммутации быстрого преобразования фурье | |
CN107451096B (zh) | 高吞吐率fft/ifft的fpga信号处理方法 | |
Chaudhari et al. | An optimized approach to pipelined architecture for fast 2D normalized cross-correlation | |
RU62469U1 (ru) | Устройство вычисления адаптивного вейвлет-преобразования | |
Eswar | Noise reduction and image smoothing using gaussian blur | |
Nadar et al. | Hardware implementation of pipelined FFT using polyphase decomposition | |
Ghosh et al. | FPGA based implementation of FFT processor using different architectures | |
US6438568B1 (en) | Method and apparatus for optimizing conversion of input data to output data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |