CN115982527B - 一种基于fpga的时频域变换算法实现方法 - Google Patents

一种基于fpga的时频域变换算法实现方法 Download PDF

Info

Publication number
CN115982527B
CN115982527B CN202310277585.0A CN202310277585A CN115982527B CN 115982527 B CN115982527 B CN 115982527B CN 202310277585 A CN202310277585 A CN 202310277585A CN 115982527 B CN115982527 B CN 115982527B
Authority
CN
China
Prior art keywords
data
length
transformation
time
hamming window
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.)
Active
Application number
CN202310277585.0A
Other languages
English (en)
Other versions
CN115982527A (zh
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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN202310277585.0A priority Critical patent/CN115982527B/zh
Publication of CN115982527A publication Critical patent/CN115982527A/zh
Application granted granted Critical
Publication of CN115982527B publication Critical patent/CN115982527B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明涉及一种基于FPGA的时频域变换算法实现方法,基于FPGA的时频域变换算法包括短时傅里叶正变换和逆变换,短时傅里叶正变换实现方法包括:获取时域变换信号及变换参数;将时域变换信号分为四组数据;对四组数据同时进行短时傅里叶正变换得到四组正变换数据;短时傅里叶逆变换实现方法包括:对四组正变换数据的信号处理数据同时进行傅里叶逆变换得到四组逆变换数据;针对每组逆变换数据,每次傅里叶逆变换后对变换数据进行截位并乘以汉明窗;对每组截位加窗数据进行补零相加后除以经过幂次后移位相加的汉明窗,得到逆变换时域数据。该方法充用较小的资源实现了时频域变换的硬件算法实现,同时极大的缩短了算法耗时。

Description

一种基于FPGA的时频域变换算法实现方法
技术领域
本发明属于信号处理技术领域,具体涉及一种基于FPGA的时频域变换算法实现方法。
背景技术
在信号处理领域中,干扰体制的复杂化导致抗干扰手段也逐渐走向精细化。时频域变换是有效认知、识别与对抗干扰的一种手段,但采用傅里叶变换将数据变换到频域已经不足以有效对抗日渐复杂的干扰类型,短时傅里叶变换可以有效提取出信号频率变化与时间的关系,可以在时频域进行各种抗干扰算法的研究,是现代抗干扰技术的主流研究方向。时频域变换主要包括短时傅里叶正变换与短时傅里叶逆变换。
短时傅里叶正变换(short-time Fourier transform,STFT)和短时傅里叶逆变换(inverse short-time Fourier transform,ISTFT),本质上都是一种加窗的傅里叶变换,其最大的优点就是可以通过该算法得到信号频率随时间的变化关系,但是其巨大的运算量以及运算的复杂性让其在硬件实现上比较困难,需要消耗大量的资源,时频域变换过程会进行滑窗处理,但是基于FPGA的硬件实现方法中对于该类算法不能充分利用代码其并行性高的特点进行算法实现,导致在硬件算法实现过程中需要消耗大量的时间,难以兼顾资源消耗与满足时间消耗。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种基于FPGA的时频域变换算法实现方法。本发明要解决的技术问题通过以下技术方案实现:
本发明实施例提供了一种基于FPGA的时频域变换算法实现方法,所述FPGA的时频域变换算法包括短时傅里叶正变换和短时傅里叶逆变换,其中,
所述短时傅里叶正变换实现方法包括步骤:
获取时域变换信号及变换参数,所述变换参数包括信号长度、汉明窗、汉明窗窗长、短时傅里叶变换滑窗时的步进长度、傅里叶变换长度和经过幂次后移位相加的汉明窗;
依据所述信号长度和所述步进长度将所述时域变换信号分为四组数据;
利用所述汉明窗、所述汉明窗窗长和所述傅里叶变换长度对所述四组数据同时进行短时傅里叶正变换,得到四组正变换数据;
所述短时傅里叶逆变换实现方法包括步骤:
对所述四组正变换数据的信号处理数据同时按照所述傅里叶变换长度进行傅里叶逆变换,得到四组逆变换数据;
针对每组逆变换数据,依据所述汉明窗窗长对每次傅里叶逆变换后的数据进行截位,并将截位后的数据乘以所述汉明窗,得到四组截位加窗数据;
根据所述信号长度对每组截位加窗数据分别进行补零,并将四组补零数据进行相加,再将相加结果除以所述经过幂次后移位相加的汉明窗,得到逆变换时域数据。
在本发明的一个实施例中,所述信号长度、所述汉明窗窗长、所述步进长度、所述傅里叶变换长度均为2的整数次幂;
所述傅里叶变换长度大于或等于所述汉明窗窗长。
在本发明的一个实施例中,所述步进长度为所述汉明窗窗长的一半。
在本发明的一个实施例中,所述汉明窗的计算公式为:
Figure SMS_1
其中,
Figure SMS_2
表示汉明窗的第/>
Figure SMS_3
个点,/>
Figure SMS_4
表示汉明窗长度。
在本发明的一个实施例中,所述经过幂次后移位相加的汉明窗的获取方法为:
将所述汉明窗进行二次幂计算;
将二次幂计算数据向后移位若干次,移位距离依次为:0、
Figure SMS_5
、/>
Figure SMS_6
、…、
Figure SMS_7
,得到移位数据,其中,/>
Figure SMS_8
表示信号长度,/>
Figure SMS_9
表示步进长度,/>
Figure SMS_10
表示汉明窗长度;
将移位后数据按列相加,得到所述经过幂次后移位相加的汉明窗。
在本发明的一个实施例中,依据所述信号长度和所述步进长度将所述时域变换信号分为四组数据,包括:
将所述时域变换信号中第1个数据至第
Figure SMS_11
个数据作为第一组数据;
将所述时域变换信号中第
Figure SMS_12
个数据至第/>
Figure SMS_13
个数据、第/>
Figure SMS_14
个数据至第/>
Figure SMS_15
个数据中的任一组数据作为第二组数据,另一组数据作为第三组数据;
将所述时域变换信号中第
Figure SMS_16
个数据至第/>
Figure SMS_17
个数据作为第四组数据;
其中,
Figure SMS_18
表示信号长度,/>
Figure SMS_19
表示步进长度。
在本发明的一个实施例中,利用所述汉明窗、所述汉明窗窗长和所述傅里叶变换长度对所述四组数据同时进行短时傅里叶正变换,得到四组正变换数据,包括:
对每组数据以所述汉明窗窗长为单位依次获取待变换数据,将每次获取的待变换数据与所述汉明窗进行点乘,然后将点乘数据以所述傅里叶变换长度为单位进行短时傅里叶正变换,并且所述四组数据同时进行短时傅里叶正变换,得到所述四组正变换数据,
其中,所述短时傅里叶正变换的公式为:
Figure SMS_20
Figure SMS_21
Figure SMS_22
其中,
Figure SMS_24
表示第/>
Figure SMS_26
组数据,/>
Figure SMS_31
表示第/>
Figure SMS_25
组,/>
Figure SMS_28
表示第/>
Figure SMS_29
个/>
Figure SMS_33
点的待变换数据,/>
Figure SMS_23
表示傅里叶变换长度,/>
Figure SMS_27
表示信号长度,/>
Figure SMS_30
表示汉明窗窗长,/>
Figure SMS_32
表示汉明窗。
在本发明的一个实施例中,对所述四组正变换数据的信号处理数据同时按照所述傅里叶变换长度进行傅里叶逆变换,得到四组逆变换数据,包括:
对每组信号处理数据以所述傅里叶变换长度为单位依次进行傅里叶逆变换,并且四组信号处理数据同时进行傅里叶逆变换,得到所述四组逆变换数据;
其中,所述傅里叶逆变换的公式为:
Figure SMS_34
Figure SMS_35
Figure SMS_36
其中,
Figure SMS_39
表示第/>
Figure SMS_42
组,/>
Figure SMS_44
表示第/>
Figure SMS_38
个/>
Figure SMS_40
点数据,/>
Figure SMS_43
表示傅里叶变换长度,/>
Figure SMS_45
表示信号长度,/>
Figure SMS_37
表示汉明窗窗长,/>
Figure SMS_41
表示信号处理数据。
在本发明的一个实施例中,针对每组逆变换数据,依据所述汉明窗窗长对每次傅里叶逆变换后的数据进行截位,并将截位后的数据乘以所述汉明窗,得到四组截位加窗数据,包括:
针对每组逆变换数据,对每次傅里叶逆变换后的数据从第一个数据开始按照所述汉明窗窗长进行截位,并将截位后的数据乘以所述汉明窗,得到所述四组截位加窗数据。
在本发明的一个实施例中,根据所述信号长度对每组截位加窗数据分别进行补零,并将四组补零数据进行相加,再将相加结果除以所述经过幂次后移位相加的汉明窗,得到逆变换时域数据,包括:
对每组截位加窗数据进行补零直至数据长度达到所述信号长度,其中,补零方式为:在第一组截位加窗数据的后面补充
Figure SMS_48
个0,补齐至/>
Figure SMS_50
点;在第二组截位加窗数据或者第三组截位加窗数据的前面补充/>
Figure SMS_52
个0,后面补充/>
Figure SMS_49
个0,补齐至/>
Figure SMS_55
点;在第三组截位加窗数据的前面补充/>
Figure SMS_56
个0,后面补充/>
Figure SMS_57
个0,补齐至/>
Figure SMS_46
点;在第四组截位加窗数据的前面补充/>
Figure SMS_51
个0,补齐至/>
Figure SMS_53
点;其中,/>
Figure SMS_54
表示信号长度,/>
Figure SMS_47
表示傅里叶变换长度;
将所述四组补零数据按列进行相加,得到所述相加结果;
将所述相加结果除以所述经过幂次后移位相加的汉明窗,得到所述逆变换时域数据。
与现有技术相比,本发明的有益效果:
1、本发明的实现方法依据信号长度和步进长度将时域变换信号分为四组数据,并且在进行短时傅里叶正变换时四组数据同时进行,在进行傅里叶逆变换时四组信号处理数据也同时进行,使得在硬件实现过程中所消耗时间缩短为原来的4倍,大大缩短了算法的运行时间,且运算算法相近,可重复代码,既提高了算法运行速度又减小了工作量;同时,每组数据由于计算量的减小,所消耗资源也会减小,既兼顾了运算时间又减小了资源的消耗;
2、本发明将时频域变换的步进长度设置为汉明窗窗长的一半,在保证时频域变换性能、保证精度的同时有效减小了运算次数与运算后的数据量,有效提高了运算效率与并行度,保证算法的有效性。
附图说明
图1为本发明实施例提供的一种基于FPGA的时频域变换算法实现方法的流程示意图;
图2为本发明实施例提供的一种经过幂次后移位相加的汉明窗获取方法的过程示意图;
图3为本发明实施例提供的短时傅里叶正变换数据分组示意图;
图4为本发明实施例提供的一种短时傅里叶逆变换补零相加算法过程示意图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
实施例一
请参见图1,图1为本发明实施例提供的一种基于FPGA的时频域变换算法实现方法的流程示意图。该基于FPGA的时频域变换算法包括短时傅里叶正变换和短时傅里叶逆变换,其实现方法可以基于verilog语言实现。
短时傅里叶正变换实现方法包括步骤:
S1、获取时域变换信号及变换参数,其中,变换参数包括信号长度、汉明窗、汉明窗窗长、短时傅里叶变换滑窗时的步进长度、傅里叶变换长度和经过幂次后移位相加的汉明窗。
具体的,获取需要进行短时傅里叶变换的时域变换信号及其信号长度M。其中,信号长度
Figure SMS_58
需为2的整数次幂;如果信号长度/>
Figure SMS_59
小于2的整数次幂,则将其补零至2的整数次幂。例如,信号长度为/>
Figure SMS_60
,其为2的13次幂,符合2的整数次幂的要求。
获取汉明窗及汉明窗窗长
Figure SMS_61
。其中,汉明窗窗长/>
Figure SMS_62
为2的整数次幂,例如,汉明窗窗长/>
Figure SMS_63
,其为2的7次幂,符合2的整数次幂的要求。汉明窗的计算公式为:
Figure SMS_64
其中,
Figure SMS_65
表示汉明窗的第/>
Figure SMS_66
个点,/>
Figure SMS_67
表示汉明窗长度。
获取短时傅里叶变换滑窗时的步进长度
Figure SMS_68
,步进长度/>
Figure SMS_69
为汉明窗窗长/>
Figure SMS_70
的一半。例如,步进长度/>
Figure SMS_71
获取傅里叶变换长度
Figure SMS_72
,/>
Figure SMS_73
为2的整数次幂,且/>
Figure SMS_74
大于或等于汉明窗窗长/>
Figure SMS_75
。例如,傅里叶变换长度/>
Figure SMS_76
,其为2的7次幂,符合2的整数次幂的要求,且/>
Figure SMS_77
等于/>
Figure SMS_78
取经过幂次后移位相加的汉明窗,其中,幂次是指二次幂。请参见图2,图2为本发明实施例提供的一种经过幂次后移位相加的汉明窗获取方法的过程示意图。经过幂次后移位相加的汉明窗获取方法为:
首先,将汉明窗进行二次幂计算,计算公式为:
Figure SMS_79
其中,
Figure SMS_80
表示汉明窗,/>
Figure SMS_81
表示汉明窗窗长。
然后,将二次幂计算数据
Figure SMS_82
向后移位若干次,移位距离依次为:0、/>
Figure SMS_83
、/>
Figure SMS_84
、…、
Figure SMS_85
,得到移位数据,其中,/>
Figure SMS_86
表示信号长度,/>
Figure SMS_87
表示步进长度,/>
Figure SMS_88
表示汉明窗长度。
如图2所示,将二次幂计算数据
Figure SMS_89
向后移位127次,第一次移位距离为0,第二次移位距离为64点,第三次移位为/>
Figure SMS_90
点,…,第127次移位距离为/>
Figure SMS_91
点,得到移位数据。
最后,将移位数据按列进行相加,得到经过幂次后移位相加的汉明窗。
如图2所示,将每行移位数据补零至8192点,然后按列相加,得到8192点的经过幂次后移位相加的汉明窗。
S2、依据信号长度和步进长度将时域变换信号分为四组数据。
请参见图3,图3为本发明实施例提供的短时傅里叶正变换数据分组示意图。时域变换信号的分组方式为:
将时域变换信号中第1个数据至第
Figure SMS_92
个数据作为第一组数据,表示为:
Figure SMS_93
将时域变换信号中第
Figure SMS_94
个数据至第/>
Figure SMS_95
个数据、第/>
Figure SMS_96
个数据至第
Figure SMS_97
个数据中的任一组数据作为第二组数据,另一组数据作为第三组数据。
具体的,将第
Figure SMS_98
个数据至第/>
Figure SMS_99
个数据作为第二组数据时,第二组数据表示为:
Figure SMS_100
将第
Figure SMS_101
至第/>
Figure SMS_102
个数据作为第三组数据时,第三组数据表示为:
Figure SMS_103
可以理解的是,上述第二组数据和第三组数据可以互相交换,交换后的数据分组所达到的技术效果相同。
将时域变换信号中第
Figure SMS_104
个数据至第/>
Figure SMS_105
个数据作为第四组数据,表示为:
Figure SMS_106
其中,
Figure SMS_107
表示信号长度,/>
Figure SMS_108
表示步进长度。
按照上述方式将时域变换信号分为四组后,第一、三、四组数据长度为
Figure SMS_109
,第二组数据长度为/>
Figure SMS_110
如图3所示,时域变换信号的信号长度为8192点,将其按照上述方式分为四组后,第一组数据为1~4096,第二组数据为65~4032,第三组数据为4033~8128,第四组数据为4096~8192;第一、三、四组数据长度为4096,第二组数据长度为3968。在另一实施方式中,第一组数据为1~4096,第二组数据为65~4160,第三组数据为4461~8128,第四组数据为4096~8192。
需要说明的是,时域变换信号分组需要满足的条件包括:第一组数据为第1个数据至第
Figure SMS_111
个数据,第四组数据为第/>
Figure SMS_112
个数据至第/>
Figure SMS_113
个数据,第二组数据距离信号起点为一个步进长度/>
Figure SMS_114
,第三组数据据距离信号末点为一个步进长度/>
Figure SMS_115
,第二组数据和第三组数据的长度之和等于原始时域变换信号的信号长度减去一个汉明窗窗长,第二组数据和第三组数据的长度相差汉明窗长度/>
Figure SMS_116
的整数倍,在此条件下,第二组数据和第三组数据的长度可以自定义,并不限于上述分组方式,且第二组数据的长度和第三组数据的长度可以互相交换。例如,时域变换信号的信号长度为8192点,第一组数据为1~4096,第二组数据为65~4288,第三组数据为4289~8128,第四组数据为4096~8192。
S3、利用汉明窗、汉明窗窗长和傅里叶变换长度对四组数据同时进行短时傅里叶正变换,得到四组正变换数据。
具体的,对每组数据以汉明窗窗长
Figure SMS_117
为单位依次获取待变换数据,将每次获取的待变换数据与汉明窗/>
Figure SMS_121
进行点乘,然后将点乘数据以傅里叶变换长度/>
Figure SMS_124
为单位进行短时傅里叶正变换,并且四组数据同时进行短时傅里叶正变换,得到四组正变换数据。可以理解的是,将四组数据的运算并行进行;对于每组数据,先取前/>
Figure SMS_119
个数据与/>
Figure SMS_120
个汉明窗进行点乘后进行/>
Figure SMS_123
点的短时傅里叶正变换,再取后/>
Figure SMS_126
个数据与/>
Figure SMS_118
个汉明窗进行点乘后进行/>
Figure SMS_122
点的短时傅里叶正变换,以此类推,直到每组数据的所有点都以/>
Figure SMS_125
个数据为长度进行完/>
Figure SMS_127
点的短时傅里叶变换后,得到正变换数据。
具体的,短时傅里叶正变换的公式为:
Figure SMS_128
Figure SMS_129
Figure SMS_130
其中,
Figure SMS_132
表示第/>
Figure SMS_135
组数据,/>
Figure SMS_137
表示第/>
Figure SMS_131
组,/>
Figure SMS_134
表示第/>
Figure SMS_136
个/>
Figure SMS_139
点的待变换数据,/>
Figure SMS_133
表示傅里叶变换长度,/>
Figure SMS_138
表示信号长度,/>
Figure SMS_140
表示汉明窗窗长,/>
Figure SMS_141
表示汉明窗。
进一步的,经过短时傅里叶正变换,第一、三、四组数据的频域点数为
Figure SMS_142
,第二组数据频域点数为/>
Figure SMS_143
,四组数据的总点数为/>
Figure SMS_144
需要说明的是,由于短时傅里叶变换长度
Figure SMS_145
大于或等于汉明窗窗长/>
Figure SMS_150
,当/>
Figure SMS_154
大于
Figure SMS_146
时,对于每组数据,先取前/>
Figure SMS_149
个数据与/>
Figure SMS_151
个汉明窗进行点乘,此时点乘数据的长度为
Figure SMS_153
,将/>
Figure SMS_147
个点乘数据在数据后补零至/>
Figure SMS_148
个点后在进行/>
Figure SMS_152
点的短时傅里叶正变换。
在一个具体实施方式中,短时傅里叶变换长度
Figure SMS_155
和汉明窗窗长/>
Figure SMS_156
均为128,此时,将四组数据的运算并行进行,对于每组数据,先取前128个数据与汉明窗进行点乘后再进行128点的短时傅里叶正变换,再取后128个数据与汉明窗进行点乘后再进行128点的短时傅里叶正变换,以此类推,直到每组数据的所有点都以128个数据为长度进行完128点的短时傅里叶正变换后,得到的结果便为短时傅里叶正变换的结果即正变换数据,其中第一、三、四组数据要进行32次短时傅里叶正变换,第二组要进行31次短时傅里叶正变换。进一步的,经过短时傅里叶正变换,第一二四组数据的频域点数为/>
Figure SMS_157
,第二组数据频域点数为/>
Figure SMS_158
,四组数据的总点数为16256。
进一步的,在对时域变换信号进行短时傅里叶正变换后,得到的四组正变换数据为四组时频域数据,然后可以对四组时频域数据分别进行信号处理,得到四组信号处理数据,之后可以根据需要选择进行短时傅里叶逆变换。
具体的,短时傅里叶逆变换实现方法包括步骤:
S1、对四组正变换数据的信号处理数据同时按照傅里叶变换长度进行傅里叶逆变换,得到四组逆变换数据。
具体的,对每组信号处理数据以傅里叶变换长度
Figure SMS_159
为单位依次进行傅里叶逆变换,并且四组信号处理数据同时进行傅里叶逆变换,得到四组逆变换数据。可以理解的是,四组信号处理数据同时进行傅里叶逆变换,对于每组信号处理数据,依次取/>
Figure SMS_160
点数据进行傅里叶逆变换,直到将每组的全部数据都完成傅里叶逆变换。
傅里叶逆变换的公式为:
Figure SMS_161
Figure SMS_162
Figure SMS_163
其中,
Figure SMS_165
表示第/>
Figure SMS_167
组,/>
Figure SMS_170
表示第/>
Figure SMS_164
个/>
Figure SMS_169
点数据,/>
Figure SMS_171
表示傅里叶变换长度,/>
Figure SMS_172
表示信号长度,/>
Figure SMS_166
表示汉明窗窗长,/>
Figure SMS_168
表示信号处理数据。
在一个具体实施方式中,将四组短时傅里叶正变换结果的信号处理数据依次取128点数据进行傅里叶逆变换,直到将每组的全部数据都完成傅里叶逆变换,得到逆变换数据。
S2、针对每组逆变换数据,依据汉明窗窗长对每次傅里叶逆变换后的数据进行截位,并将截位后的数据乘以汉明窗,得到四组截位加窗数据。
具体的,针对每组逆变换数据,将每次经过傅里叶逆变换后的
Figure SMS_173
点数据从第一个数据开始截位为/>
Figure SMS_174
点,只取前/>
Figure SMS_175
个点,并将截位后的数据乘以汉明窗得到每组的截位加窗数据,截位加窗数据用公式表示为:
Figure SMS_176
其中,
Figure SMS_177
表示经过截位和加窗后的数据,/>
Figure SMS_178
表示对逆变换数据进行截位后的数据,/>
Figure SMS_179
表示第/>
Figure SMS_180
组数据,其值为1,2,3,4,/>
Figure SMS_181
表示第/>
Figure SMS_182
个N点数据。
需要注意的是,若傅里叶变换长度
Figure SMS_185
等于汉明窗窗长/>
Figure SMS_187
,则不需要进行截位,例如,傅里叶变换长度/>
Figure SMS_189
和汉明窗窗长/>
Figure SMS_184
均为128,则不需要截位;若傅里叶变换长度/>
Figure SMS_186
大于汉明窗窗长/>
Figure SMS_188
,则需要将傅里叶逆变换之后数据的后/>
Figure SMS_190
个点截掉,使其长度为/>
Figure SMS_183
S3、根据信号长度对每组截位加窗数据分别进行补零,并将四组补零数据进行相加,再将相加结果除以经过幂次后移位相加的汉明窗,得到逆变换时域数据。
请参见图4,图4为本发明实施例提供的一种短时傅里叶逆变换补零相加算法过程示意图。
具体的,首先,对每组截位加窗数据进行补零直至数据长度达到信号长度。补零方式为:第一组截位加窗数据一共有
Figure SMS_199
个点,在第一组截位加窗数据的后面补充/>
Figure SMS_193
个0,补齐至/>
Figure SMS_195
点。第二组截位加窗数据或者第三组截位加窗数据一共有/>
Figure SMS_198
个点,在第二组截位加窗数据或者第三组截位加窗数据的前面补充/>
Figure SMS_203
个0,后面补充/>
Figure SMS_204
个0,补齐至/>
Figure SMS_206
点。第三组截位加窗数据一共有/>
Figure SMS_201
个点,在第三组截位加窗数据的前面补充/>
Figure SMS_205
个0,后面补充/>
Figure SMS_192
个0,补齐至/>
Figure SMS_197
点;第四组截位加窗数据一共有/>
Figure SMS_194
个点,在第四组截位加窗数据的前面补充/>
Figure SMS_196
个0,补齐至/>
Figure SMS_200
点;其中,/>
Figure SMS_202
表示信号长度,/>
Figure SMS_191
表示傅里叶变换长度。
然后,将四组M点的补零数据按列进行相加,得到的相加结果为M点未加窗短时傅里叶逆变换数据;并将相加结果除以经过幂次后移位相加的汉明窗,得到逆变换时域数据。
如图4所示,将图4中的第一组截位加窗数据T1、第二组截位加窗数据T2、第三组截位加窗数据T3、第四组截位加窗数据T4分别补零至8192点,得到四组8192点的补零数据。然后,将四组8192点的补零数据按列相加,得到的相加结果为1组8192点的数据,之后将该组数据除以经过幂次后移位相加的汉明窗,得到逆变换时域数据。
本实施例的时频域变换算法实现方法具有以下优点:1)将点数为M的时域变换信号分为四份,在进行短时傅里叶正变换时四组数据同时进行,在进行傅里叶逆变换时四组信号处理数据也同时进行,使得在硬件实现过程中所消耗时间缩短为原来的4倍,大大缩短了算法的运行时间,且运算算法相近,可重复代码,既提高了算法运行速度又减小了工作量;2)每组数据由于计算量的减小,所消耗资源也会减小,既兼顾了运算时间又减小了资源的消耗;3)将时频域变换的步进长度设为汉明窗窗长的一半,既保证精度的同时又能减小运算后的数据量,保证算法的有效性。
综上,本实施例通过将时频域变换分为四组数据并行处理,大大提高了算法的运行速度,大大利用了verilog语言的并行化处理的优势,且在不损失算法性能的前提下,尽可能将数据量压缩到了最小,用较小的资源实现了时频域变换的硬件算法实现,同时极大的缩短了算法耗时,让时频域算法在工程实现上成为可能。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (9)

1.一种基于FPGA的时频域变换算法实现方法,其特征在于,所述FPGA的时频域变换算法包括短时傅里叶正变换和短时傅里叶逆变换,其中,
所述短时傅里叶正变换实现方法包括步骤:
获取时域变换信号及变换参数,所述变换参数包括信号长度、汉明窗、汉明窗窗长、短时傅里叶变换滑窗时的步进长度、傅里叶变换长度和经过幂次后移位相加的汉明窗;所述经过幂次后移位相加的汉明窗的获取方法为:将所述汉明窗进行二次幂计算;将二次幂计算数据向后移位若干次,移位距离依次为:
Figure FDA0004253140730000011
得到移位数据,其中,M表示信号长度,H表示步进长度,N表示汉明窗长度;将移位后数据按列相加,得到所述经过幂次后移位相加的汉明窗;
依据所述信号长度和所述步进长度将所述时域变换信号分为四组数据;
利用所述汉明窗、所述汉明窗窗长和所述傅里叶变换长度对所述四组数据同时进行短时傅里叶正变换,得到四组正变换数据;
所述短时傅里叶逆变换实现方法包括步骤:
对所述四组正变换数据的信号处理数据同时按照所述傅里叶变换长度进行傅里叶逆变换,得到四组逆变换数据;
针对每组逆变换数据,依据所述汉明窗窗长对每次傅里叶逆变换后的数据进行截位,并将截位后的数据乘以所述汉明窗,得到四组截位加窗数据;
根据所述信号长度对每组截位加窗数据分别进行补零,并将四组补零数据进行相加,再将相加结果除以所述经过幂次后移位相加的汉明窗,得到逆变换时域数据。
2.根据权利要求1所述的基于FPGA的时频域变换算法实现方法,其特征在于,所述信号长度、所述汉明窗窗长、所述步进长度、所述傅里叶变换长度均为2的整数次幂;
所述傅里叶变换长度大于或等于所述汉明窗窗长。
3.根据权利要求1所述的基于FPGA的时频域变换算法实现方法,其特征在于,所述步进长度为所述汉明窗窗长的一半。
4.根据权利要求1所述的基于FPGA的时频域变换算法实现方法,其特征在于,所述汉明窗的计算公式为:
Figure FDA0004253140730000021
其中,n表示汉明窗的第n个点,N表示汉明窗长度。
5.根据权利要求1所述的基于FPGA的时频域变换算法实现方法,其特征在于,依据所述信号长度和所述步进长度将所述时域变换信号分为四组数据,包括:
将所述时域变换信号中第1个数据至第
Figure FDA0004253140730000022
个数据作为第一组数据;
将所述时域变换信号中第H+1个数据至第
Figure FDA0004253140730000023
个数据、第/>
Figure FDA0004253140730000024
个数据至第M-H个数据中的任一组数据作为第二组数据,另一组数据作为第三组数据;
将所述时域变换信号中第
Figure FDA0004253140730000025
个数据至第M个数据作为第四组数据;
其中,M表示信号长度,H表示步进长度。
6.根据权利要求1所述的基于FPGA的时频域变换算法实现方法,其特征在于,利用所述汉明窗、所述汉明窗窗长和所述傅里叶变换长度对所述四组数据同时进行短时傅里叶正变换,得到四组正变换数据,包括:
对每组数据以所述汉明窗窗长为单位依次获取待变换数据,将每次获取的待变换数据与所述汉明窗进行点乘,然后将点乘数据以所述傅里叶变换长度为单位进行短时傅里叶正变换,并且所述四组数据同时进行短时傅里叶正变换,得到所述四组正变换数据,
其中,所述短时傅里叶正变换的公式为:
STFTi(k)=fft(Dik×ω(n),L);
Figure FDA0004253140730000031
Figure FDA0004253140730000032
其中,Di表示第i组数据,i表示第i组,k表示第k个N点的待变换数据,L表示傅里叶变换长度,M表示信号长度,N表示汉明窗窗长,ω(n)表示汉明窗。
7.根据权利要求1所述的基于FPGA的时频域变换算法实现方法,其特征在于,对所述四组正变换数据的信号处理数据同时按照所述傅里叶变换长度进行傅里叶逆变换,得到四组逆变换数据,包括:
对每组信号处理数据以所述傅里叶变换长度为单位依次进行傅里叶逆变换,并且四组信号处理数据同时进行傅里叶逆变换,得到所述四组逆变换数据;
其中,所述傅里叶逆变换的公式为:
ISTFTi(k)=ifft(STFT_Dk,L);
Figure FDA0004253140730000033
Figure FDA0004253140730000034
其中,i表示第i组,k表示第k个L点数据,L表示傅里叶变换长度,M表示信号长度,N表示汉明窗窗长,STFT_Dk表示信号处理数据。
8.根据权利要求1所述的基于FPGA的时频域变换算法实现方法,其特征在于,针对每组逆变换数据,依据所述汉明窗窗长对每次傅里叶逆变换后的数据进行截位,并将截位后的数据乘以所述汉明窗,得到四组截位加窗数据,包括:
针对每组逆变换数据,对每次傅里叶逆变换后的数据从第一个数据开始按照所述汉明窗窗长进行截位,并将截位后的数据乘以所述汉明窗,得到所述四组截位加窗数据。
9.根据权利要求1所述的基于FPGA的时频域变换算法实现方法,其特征在于,根据所述信号长度对每组截位加窗数据分别进行补零,并将四组补零数据进行相加,再将相加结果除以所述经过幂次后移位相加的汉明窗,得到逆变换时域数据,包括:
对每组截位加窗数据进行补零直至数据长度达到所述信号长度,其中,补零方式为:在第一组截位加窗数据的后面补充
Figure FDA0004253140730000041
个0,补齐至M点;在第二组截位加窗数据或者第三组截位加窗数据的前面补充L个0,后面补充/>
Figure FDA0004253140730000042
个0,补齐至M点;在第三组截位加窗数据的前面补充/>
Figure FDA0004253140730000043
个0,后面补充L个0,补齐至M点;在第四组截位加窗数据的前面补充
Figure FDA0004253140730000044
个0,补齐至M点;其中,M表示信号长度,L表示傅里叶变换长度;
将所述四组补零数据按列进行相加,得到所述相加结果;
将所述相加结果除以所述经过幂次后移位相加的汉明窗,得到所述逆变换时域数据。
CN202310277585.0A 2023-03-21 2023-03-21 一种基于fpga的时频域变换算法实现方法 Active CN115982527B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310277585.0A CN115982527B (zh) 2023-03-21 2023-03-21 一种基于fpga的时频域变换算法实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310277585.0A CN115982527B (zh) 2023-03-21 2023-03-21 一种基于fpga的时频域变换算法实现方法

Publications (2)

Publication Number Publication Date
CN115982527A CN115982527A (zh) 2023-04-18
CN115982527B true CN115982527B (zh) 2023-07-07

Family

ID=85974528

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310277585.0A Active CN115982527B (zh) 2023-03-21 2023-03-21 一种基于fpga的时频域变换算法实现方法

Country Status (1)

Country Link
CN (1) CN115982527B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115033840A (zh) * 2022-05-26 2022-09-09 北京邮电大学 调制信号处理、装置和电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1981500A (zh) * 2004-07-01 2007-06-13 德克萨斯仪器股份有限公司 实现频谱整形的多频带正交频分复用系统的时域加窗
EP2119306A4 (en) * 2007-03-01 2012-04-25 Jerry Mahabub SOUND SPECIALIZATION AND ENVIRONMENT SIMULATION
CN101651649A (zh) * 2009-09-14 2010-02-17 哈尔滨工业大学 基于四项加权分数傅立叶变换与分布式发送天线的载波协同通信方法
JP6216550B2 (ja) * 2013-06-25 2017-10-18 クラリオン株式会社 フィルタ係数群演算装置及びフィルタ係数群演算方法
CN105137175B (zh) * 2015-08-06 2017-11-07 湖南大学 一种加窗短时傅里叶变换三点插值动态频率测量方法
CN108708871A (zh) * 2018-04-19 2018-10-26 浙江大学 一种基于逆短时傅里叶变换的轴流风机振动信号子成分提取方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115033840A (zh) * 2022-05-26 2022-09-09 北京邮电大学 调制信号处理、装置和电子设备

Also Published As

Publication number Publication date
CN115982527A (zh) 2023-04-18

Similar Documents

Publication Publication Date Title
CN103870438B (zh) 一种利用数论变换计算循环卷积的电路结构
EP2290938A1 (en) Signal processing method, data processing method and data processing apparatus
CN103646011B (zh) 一种基于线性调频z变换的信号频谱细化方法
CN104967428A (zh) 用于fpga的高速高阶fir滤波器的频域实现方法
CN103901405B (zh) 实时块浮点频域四路脉冲压缩器及其脉冲压缩方法
CN115982527B (zh) 一种基于fpga的时频域变换算法实现方法
CN103544111B (zh) 一种基于实时性处理的混合基fft方法
CN114996638A (zh) 一种顺序架构的可配置快速傅里叶变换电路
CN102841880B (zh) 一种基于数字信号处理器快速频谱细化的方法
CN102567282A (zh) 通用dsp处理器中fft计算实现装置和方法
CN116822616A (zh) 一种用于大语言模型中Softmax函数训练的装置
CN116578819A (zh) 一种稀疏分数傅里叶变换fpga实现方法及系统
CN114185014B (zh) 一种应用于雷达信号处理的并行卷积方法及装置
CN101551790B (zh) 应用于通信领域的快速傅立叶变换实现方法及装置
CN105137176A (zh) 一种利用快速三角形式傅里叶变换的信号谐波分析方法
CN101833540B (zh) 信号处理方法和装置
CN103926567B (zh) 高速实时脉冲压缩算法
CN110736970B (zh) 基于asic机器学习处理器的雷达目标快速识别方法
Yang et al. A efficient design of a real-time FFT architecture based on FPGA
CN114019460A (zh) 一种雷达设备抗干扰掩护脉冲校正序列产生方法及装置
Zhong et al. An ultra high-speed FFT processor
CN107451096B (zh) 高吞吐率fft/ifft的fpga信号处理方法
CN102023963B (zh) 高速多模式时频域变换方法
CN112163187B (zh) 一种超长点数高性能fft计算装置
CN104615582A (zh) 面向gpdsp的大点数一维fft向量化计算的方法

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
GR01 Patent grant
GR01 Patent grant