一种基于fft的数据采样方法和装置的制造方法_2

文档序号:8339582阅读:来源:国知局
rse N_2[]〇
[0038] 在本发明实施例中,根据N_1与N_2获取逆序标号数组inverse N_1 □和逆序标 号数组inverse N_2 □的方式,需要判断N_1与预设数值的大小以及、N_2与预设数值的大 小,根据判断结果,可以包括如下两种获取方式:
[0039] 方式一:判断所述N_1与N_2小于或等于预设数值,根据所述N_1与N_2查找与所 述1^_1与1^_2对应的、预存的逆序标号数组inverse N_1 □和预存的逆序标号数组inverse N_2 []。
[0040] 其中,预设数值为预存的逆序标号数组中,逆序标号最多的逆序标号数组的个 数。比如对于存储 inverse2 []、inverse4 []、inverse8 []、inversel6 []、inverse32 □这些 逆序标号数组时,则所述预设数值为32。当然不局限于此,还可以设定为更大的数值。
[0041] 当N_1与N_2小于或等于预设数值,则可以直接查找到对应的逆序标号数组,比如 对于采样数据个数为1024个时,由于1024 = 32*32,而预设数值为32时,则可以直接查找 到满足要求的逆序标号数组。
[0042] 方式二:如果判断【1与【2中有一个大于预设数值,为便于说明,本发明假设 N_1大于预设数值,由于N_2大于预设数值的处理方法与N_1大于预设数值的处理方法一 样,在后面就不重复赘述。
[0043] 具体的,在N_1大于预设数值的处理方法,如图2所示:
[0044] 在步骤S201中,判断所述N_1大于预设数值。
[0045] 在步骤S202中,则将N_1分解为因子N_l_l与因子N_l_2的乘积。
[0046] 在步骤 S203 中,根据公式 inverse N_1[i*N_l_l+j] = N_l_2*inverse N_l_l[j]+inverse N_l_l[i]计算逆序标号数组,其中 0 彡 i〈N_l_2,0 彡 j〈N_l_l〇
[0047] 在步骤S204中,判断N_l_2和N_l_l是否大于预设数值,如果大于,根据上述分解 方法进一步分解判断,否则查找分解后的数值对应的逆序标号数组。
[0048] 在步骤 S104 中,根据公式 inverse N[i*N_l+j] = N_2*inverse N_1 [j]+inverse N_l[i]计算逆序标号数组,其中inverse N□为采样数据的个数N对应的逆序标号数组, 0 彡 i〈N_2,0 彡 j〈N_l。
[0049] 根据上述计算公式,对于每一个数值i,都可以计算得到对应有N_1个逆序标号。 一共可以得到N_1*N_2个逆序标号,以得到逆序标号数组inverseN[]。
[0050] 在步骤S105中,根据所述逆序标号数组中每个逆序标号指示的位置,将所采样的 数据存储至对应位置,以直接进行FFT运算。
[0051] 本发明直接在采样过程中,将读取的数据直接存储到逆序后的位置处,和对采样 数据进行接收存储以及逆序存储的方式相比,本发明所述存储方式更为节省存储空间,并 且将逆序变换在采样过程中完成,逆序变换简单,有利于提高数据转换效率。
[0052] 下面通过具体的逆序变换案例进行说明。
[0053] (1)对于N比较小的情况,可以将逆序标号预先计算好,直接整理成数组。例如,N =32时的逆序标号数组如下:
[0054] inverse32[] = {
[0055] 0 16 8 24 4 20 12 28
[0056] 2 18 10 26 6 22 14 30
[0057] 1 17 9 25 5 21 13 29
[0058] 3 19 11 27 7 23 15 31}。
[0059] 对应逆序算法如下,其中X□为原始顺序,y□为逆序:遍历数据循环,通过逆序数 组取出逆序标号,根据逆序标号将数据存储至对应位置,从而按此标号构成新的逆序数据。
[0060]
【主权项】
1. 一种基于FFT的数据采样方法,其特征在于,所述方法包括: 接收采样数据序列,获取采样数据的个数N ; 根据所述采样数据序列中采样数据的个数N,将所述采样数据序列中采样数据的个数 N分解为因子N_1与因子N_2的乘积; 根据N_1与N_2获取逆序标号数组inverse N_1 □和逆序标号数组inverse N_2[]; 根据公式inverse N[i*N_l+j]=N_2*inverse N_l[j]+inverse N_l[i]计算逆序标号 数组,其中inverse N□为采样数据的个数N对应的逆序标号数组,0彡i〈N_2,0彡j〈N_l ; 根据所述逆序标号数组中每个逆序标号指示的位置,将所采样的数据存储至对应位 置,以直接进行FFT运算。
2. 根据权利要求1所述方法,其特征在于,所述根据N_1与N_2获取逆序标号数组 inverse N_l[]和逆序标号数组inverse N_2[]具体为: 判断所述N_1与N_2小于或等于预设数值,根据所述N_1与N_2查找与所述N_1与N_2 对应的、预存的逆序标号数组inverse N_1 □和预存的逆序标号数组inverse N_2[]。
3. 根据权利要求1所述方法,其特征在于,所述根据N_1获取逆序标号数组inverse N_1 □具体为: 判断所述N_1大于预设数值,则将N_1分解为因子N_l_l与因子N_l_2的乘积; 根据公式 inverse N_l[i*N_l_l+j] =N_l_2*inverse N_l_l[j]+inverseN_l_l[i]计 算逆序标号数组,其中〇彡i〈N_l_2,0彡j〈N_l_l ; 进一步判断N_l_l和N_l_2是否大于预设数值,如果大于预设数值,则进一步进行分 解,直到分解的因子小于预设数值。
4. 根据权利要求2或3所述方法,其特征在于,所述预设数值为预存的逆序标号数组 中,逆序标号最多的逆序标号数组的个数。
5. 根据权利要求1所述方法,其特征在于,所述预设数值的大小与逆序标号数据占用 的内存资源的比例对应。
6. -种基于FFT的数据采样装置,其特征在于,所述装置包括: 数据读取单元,用于接收采样数据序列,获取采样数据的个数N ; 分解单元,用于根据所述采样数据序列中采样数据的个数N,将所述采样数据序列中采 样数据的个数N分解为因子N_1与因子N_2的乘积; 逆序标号数组获取单元,用于根据N_1与N_2获取逆序标号数组inverse N_1 □和逆 序标号数组inverse N_2 []; 标号计算单元,用于根据公式 inverse N[i*N_l+j] =N_2*inverse N_l[j]+inverse N_l[i]计算逆序标号数组,其中inverse N□为采样数据的个数N对应的逆序标号数组, 0 彡 i〈N_2,0 彡 j〈N_l ; 存储单元,用于根据所述逆序标号数组中每个逆序标号指示的位置,将所采样的数据 存储至对应位置,以直接进行FFT运算。
7. 根据权利要求6所述装置,其特征在于,所述逆序标号数组获取单元具体用于: 判断所述N_1与N_2小于或等于预设数值,根据所述N_1与N_2查找与所述N_1与N_2 对应的、预存的逆序标号数组inverse N_1 □和预存的逆序标号数组inverse N_2[]。
8. 根据权利要求6所述装置,其特征在于,所述逆序标号数组获取单元具体用于: 判断所述11大于预设数值,则将N_1分解为因子N_l_l与因子N_l_2的乘积;根据公 式 inverse N_l[i*N_l_l+j] =N_l_2*inverse N_l_l[j]+inverseN_l_l[i]计算逆序标号 数组,其中0彡i〈N_l_2,0彡j〈N_l_l ;进一步判断N_l_l和N_l_2是否大于预设数值,如 果大于预设数值,则进一步进行分解,直到分解的因子小于预设数值。
9. 根据权利要求7或8所述装置,其特征在于,所述预设数值为预存的逆序标号数组 中,逆序标号最多的逆序标号数组的个数。
10. 根据权利要求6所述装置,其特征在于,所述预设数值的大小与逆序标号数据占用 的内存资源的比例对应。
【专利摘要】本发明适用于数据处理领域,提供了一种数据采样方法,该方法包括:接收采样数据序列;根据采样数据的个数N,将采样数据的个数N分解为因子N_1与因子N_2的乘积;根据因子获取逆序标号数组inverse N_1[]和逆序标号数组inverse N_2[];根据公式inverse N[i*N_1+j]=N_2*inverse N_1[j]+inverse N_1[i]计算逆序标号数组;根据所述逆序标号数组中每个逆序标号指示的位置,将所采样的数据存储至对应位置。本发明逆序变换简单,计算效率高,而且通过将采样数据直接存储到逆序标号对应的位置,使得FFT运算效率更好,比如不同信号的转换效率更高。
【IPC分类】G06F17-14
【公开号】CN104657335
【申请号】CN201510059849
【发明人】徐飞
【申请人】航天科工深圳(集团)有限公司
【公开日】2015年5月27日
【申请日】2015年2月4日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1