一种频域处理方法及装置的制造方法_3

文档序号:8457249阅读:来源:国知局
94] 本实施例提供两种方式对g个数据块分别进行FFT运算。
[0095] 第一种方式,当g不能整除T时,将g个数据块分配到b个并行通道进行FFT运 算。其中,b个并行通道中第一通道bl在T个时钟周期内完成一个数据块的FFT运算,b 个并行通道中除bl外的其他并行通道各自在每个时钟周期完成一个数据块的FFT运算。 「]表示向上取整运算。
[0096] 参见图 5,假设 g 个数据块分别是 BL0CK_1、BL0CK_2、. . .、BL0CK_g/T、BL0CK_(g/ T+l).....BLOCK,[(T-I) (g/T)+l].....BL0CK_g。b个并行通道中除bl外的其他并行通道 分别是b2~b (g/T)。那么,第一通道bl在T个时钟周期内完成数据块BL0CK_1的FFT运 算。通道b2~b (g/T)在T个时钟周期的第一个时钟周期分别完成BL0CK_2~BL0CK_g/ T的FFT运算,在T个时钟周期的第二个时钟周期分别完成BL0CK_(g/T+l)~BL0CK_(2g/ T-1)的FFT运算,以此类推。
[0097] 当g能整除T时,将g个数据块分配到p个并行通道进行FFT运算,其中,p个并 行通道中每个通道各自在每个时钟周期完成一个数据块的FFT运算,p = g/T。
[0098] 参见图6,假设p个并行通道分别是pi~p (g/T),那么,通道pi~p (g/T)在T个 时钟周期的第一个时钟周期分别完成BL0CK_1~BL0CK_g/T的FFT运算,在T个时钟周期 的第二个时钟周期分别完成BLOCK_(g/T+l)~BL0CK_2g/T的FFT运算,以此类推。
[0099] 第二种方式,将g个数据块分配到g个并行通道进行FFT运算。g个并行通道中每 个通道各自在T个时钟周期内完成一个数据块的FFT运算。
[0100] 上述两种方式均是为了在T个时钟周期内完成当前周期需处理数据D的FFT而进 行的FFT时隙安排。第一种方式相比于第二种方式,并行通道的数量较少,占用的资源较 少,并行度利用率较高。
[0101] 步骤206、对g个完成FFT运算后的数据块分别进行频域相移处理。
[0102] 其中,频域相移处理方式可以采用本领域已知方式,在此不再赘述。需要说明的 是,在频域相移处理之后,还可以对g个数据块进行增益处理等其他频域处理。
[0103] 通过步骤205至步骤206实现了,对g个数据块分别进行频域处理,得到g个频域 处理后的数据块。
[0104] 步骤207、对每一个频域处理后的数据块进行IFFT运算,得到g个完成IFFT运算 后的数据块。
[0105] 在FFT运算和频域相移处理等频域处理之后,对每一个频域处理后的数据块进行 IFFT运算。
[0106] 需要说明的是,IFFT运算的方式可以与步骤205提供的FFT运算的方式相同,在 此省略描述。
[0107] 步骤208、将每一个完成IFFT运算后的数据块的头部和尾部各tap/2位数据丢弃, 得到g个去重叠的数据块。
[0108] 其中,将每一个完成IFFT运算后的数据块的头部和尾部各tap/2位数据丢弃包 括,将每一个完成IFFT运算后的数据块的头部tap/2位数据丢弃、以及将每一个完成IFFT 运算后的数据块的尾部tap/2位数据丢弃。
[0109] 完成丢弃后,每一个去重叠的数据块的宽度为tap。
[0110] 步骤209、按照各个数据块的编号的排列顺序,对g个去重叠的数据块进行排列, 得到频域处理后的实际需处理数据D1。
[0111] 其中,g个去重叠的数据块进行排列后,构成的数据宽度为g*tap。结合,g = (T*M+tap)/tap_l、以及tap = N/2,可以推知g*tap = T*M,即当前周期实际需处理数据Dl 的宽度。
[0112] 通过步骤207至步骤209实现了,从g个频域处理后的数据块中,获得频域处理后 的实际需处理数据Dl。
[0113] 下面结合实际应用场景简单介绍本发明实施例。
[0114] 已知每个时钟周期输入160点连续的采样点,即M = 160。
[0115] 场景一是进行128点FFT运算满足性能需求,即N = 128。那么,M与N的最小公 倍数 sumO = 640, tap = 64, T = 2, g = 5,「g/r"| = 3。
[0116] 参见图7,第一步,获得当前周期实际需处理数据D1,D1包括2个时钟周期输入的 数据d2和d3, d2和d3均包括160点采样点。
[0117] 第二步,确定当前周期需处理数据D。假设前一个周期实际需处理数据包括数据 do和dl,则dl的96~159点数据为前一个周期实际需处理数据尾部的64点数据。那么, 当前周期需处理数据D包括dl的96~159点数据、d2的0~159点数据、以及d3的?~ 159点数据。
[0118] 第三步,对当前周期需处理数据D进行分割和重叠,得到5个128点的数据块 FFT_0、FFT_1、FFT_2、FFT_3、和 FFT_4。
[0119] 第四步,将5个128点的数据块分配到3个并行通道(包括通道一至三)进行FFT 运算。通道一在2个时钟周期完成FFT_0的FFT运算,通道二和三分别在2个时钟周期完 成 FFT_1、FFT_2、FFT_3、和 FFT_4 的 FFT 运算。
[0120] 第五步,将完成FFT运算的5个128点的数据块分配到3个并行通道进行IFFT运 算,得到 5 个 128 点数据块 IFFTJK IFFT_1、IFFT_2、IFFT_3、和 IFFT_4。
[0121] 第六步,将IFFT_0、IFFT_1、IFFT_2、IFFT_3、和IFFT_4各自的头部和尾部32位丢 弃,获得 5 个 64 点数据块 Temp_0、Temp_l、Temp_2、Temp_3、以及 Temp_4。
[0122] 第七步、对1611^1_0、1611^1_1、1611^1_2、1611^1_3、以及1611^1_4进行排列,得到频域处理 后的实际需处理数据Dl。
[0123] 场景二是进行64点FFT运算满足性能需求,即N = 64。那么,M与N的最小公倍 数 sumO = 320, tap = 32, T = 1,g = 5,「g/r"| = 5。
[0124] 第一步,获得当前周期实际需处理数据Dl,Dl包括1个时钟周期输入的数据dl, dl包括160点采样点。
[0125] 第二步,确定当前周期需处理数据D。假设前一个周期实际需处理数据包括数据 dO,则do的128~159点数据为前一个周期实际需处理数据尾部的32点数据。那么,需处 理数据D包括d0的128~159点数据、和dl的0~159点数据。
[0126] 第三步,对需处理数据D进行分割和重叠,得到5个64点的数据块FFT_0、FFT_1、 FFT_2、FFT_3、和 FFT_4。
[0127] 第四步,将5个64点的数据块分配到5个并行通道(包括通道一至五)进行FFT 运算。通道一至五分别在1个时钟周期完成FFTJK FFT_1、FFT_2、FFT_3、和FFT_4的FFT 运算。
[0128] 第五步,将完成FFT运算的5个64点的数据块分配到5个并行通道进行IFFT运 算,得到 5 个 64 点数据块 IFFTJK IFFT_1、IFFT_2、IFFT_3、和 IFFT_4。
[0129] 第六步,将IFFT_0、IFFT_1、IFFT_2、IFFT_3、和IFFT_4各自的头部和尾部16位丢 弃,获得 5 个 32 点数据块 Temp_0、Temp_l、Temp_2、Temp_3、以及 Temp_4。
[0130] 第七步、对1611^1_0、1611^1_1、1611^1_2、1611^1_3、以及1611^1_4进行排列,得到频域处理 后的实际需处理数据Dl。
[0131] 场景三是进行320点FFT运算满足性能需求,即N = 320。那么,M与N的最小公 倍数 sumO = 320, tap = 160, T = 1,g = 1,「g/r"|=l。
[0132] 第一步,获得当前周期实际需处理数据Dl,Dl包括1个时钟周期输入的数据dl, dl包括160点采样点。
[0133] 第二步,确定当前周期需处理数据D。假设前一个周期实际需处理数据包括数据 d0,则d0的0~159点数据为前一个周期实际需处理数据尾部的160点数据。那么,D包 括d0的0~159点数据、和dl的0~159点数据。
[0134] 第三步,对需处理数据D进行分割和重叠,得到1个320点的数据块FFT_0。
[0135] 第四步,将1个320点的数据块分配到1个并行通道(包括通道一)进行FFT运 算。通道一在1个时钟周期完成FFT_0的FFT运算。
[0136] 第五步,将完成FFT运算的1个320点的数据块分配到1个并行通道进行IFFT运 算,得到1个
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1