分裂基数2/8快速傅立叶转换装置及方法.pdf

上传人:t**** 文档编号:1037388 上传时间:2018-03-27 格式:PDF 页数:18 大小:526.94KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010236529.5

申请日:

2010.07.16

公开号:

CN102339272A

公开日:

2012.02.01

当前法律状态:

终止

有效性:

无权

法律详情:

专利权的视为放弃IPC(主分类):G06F 17/14放弃生效日:20120201|||实质审查的生效IPC(主分类):G06F 17/14申请日:20100716|||公开

IPC分类号:

G06F17/14

主分类号:

G06F17/14

申请人:

联咏科技股份有限公司

发明人:

唐恒泰

地址:

中国台湾新竹科学园区创新一路13号2楼

优先权:

专利代理机构:

上海专利商标事务所有限公司 31100

代理人:

任永武

PDF下载: PDF下载
内容摘要

本发明是一种SR-2/8FFT装置,包括一存储器、一SRFFT处理器及一控制单元。控制单元包括一输入控制区块、一SRFFT控制区块及一输出控制区块。输入控制区块决定一第一次序,并依第一次序将输入数据加载对应的存储库,使得SRFFT处理器可在单一时脉周期内对这些存储库同时撷取数据。SRFFT控制区块决定一2M点FFT的分解架构,并控制SRFFT处理器沿着分解架构重复执行蝴蝶计算。每一次蝴蝶计算的输入数据次序符合第一次序。SRFFT控制区块控制每一次蝴蝶计算后的输出结果被写回输入数据所对应的存储库。输出控制区块决定一第二次序,并控制输出结果依第二次序输出为输出数据。

权利要求书

1: 一种分裂基数 (SR)-2/8 快速傅立叶转换 (FFT) 装置, 包括 : M 一存储器, 包含多个存储库, 并用以接收 2 笔输入数据, 每一笔数据具有一原始地址, M 为正整数 ; 一分裂基数快速傅立叶转换 (SRFFT) 处理器, 用以执行一时间降次 (DIT) 分裂基数蝴 蝶计算 ; 以及 一控制单元, 包括 : 一输入控制区块, 用以依据所述这些存储库的个数及所述这些原始地址的位反向地址 决定一第一次序, 并用以控制该存储器依该第一次序将所述这些输入数据加载对应于该第 一次序的所述这些存储库内, 使得该 SRFFT 处理器可在单一时脉周期内从所述这些存储库 同时撷取数据 ; 一分裂基数快速傅立叶转换 (SRFFT) 控制区块, 用以决定对应该 2M 笔输入数据的一 2M 点 FFT 的分解架构, 并控制该 SRFFT 处理器沿着该分解架构重复执行蝴蝶计算, 其中每一次 蝴蝶计算的输入数据次序符合该第一次序, 该 SRFFT 控制区块还用以控制每一次蝴蝶计算 后的输出结果被写回输入数据所对应的存储库 ; 及 一输出控制区块, 用以当该 DIT SR 蝴蝶计算完成后, 依据所述这些存储库的个数及 2M 笔输出数据的原始地址决定一第二次序, 并用以控制写回并储存在所述这些存储库内的所 M 述这些输出结果依该第二次序输出为 2 笔输出数据, 该 2M 笔输出数据包含的输出结果依序 对应符合第一次序之该 2M 笔输入数据。
2: 根据权利要求 1 所述的 SR-2/8FFT 装置, 其特征在于, 每一笔输入数据在对应的该存 储库的地址由该笔输入数据的位反向地址值除以存储库个数取其商数的整数值得到。
3: 根据权利要求 1 所述的 SR-2/8FFT 装置, 其特征在于, 当该 SRFFT 处理器所执行的蝴 蝶计算为 SR-8 蝴蝶计算时, 该 SRFFT 控制区块还用以产生 4 个旋转因子以提供给 SR-8 蝴 蝶计算, 使得 SR-8 蝴蝶计算的末 4 个输入分别被旋转达特定角度。
4: 根据权利要求 1 所述的 SR-2/8FFT 装置, 其特征在于, , 该 SRFFT 控制区块将该 2M 点 FFT 依 M 阶段不同基数的蝴蝶计算分解得到一分解执行次序, 并控制该 SRFFT 处理器沿着 该分解执行次序执行所述这些蝴蝶计算, 其中每一阶段不同基数的蝴蝶计算可能被重复执 行, 且每一次蝴蝶计算馈入输入端的输入数据符合该第一次序。
5: 根据权利要求 4 所述的 SR-2/8FFT 装置, 其特征在于, 该 SRFFT 控制区块以一有限状 态机构成, 该有限状态机记录多个状态, 每一个状态包含多个变量, 所述这些变量包括一阶 段、 表示蝴蝶计算开始位置的一基本位置、 表示每阶段处理的数据数目的一区块大小、 表示 该阶段的蝴蝶计算两输入端间距的一样本空间、 及一上一状态。
6: 根据权利要求 1 所述的 SR-2/8FFT 装置, 其特征在于, 每一笔输出数据在所读取的该 存储库的地址由该笔输出数据的原始地址值除以存储库个数取其商数的整数值得到。
7: 一种分裂基数 (SR)-2/8 快速傅立叶转换 (FFT) 方法, 应用于一 SR-2/8FFT 装置, 该 SR-2/8FFT 装置包括一存储器、 一分裂基数快速傅立叶转换 (SRFFT) 处理器以及一控制单 元, 该存储器包含多个存储库, 该 SRFFT 处理器用以执行一时间降次 (DIT)SR 蝴蝶计算, 该 控制单元包括一输入控制区块、 一分裂基数快速傅立叶转换 (SRFFT) 控制区块及一输出控 制区块, 该 SR-2/8FFT 方法包括 : 该存储器接收 2M 笔输入数据, 每一笔数据具有一原始地址, M 为正整数 ; 2 该输入控制区块依据所述这些存储库的个数及所述这些原始地址的位反向地址决定 一第一次序 ; 该输入控制区块控制该存储器依该第一次序将所述这些输入数据加载对应于该第一 次序的所述这些存储库内, 使得该 SRFFT 处理器可在单一时脉周期内从所述这些存储库同 时撷取数据 ; 该 SRFFT 控制区块决定对应该 2M 笔输入数据的一 2M 点 FFT 的分解架构, 并控制该 SRFFT 处理器沿着该分解架构重复执行蝴蝶计算, 其中每一次蝴蝶计算的输入数据次序符合该第 一次序 ; 该 SRFFT 控制区块控制每一次蝴蝶计算后的输出结果被写回输入数据所对应的存储 库; 以及 当该 DIT SR 蝴蝶计算完成后, 该输出控制区块依据所述这些存储库的个数及 2M 笔输 出数据的原始地址决定一第二次序, 并并用以控制写回并储存在所述这些存储库内的所述 这些输出结果依该第二次序输出为 2M 笔输出数据, 该 2M 笔输出数据包含的输出结果依序对 应符合第一次序的该 2M 笔输入数据。
8: 根据权利要求 7 所述的 SR-2/8FFT 方法, 其特征在于, 还包括 : 由每一笔输入数据的位反向地址值除以存储库个数取其商数的整数值得到该笔输入 数据在对应的该存储库的地址。
9: 根据权利要求 7 所述的 SR-2/8FFT 方法, 其特征在于, 还包括 : 当该 SRFFT 处理器所执行的蝴蝶计算为 SR-8 蝴蝶计算时, 该 SRFFT 控制区块产生 4 个 旋转因子以提供给 SR-8 蝴蝶计算, 使得 SR-8 蝴蝶计算的末 4 个输入分别被旋转达特定角 度。
10: 根据权利要求 7 所述的 SR-2/8FFT 方法, 其特征在于, 还包括 : M 该 SRFFT 控制区块将该 2 点 FFT 依 M 段阶不同基数的蝴蝶计算分解得到一分解执行 次序, 并控制该 SRFFT 处理器沿着该分解执行次序执行所述这些蝴蝶计算, 其中每一阶段 不同基数的蝴蝶计算可被重复执行, 且每一次蝴蝶计算馈入输入端的输入数据符合第一次 序。
11: 根据权利要求 10 所述的 SR-2/8FFT 方法, 其特征在于, 是以一有限状态机构成该 SRFFT 控制区块, 该有限状态机记录多个状态, 每一个状态包含多个变量, 所述这些变量包 括一阶段、 表示蝴蝶计算开始位置的一基本位置、 表示每阶段处理的数据数目的一区块大 小、 表示该阶段的蝴蝶计算两输入端间距的一样本空间、 及一上一状态。
12: 根据权利要求 7 所述的 SR-2/8FFT 方法, 其特征在于, 还包括 : 由每一笔输出数据的原始地址值除以存储库个数取其商数的整数值得到该笔输出数 据在所读取的该存储库的地址。

说明书


分裂基数 -2/8 快速傅立叶转换装置及方法

    技术领域 本 发 明 有 关 一 种 分 裂 基 数 (split-radix, SR)-2/8 快 速 傅 立 叶 转 换 (Fast FourierTransform, FFT) 装置及方法, 且特别是有关一种简单且有效的 SR-2/8FFT 装置及 方法。
     背景技术
     快速傅立叶转换 (Fast Fourier Transform, FFT) 常见于数字信号处理的实时应 用中。 依据欧洲数字影音广播标准 (DVB-T/DAB), 正交频分多路复用 (OrthogonalFrequency Division Multiplexer, OFDM) 系统被广泛地应用, 而专属的 FFT/IFFT 处理单元对于 OFDM 系统及数字通讯而言更是适于达到高频宽的目标。
     众所周知地, 在 FFT 算法中, 相较于基数 (radix)-4FFT, 分裂基数 (split-radix, SR)-2/8FFT 可以节省约 1/3 多乘法运算。SR-2/8FFT 如下列偶数项 FFT 及奇数项 FFT 的表 达式所示, 并请参照图 6 及图 7, 图 6 绘示频率降次 SR-8 蝴蝶运算的示意图, 图 7 绘示时间 降次 SR-8 蝴蝶运算的示意图。
     ( 偶數項 FFT)
     where k = 0, 1, 2, ..., (N/8)-1andl = 1, 3, 5, 7( 奇數項 FFT)
     因此, SR-2/8FFT 可更有效地利用资源或时间。然而, SR-2/8FFT 的不规则分解架 构使其难以用硬件实现, 而被视为较适于用软件实现。
     现举 SR-2/4FFT 算法为例做说明。SR-2/4FFT 及基数 -4FFF 的蝴蝶 (butterfly) 处理器有 4 个输入及 4 个输出。对应于一固定输入时脉及有限硬件资源, 存储器与蝴蝶处 理器间的数据存取必须尽可能地快。同时读取及写入 SR-2/4FFT 的蝴蝶处理器的四个输入 可以得到最快的 FFT 速度, 即每一个蝴蝶运算只耗费 1 时脉周期 (clock cycle)。
     假定存储器包含 4 个存储库 (memory bank), 则基数 -4FFT 处理器在处理 16 笔输 入数据时的时间降次 (decimation in time, DIT) 基数 -4 蝴蝶计算的数据输入序列如表 1 所示。
     表1
     在表 1 中, 于阶段 1 开始前, 数据 0 ~数据 3 被放在存储库 0, 数据 8 ~数据 11 被 放在存储库 1, 数据 4 ~数据 7 被放在存储库 2, 数据 12 ~数据 15 被放在存储库 3。因此, 在阶段 1, 基数 -4 蝴蝶处理器的 4 个输入可以在单一时脉周期同时读取数据, 例如 (0, 8, 4, 12)。然而, 在阶段 2, 基数 -4 蝴蝶处理器需要 4 个时脉周期才能从存储器读取数据, 例如 (0, 2, 1, 3)。因此, 整体 FFT 的运算速度降低, 导致整体系统的效率不佳。
     发明内容 本发明的目的是提供一种分裂基数 -2/8 快速傅立叶转换装置及方法, 利用存储 器管理使得分裂基数快速傅立叶转换处理器可以在单一时脉周期同时对存储器撷取 / 写 入多笔数据, 并利用规则的分解架构, 使得分裂基数快速傅立叶转换处理器可用低成本硬 件实现。
     根据本发明的第一方面, 提出一种分裂基数 (SR)-2/8 快速傅立叶转换 (FFT) 装 置, 包括一存储器、 一分裂基数快速傅立叶转换 (SRFFT) 处理器以及一控制单元。存储器包 含多个存储库, 并用以接收 2M 笔输入数据, 每一笔数据具有一原始地址, M 为正整数。SRFFT 处理器用以执行一时间降次 (DIT)SR 蝴蝶计算。控制单元包括一输入控制区块、 一 SRFFT 控制区块及一输出控制区块。 输入控制区块用以依据这些存储库的个数及这些原始地址的 位反向地址决定一第一次序, 并用以控制存储器依第一次序将这些输入数据加载对应的存 储库内, 使得 SRFFT 处理器可在单一时脉周期内从这些存储库同时撷取数据。SRFFT 控制 区块用以决定对应此 2M 笔输入数据的一 2M 点 FFT 的分解架构, 并控制 SRFFT 处理器沿着分 解架构重复执行蝴蝶计算。其中每一次蝴蝶计算的输入数据次序符合第一次序。SRFFT 控 制区块还用以控制每一次蝴蝶计算后的输出结果被写回输入数据所对应的存储库。 输出控 M 制区块用以当 DIT SR 蝴蝶计算完成后, 依据这些存储库的个数及 2 笔输出数据的原始地
     址决定一第二次序, 并并用以控制写回并储存在所述这些存储库内的所述这些输出结果依 M 第二次序输出为 2 笔输出数据, 2M 笔输出数据包含的输出结果依序对应符合第一次序的 2M 笔输入数据。
     根据本发明的第二方面, 提出一种分裂基数 (SR)-2/8 快速傅立叶转换 (FFT) 方 法, 应用于一 SR-2/8FFT 装置, SR-2/8FFT 装置包括一存储器、 一分裂基数快速傅立叶转换 (SRFFT) 处理器以及一控制单元。存储器包含多个存储库。SRFFT 处理器用以执行一时间 降次 (DIT)SR 蝴蝶计算。控制单元包括一输入控制区块、 一 SRFFT 控制区块及一输出控制 M 区块。此 SR-2/8FFT 方法包括下列步骤。存储器接收 2 笔输入数据, 每一笔数据具有一原 始地址, M 为正整数。输入控制区块依据这些存储库的个数及这些原始地址的位反向地址决定一第一次序。 输入控制区块控制该存储器依第一次序将这些输入数据加载对应的这些 存储库内, 使得 SRFFT 处理器可在单一时脉周期内从这些存储库同时撷取数据。 SRFFT 控制 M M 区块决定对应此 2 笔输入数据的一 2 点 FFT 的分解架构, 并控制 SRFFT 处理器沿着分解架 构重复执行蝴蝶计算, 其中每一次蝴蝶计算的输入数据次序符合第一次序。SRFFT 控制区 块控制每一次蝴蝶计算后的输出结果被写回输入数据所对应的存储库。当 DIT SR 蝴蝶计 算完成后, 输出控制区块依据这些存储库的个数及 2M 笔输出数据的原始地址决定一第二次 序, 并并用以控制写回并储存在这些存储库内的这些输出结果依第二次序输出为 2M 笔输出 数据, 2M 笔输出数据包含的输出结果依序对应符合第一次序的 2M 笔输入数据。
     本发明的有益技术效果是 : 本发明的 SR-2/8FFT 装置及方法, 利用简单且有效的 存储器管理方法, 将输入数据依特定次序加载存储器的存储库内, 使得 SRFFT 处理器可以 在单一时脉周期内同时对存储器撷取多笔数据, 故不需采用较存储器 (memory) 来得贵的 寄存器 (register) 储存数据。 此外, 本发明亦利用有限状态机实现对 FFT 的规则分解架构, 使得 SRFFT 处理器可用低成本硬件实现。因此, 本发明的 SR-2/8FFT 装置及方法具有高效 率及低成本的优点。 附图说明 为了对本发明的上述及其它方面有更佳的了解, 下文特举较佳实施例, 并配合附 图进行详细说明, 其中 :
     图 1 绘示依照本发明较佳实施例的 SR-2/8FFT 装置的示意图。
     图 2 绘示依照本发明较佳实施例的第一次序的部分运算流程的示意图。
     图 3 是依照本发明较佳实施例的 16 点 SR-2/8FFT 分解架构的示意图。
     图 4A ~图 4F 绘示依照本发明较佳实施例的利用有限状态机执行 SR-2/8FFT 分解 架构的流程图。
     图 5 绘示依照本发明较佳实施例的第二次序的部分运算流程的示意图。
     图 6 绘示频率降次 SR-8 蝴蝶运算的示意图。
     图 7 绘示时间降次 SR-8 蝴蝶运算的示意图。
     具体实施方式
     本 发 明 提 出 一 种 分 裂 基 数 (split-radix, SR)-2/8 快 速 傅 立 叶 转 换 (Fast FourierTransform, FFT) 装置及方法, 利用存储器管理使得分裂基数快速傅立叶转换处理 器可以在单一时脉周期 (clock cycle) 同时对存储器撷取 / 写入多笔数据, 并利用规则的 分解架构, 使得分裂基数快速傅立叶转换处理器可用低成本硬件实现。
     请 参 照 图 1, 其 绘 示 依 照 本 发 明 较 佳 实 施 例 的 SR-2/8FFT 装 置 的 示 意 图。 SR-2/8FFT 装置 100 包括一存储器 110、 一 SRFFT 处理器 120 以及一控制单元 130。存储器 110 包含多个存储库 (memory bank), 并用以接收 2M 笔输入数据, 每一笔输入数据具有一原 始地址, M 为正整数。考量到成本及效率, 在此较佳实施例中的存储器 110 至多包含 8 个存 储库。SRFFT 处理器 120 用以从存储器 110 读取数据以执行一时间降次 (decimation in time, DIT)SR 蝴蝶计算 (butterfly computation)。
     控制单元 130 包括一输入控制区块 140、 一 SRFFT 控制区块 150 以及一输出控制区块 160。输入控制区块 140 依据存储器 110 所包含的存储库的个数及 2M 笔输入数据的 原始地址的位反向 (bit-reversed) 地址决定一第一次序。接着, 输入控制区块 140 控制存 M 储器 110 依第一次序将 2 笔输入数据加载对应于第一次序的多个存储库内, 使得 SRFFT 处 理器 120 在进行每一阶段的蝴蝶计算时都可在单一时脉周期内从存储库同时撷取数据。其 中, 每一笔输入数据在对应的存储库的地址由输入数据的位反向地址值除以存储库个数取 其商数的整数值得到。
     对应于 2M 笔输入数据, SRFFT 处理器 120 要执行一 2M 点 FFT 运算, 因此 SRFFT 控 M M 制区块 150 会决定此 2 点 FFT 的分解架构。SRFFT 控制区块 150 将 2 点 FFT 依 M 阶段不 同基数的蝴蝶计算分解得到一分解执行次序, 并控制 SRFFT 处理器 120 沿着分解执行次序 执行蝴蝶计算, 其中每一阶段不同基数的蝴蝶计算可能被重复执行, 且每一次蝴蝶计算馈 入输入端的输入数据符合第一次序。
     当 SRFFT 处理器 120 所执行的蝴蝶计算为 SR-8 蝴蝶计算时, SRFFT 控制区块 150 会 产生 4 个旋转因子 (twiddle factor) 以提供给 SR-8 蝴蝶计算, 使得 SR-8 蝴蝶计算的末 4 个 输入分别被旋转达特定角度。 此 4 个旋转因子例如为 W1/N、 W5/N、 W3/N 及 W7/N, 其中 在每一次蝴蝶计算完成后, SRFFT 控制区块 150 控制每一次蝴蝶计算后的输出结果被写回 输入数据所对应的存储库。
     当 SRFFT 处理器 120 沿着分解执行次序完成 DIT SR 蝴蝶计算后, 输出控制区块 160 依据存储器 110 所包含的存储库的个数及 2M 笔输出数据的原始地址决定一第二次序。 接着, 输出控制区块 160 控制写回并储存在多个存储库内的每一笔输出结果依第二次序输 出为 2M 笔输出数据, 此 2M 笔输出数据包含的输出结果依序对应符合第一次序的 2M 笔输入 数据。其中, 每一笔输出结果在所写回并储存的存储库的地址由对应的输出数据的原始地 址值除以存储库个数取其商数的整数值得到。
     接下来举 16(M = 4) 笔输入数据, 及存储器 110 包含 8 个存储库为例做说明, 然而 并不限于此。假定此 16 笔输入数据为 x[0] ~ x[15], 每一笔数据包含原始地址 A[3 ∶ 0] ( 即 A3 ~ A0)。又假定此 8 个存储库为 b0 ~ b7, 对应于 16 笔输入数据, 每一个存储库包含 2 个地址 a0 ~ a1 以储存输入数据。输入控制区块 140 依据存储器 110 的存储库个数 8 及 16 笔输入数据的原始地址的位反向地址决定如表 2 所示的第一次序。其中, 每一笔输入数 据在对应的存储库的地址由输入数据的位反向地址值除以存储库个数取其商数的整数值 得到。请配合参照图 2, 其绘示依照本发明较佳实施例的第一次序的部分运算流程的示意 图。其中, 基于 8 个存储库, 故取每隔 3 个反向位进行异或 (XOR) 的运算, 再将异或运算结 果乘上 2 的幂次方, 并加总得出要加载的存储库。
     表2
     对应于 16 笔输入数据, SRFFT 处理器 120 要执行一 16 点 FFT 运算, 因此 SRFFT 控 制区块 150 会决定此 16 点 FFT 的分解架构。请参照图 3, 其示依照本发明较佳实施例的 16 点 SR-2/8FFT 分解架构的示意图。SRFFT 控制区块 150 将 16 点 FFT 依 4 阶段不同基数 的蝴蝶计算分解得到一分解执行次序 ( 如图 3 中的箭号所示 )。SRFFT 控制区块 150 控制 SRFFT 处理器 120 沿着分解执行次序执行蝴蝶计算。 SRFFT 控制区块 150 可以一有限状态机 (finite state machine) 构成, 有限状态机记录多个目前状态, 每一个目前状态包含多个 变量, 例如阶段 S、 表示蝴蝶计算开始位置的基本位置 BP、 表示每阶段处理的数据数目的区 块大小 BS、 表示阶段 S 的蝴蝶计算两相邻输入端样本之间距 SS、 及前一状态 LS。 其中, 蝴蝶 计算输入端样本 (#0, #1, #2, #3, ..., #7) 的存储器读取位置为 : 将 (BP, BP+SS, BP+SS×2, BP+SS×3, ..., BP+SS×7) 经由表 2 所示的第一次序转换得的。有限状态机实质上可由一 临时文件 (register file) 配合一状态指针 (state pointer) 实现。 每储存一次目前状态, 状态指针加 1 ; 每恢复 (restore) 一次前一状态, 状态指针减 1。
     请参照图 4A ~图 4F, 其绘示依照本发明较佳实施例的利用有限状态机执行 SR-2/8FFT 分解架构的流程图。基于本实施例的 16 点 SR-2/8FFT, 于步骤 S402 中, S = 4, BS = 16, BP = 0, SS = 2。在步骤 S404 中, BS = 16 大于 8, 故进入步骤 S406, LS = 1, 并储 存目前状态, 状态指针变为 1。上述步骤对应于图 3 中的阶段 4, 但此时并未执行阶段 4 的 蝴蝶计算。在步骤 S408 中, S = 3, BS = 8, SS = 1。回到步骤 S404 中, BS = 8, 故进入步 骤 S406, LS = 1, 并储存目前状态, 状态指针变为 2。上述步骤对应于图 3 中的阶段 4 进入 阶段 3, 但此时亦未执行阶段 3 的蝴蝶计算。
     接着, 在步骤 S408 中, S = 2, BS = 4, SS = 1。回到步骤 S404 中, BS = 4 小于 8, 故连结步骤 G。在步骤 S410 中, BS = 4, 故进入步骤 S412, 执行基数 -4 蝴蝶计算。上述步 骤对应于图 3 中的阶段 3 进入阶段 2, 且基于目前状态记录的多个变量, SRFFT 处理器 120 同时撷取储存于存储库 (b0, a0)、 (b1, a0)、 (b2, a0) 及 (b3, a0) 的数据 x[0]、 x[8]、 x[4] 及 x[12] 以进行基数 -4 蝴蝶计算。SRFFT 控制区块 150 控制基数 -4 蝴蝶计算的输出结果 写回存储库 (b0, a0)、 (b1, a0)、 (b2, a0) 及 (b3, a0) 为 x[0]、 x[8]、 x[4] 及 x[12]。之后, 连结步骤 H。
     在步骤 S414 中, 状态指针= 2 大于 0, 故进入步骤 S416, 恢复前一状态, S = 3, BS = 8, BP = 0, SS = 1, LS = 1, 状态指针变为 1。于步骤 S418 中, 由于 LS = 1, 故连结步骤 A。在步骤 S420 中, 由于 BS = 8 小于 16, 故连结步骤 E, 进入步骤 S422, 执行 SR-8 蝴蝶计 算。上述步骤对应于图 3 中的阶段 2 回到阶段 3, 且基于目前状态记录的多个变量, SRFFT 处理器 120 同时撷取储存于存储库 (b0, a0)、 (b1, a0)、 (b2, a0)、 (b3, a0)、 (b4, a0)、 (b5, a0)、 (b6, a0) 及 (b7, a0) 的数据 x[0]、 x[8]、 x[4]、 x[12]、 x[2]、 x[10]、 x[6] 及 x[14] 以 进行 SR-8 蝴蝶计算。SRFFT 控制区块 150 控制 SR-8 蝴蝶计算的输出结果写回存储库 (b0, a0)、 (b1, a0)、 (b2, a0)、 (b3, a0)、 (b4, a0)、 (b5, a0)、 (b6, a0) 及 (b7, a0) 为 x[0]、 x[8]、 x[4]、 x[12]、 x[2]、 x[10]、 x[6] 及 x[14]。之后, 连结步骤 H。
     在步骤 S414 中, 状态指针= 1 大于 0, 故进入步骤 S416, 恢复前一状态, S = 4, BS = 16, BP = 0, SS = 2, LS = 1, 状态指针变为 0。于步骤 S418 中, 由于 LS = 1, 故连结步骤 A。由于 BS = 16, 故经由步骤 S420 及 S424 进入步骤 S426, LS = 5, 储存目前状态, 状态指 针变为 1。然后, 于步骤 S428 中, S = 1, BP = 8, BS = 2, SS = 1。上述步骤对应于图 3 中 的阶段 3 回到阶段 4, 但此时亦未执行阶段 4 的蝴蝶计算而是进入阶段 1。
     回到步骤 S404 中, BS = 2 小于 8, 故连结步骤 G。在步骤 S410 中, BS = 2, 故进入 步骤 S430, 执行基数 -2 蝴蝶计算。 上述步骤对应于图 3 中的阶段 4 进入阶段 1, 且基于目前 状态记录的多个变量, SRFFT 处理器 120 同时撷取储存于存储库 (b0, a1) 与 (b1, a1)、 (b2, a1) 与 (b3, a1)、 (b4, a1) 与 (b5, a1)、 以及 (b6, a1) 与 (b7, a1) 的数据 x[1] 与 x[9]、 x[5] 与 x[13]、 x[3] 与 x[11], 以及 x[7] 与 x[15] 以进行 4 次基数 -2 蝴蝶计算。SRFFT 控制区 块 150 控制 4 次基数 -2 蝴蝶计算的输出结果写回存储库 (b0, a1) 与 (b1, a1)、 (b2, a1) 与 (b3, a1)、 (b4, a1) 与 (b5, a1)、 以及 (b6, a1) 与 (b7, a1) 为 x[1] 与 x[9]、 x[5] 与 x[13]、 x[3] 与 x[11], 以及 x[7] 与 x[15]。之后, 连结步骤 H。
     在步骤 S414 中, 状态指针= 1 大于 0, 故进入步骤 S416, 恢复前一状态, S = 4, BS = 16, BP = 0, SS = 2, LS = 5, 状态指针变为 0。于步骤 S418 及 S432 ~ S436 中, 由于 LS = 5, 故连结步骤 E, 进入步骤 S422, 执行 SR-8 蝴蝶计算。 上述步骤对应于图 3 中的阶段 1 回到阶段 4, 且基于目前状态记录的多个变量, SRFFT 处理器 120 同时撷取储存于存储库 (b0, a0)、 (b2, a0)、 (b4, a0)、 (b6, a0)、 (b1, a1)、 (b3, a1)、 (b5, a1) 及 (b7, a1) 的数据 x[0]、 x[4]、 x[2]、 x[6]、 x[1]、 x[5]、 x[3] 及 x[7] 以进行一次 SR-8 蝴蝶计算。SRFFT 控制区块 150 控制 SR-8 蝴蝶计算的输出结果写回存储库 (b0, a0)、 (b2, a0)、 (b4, a0)、 (b6, a0)、 (b1, a1)、 (b3, a1)、 (b5, a1) 及 (b7, a1) 为 X[0]、 X[4]、 X[2]、 X[6]、 X[1]、 X[5]、 X[3] 及 X[7]。
     此外, SRFFT 处理器 120 更同时撷取储存于存储库 (b1, a0)、 (b3, a0)、 (b5, a0)、 (b7, a0)、 (b0, a1)、 (b2, a1)、 (b4, a1) 及 (b6, a1) 的数据 x[8]、 x[12]、 x[10]、 x[14]、 x[9]、 x[13]、 x[11] 及 x[15] 以进行另一次 SR-8 蝴蝶计算。其中, x[9]、 x[13]、 x[11] 及 x[15] 在 SR-8 蝴蝶计算前分别被 4 个旋转因子 W1/N、 W5/N、 W3/N 及 W7/N 旋转达特定角度。SRFFT 控制区 块 150 控制 SR-8 蝴蝶计算的输出结果写回存储库 (b1, a0)、 (b3, a0)、 (b5, a0)、 (b7, a0)、 (b0, a1)、 (b2, a1)、 (b4, a1) 及 (b6, a1) 为 X[8]、 X[12]、 X[10]、 X[14]、 X[9]、 X[13]、 X[11] 及 X[15]。
     在完成上述 2 次 SR-8 蝴蝶计算之后, 状态指针变为 -1, 是故在步骤 S414 之后, SRFFT 处理器 120 的 DIT SR 蝴蝶计算结束。此时, 储存在 8 个存储库内的 16 笔输出结果 X[0] ~ X[15] 即为输入数据 x[0] ~ x[15] 的 FFT 运算结果。当 SRFFT 处理器 120 沿着如 图 3 所示的分解执行次序完成 DIT SR 蝴蝶计算后, 输出控制区块 160 依据存储器 110 所包 含的存储库的个数及 16 笔输出数据的原始地址决定如表 3 所示的第二次序。接着, 输出控 制区块 160 控制写回并储存在多个存储库内的每一笔输出结果依第二次序输出为 16 笔输 出数据, 此 16 笔输出数据包含的输出结果依序对应符合第一次序的 16 笔输入数据。其中, 每一笔输出结果在所写回并储存的存储库的地址由对应的输出数据的原始地址值除以存 储库个数取其商数的整数值得到。 请配合参照图 5, 其绘示依照本发明较佳实施例的第二次 序的部分运算流程的示意图。其中, 基于 8 个存储库, 故取每隔 3 个位进行异或 (XOR) 的运 算, 再将异或运算结果乘上 2 的幂次方, 并加总得出要加载的存储库。
     表3
     由表 3 可得知, 此 16 笔输出数据包含的输出结果依序对应符合第一次序的 16 笔 输入数据。
     此外, 本发明上述实施例的 FFT 运算架构亦可适用于分裂基数 (Split-Radix, SR)-2/4FFT, 而存储器 100 须包含 4 个存储库即可。其中, 当上述的 FFT 运算架构应用于 SR-2/4FFT 时, 在第一次序的部分运算流程中, 基于 4 个存储库, 故取每隔 2 个反向位行异或 ((XOR) 的运算, 再将异或运算结果乘上 2 的幂次方, 并加总得出输入数据要加载的存储库。
     本发明更提出一种 SR-2/8FFT 方法, 应用于一 SR-2/8FFT 装置, SR-2/8FFT 装置包 括一存储器、 一 SRFF 处理器以及一控制单元。存储器包含多个存储库。SRFFT 处理器用以 执行一 DIT SR 蝴蝶计算。控制单元包括一输入控制区块、 一 SRFFT 控制区块及一输出控制 M 区块。此 SR-2/8FFT 方法包括下列步骤。存储器接收 2 笔输入数据, 每一笔数据具有一原 始地址, M 为正整数。输入控制区块依据这些存储库的个数及这些原始地址的位反向地址 决定一第一次序。 输入控制区块控制该存储器依第一次序将这些输入数据加载对应的这些 存储库内, 使得 SRFFT 处理器可在单一时脉周期内从这些存储库同时撷取数据。
     SRFFT 控制区块决定对应此 2M 笔输入数据的一 2M 点 FFT 的分解架构, 并控制 SRFFT 处理器沿着分解架构重复执行蝴蝶计算, 其中每一次蝴蝶计算的输入数据次序符合第一次 序。SRFFT 控制区块控制每一次蝴蝶计算后的输出结果被写回输入数据所对应的存储库。 当 DIT SR 蝴蝶计算完成后, 输出控制区块依据这些存储库的个数及 2M 笔输出数据的原始 地址决定一第二次序, 并用以控制写回并储存在这些存储库内的这些输出结果依第二次序 M 输出为 2 笔输出数据, 2M 笔输出数据包含的输出结果依序对应符合第一次序的 2M 笔输入数 据。
     上述 SR-2/8FFT 方法的运作原理已详述于 SR-2/8FFT 装置 100 及图 1 ~图 5 的相 关内容中, 故于此不再重述。
     本发明上述实施例所揭露的 SR-2/8FFT 装置及方法, 具有多项优点, 以下仅列举 部分优点说明如下 :
     本发明的 SR-2/8FFT 装置及方法, 利用简单且有效的存储器管理方法, 将输入数 据依特定次序加载存储器的存储库内, 使得 SRFFT 处理器可以在单一时脉周期内同时对存 储器撷取多笔数据, 故不需采用较存储器 (memory) 来得贵的寄存器 (register) 储存数据。 此外, 本发明亦利用有限状态机实现对 FFT 的规则分解架构, 使得 SRFFT 处理器可用低成本 硬件实现。因此, 本发明的 SR-2/8FFT 装置及方法具有高效率及低成本的优点。 综上所述, 虽然本发明已以较佳实施例揭露如上, 然而其并非用以限定本发明。 本 发明所属技术领域中具有通常知识者, 在不脱离本发明的精神和范围内, 当可作各种等同 的改变或替换。因此, 本发明的保护范围当视后附的本申请权利要求范围所界定的为准。
    

分裂基数2/8快速傅立叶转换装置及方法.pdf_第1页
第1页 / 共18页
分裂基数2/8快速傅立叶转换装置及方法.pdf_第2页
第2页 / 共18页
分裂基数2/8快速傅立叶转换装置及方法.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《分裂基数2/8快速傅立叶转换装置及方法.pdf》由会员分享,可在线阅读,更多相关《分裂基数2/8快速傅立叶转换装置及方法.pdf(18页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102339272A43申请公布日20120201CN102339272ACN102339272A21申请号201010236529522申请日20100716G06F17/1420060171申请人联咏科技股份有限公司地址中国台湾新竹科学园区创新一路13号2楼72发明人唐恒泰74专利代理机构上海专利商标事务所有限公司31100代理人任永武54发明名称分裂基数2/8快速傅立叶转换装置及方法57摘要本发明是一种SR2/8FFT装置,包括一存储器、一SRFFT处理器及一控制单元。控制单元包括一输入控制区块、一SRFFT控制区块及一输出控制区块。输入控制区块决定一第一次序,并依第一。

2、次序将输入数据加载对应的存储库,使得SRFFT处理器可在单一时脉周期内对这些存储库同时撷取数据。SRFFT控制区块决定一2M点FFT的分解架构,并控制SRFFT处理器沿着分解架构重复执行蝴蝶计算。每一次蝴蝶计算的输入数据次序符合第一次序。SRFFT控制区块控制每一次蝴蝶计算后的输出结果被写回输入数据所对应的存储库。输出控制区块决定一第二次序,并控制输出结果依第二次序输出为输出数据。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书9页附图6页CN102339285A1/2页21一种分裂基数SR2/8快速傅立叶转换FFT装置,包括一存储器,包含多个存储库,并用以接。

3、收2M笔输入数据,每一笔数据具有一原始地址,M为正整数;一分裂基数快速傅立叶转换SRFFT处理器,用以执行一时间降次DIT分裂基数蝴蝶计算;以及一控制单元,包括一输入控制区块,用以依据所述这些存储库的个数及所述这些原始地址的位反向地址决定一第一次序,并用以控制该存储器依该第一次序将所述这些输入数据加载对应于该第一次序的所述这些存储库内,使得该SRFFT处理器可在单一时脉周期内从所述这些存储库同时撷取数据;一分裂基数快速傅立叶转换SRFFT控制区块,用以决定对应该2M笔输入数据的一2M点FFT的分解架构,并控制该SRFFT处理器沿着该分解架构重复执行蝴蝶计算,其中每一次蝴蝶计算的输入数据次序符合。

4、该第一次序,该SRFFT控制区块还用以控制每一次蝴蝶计算后的输出结果被写回输入数据所对应的存储库;及一输出控制区块,用以当该DITSR蝴蝶计算完成后,依据所述这些存储库的个数及2M笔输出数据的原始地址决定一第二次序,并用以控制写回并储存在所述这些存储库内的所述这些输出结果依该第二次序输出为2M笔输出数据,该2M笔输出数据包含的输出结果依序对应符合第一次序之该2M笔输入数据。2根据权利要求1所述的SR2/8FFT装置,其特征在于,每一笔输入数据在对应的该存储库的地址由该笔输入数据的位反向地址值除以存储库个数取其商数的整数值得到。3根据权利要求1所述的SR2/8FFT装置,其特征在于,当该SRFF。

5、T处理器所执行的蝴蝶计算为SR8蝴蝶计算时,该SRFFT控制区块还用以产生4个旋转因子以提供给SR8蝴蝶计算,使得SR8蝴蝶计算的末4个输入分别被旋转达特定角度。4根据权利要求1所述的SR2/8FFT装置,其特征在于,该SRFFT控制区块将该2M点FFT依M阶段不同基数的蝴蝶计算分解得到一分解执行次序,并控制该SRFFT处理器沿着该分解执行次序执行所述这些蝴蝶计算,其中每一阶段不同基数的蝴蝶计算可能被重复执行,且每一次蝴蝶计算馈入输入端的输入数据符合该第一次序。5根据权利要求4所述的SR2/8FFT装置,其特征在于,该SRFFT控制区块以一有限状态机构成,该有限状态机记录多个状态,每一个状态包。

6、含多个变量,所述这些变量包括一阶段、表示蝴蝶计算开始位置的一基本位置、表示每阶段处理的数据数目的一区块大小、表示该阶段的蝴蝶计算两输入端间距的一样本空间、及一上一状态。6根据权利要求1所述的SR2/8FFT装置,其特征在于,每一笔输出数据在所读取的该存储库的地址由该笔输出数据的原始地址值除以存储库个数取其商数的整数值得到。7一种分裂基数SR2/8快速傅立叶转换FFT方法,应用于一SR2/8FFT装置,该SR2/8FFT装置包括一存储器、一分裂基数快速傅立叶转换SRFFT处理器以及一控制单元,该存储器包含多个存储库,该SRFFT处理器用以执行一时间降次DITSR蝴蝶计算,该控制单元包括一输入控制。

7、区块、一分裂基数快速傅立叶转换SRFFT控制区块及一输出控制区块,该SR2/8FFT方法包括该存储器接收2M笔输入数据,每一笔数据具有一原始地址,M为正整数;权利要求书CN102339272ACN102339285A2/2页3该输入控制区块依据所述这些存储库的个数及所述这些原始地址的位反向地址决定一第一次序;该输入控制区块控制该存储器依该第一次序将所述这些输入数据加载对应于该第一次序的所述这些存储库内,使得该SRFFT处理器可在单一时脉周期内从所述这些存储库同时撷取数据;该SRFFT控制区块决定对应该2M笔输入数据的一2M点FFT的分解架构,并控制该SRFFT处理器沿着该分解架构重复执行蝴蝶计。

8、算,其中每一次蝴蝶计算的输入数据次序符合该第一次序;该SRFFT控制区块控制每一次蝴蝶计算后的输出结果被写回输入数据所对应的存储库;以及当该DITSR蝴蝶计算完成后,该输出控制区块依据所述这些存储库的个数及2M笔输出数据的原始地址决定一第二次序,并并用以控制写回并储存在所述这些存储库内的所述这些输出结果依该第二次序输出为2M笔输出数据,该2M笔输出数据包含的输出结果依序对应符合第一次序的该2M笔输入数据。8根据权利要求7所述的SR2/8FFT方法,其特征在于,还包括由每一笔输入数据的位反向地址值除以存储库个数取其商数的整数值得到该笔输入数据在对应的该存储库的地址。9根据权利要求7所述的SR2/。

9、8FFT方法,其特征在于,还包括当该SRFFT处理器所执行的蝴蝶计算为SR8蝴蝶计算时,该SRFFT控制区块产生4个旋转因子以提供给SR8蝴蝶计算,使得SR8蝴蝶计算的末4个输入分别被旋转达特定角度。10根据权利要求7所述的SR2/8FFT方法,其特征在于,还包括该SRFFT控制区块将该2M点FFT依M段阶不同基数的蝴蝶计算分解得到一分解执行次序,并控制该SRFFT处理器沿着该分解执行次序执行所述这些蝴蝶计算,其中每一阶段不同基数的蝴蝶计算可被重复执行,且每一次蝴蝶计算馈入输入端的输入数据符合第一次序。11根据权利要求10所述的SR2/8FFT方法,其特征在于,是以一有限状态机构成该SRFFT。

10、控制区块,该有限状态机记录多个状态,每一个状态包含多个变量,所述这些变量包括一阶段、表示蝴蝶计算开始位置的一基本位置、表示每阶段处理的数据数目的一区块大小、表示该阶段的蝴蝶计算两输入端间距的一样本空间、及一上一状态。12根据权利要求7所述的SR2/8FFT方法,其特征在于,还包括由每一笔输出数据的原始地址值除以存储库个数取其商数的整数值得到该笔输出数据在所读取的该存储库的地址。权利要求书CN102339272ACN102339285A1/9页4分裂基数2/8快速傅立叶转换装置及方法技术领域0001本发明有关一种分裂基数SPLITRADIX,SR2/8快速傅立叶转换FASTFOURIERTRAN。

11、SFORM,FFT装置及方法,且特别是有关一种简单且有效的SR2/8FFT装置及方法。背景技术0002快速傅立叶转换FASTFOURIERTRANSFORM,FFT常见于数字信号处理的实时应用中。依据欧洲数字影音广播标准DVBT/DAB,正交频分多路复用ORTHOGONALFREQUENCYDIVISIONMULTIPLEXER,OFDM系统被广泛地应用,而专属的FFT/IFFT处理单元对于OFDM系统及数字通讯而言更是适于达到高频宽的目标。0003众所周知地,在FFT算法中,相较于基数RADIX4FFT,分裂基数SPLITRADIX,SR2/8FFT可以节省约1/3多乘法运算。SR2/8FF。

12、T如下列偶数项FFT及奇数项FFT的表达式所示,并请参照图6及图7,图6绘示频率降次SR8蝴蝶运算的示意图,图7绘示时间降次SR8蝴蝶运算的示意图。00040005偶數項FFT000600070008WHEREK0,1,2,N/81ANDL1,3,5,7奇數項FFT0009因此,SR2/8FFT可更有效地利用资源或时间。然而,SR2/8FFT的不规则分解架构使其难以用硬件实现,而被视为较适于用软件实现。0010现举SR2/4FFT算法为例做说明。SR2/4FFT及基数4FFF的蝴蝶BUTTERFLY处理器有4个输入及4个输出。对应于一固定输入时脉及有限硬件资源,存储器与蝴蝶处理器间的数据存取必。

13、须尽可能地快。同时读取及写入SR2/4FFT的蝴蝶处理器的四个输入可以得到最快的FFT速度,即每一个蝴蝶运算只耗费1时脉周期CLOCKCYCLE。0011假定存储器包含4个存储库MEMORYBANK,则基数4FFT处理器在处理16笔输入数据时的时间降次DECIMATIONINTIME,DIT基数4蝴蝶计算的数据输入序列如表1所示。说明书CN102339272ACN102339285A2/9页500120013表10014在表1中,于阶段1开始前,数据0数据3被放在存储库0,数据8数据11被放在存储库1,数据4数据7被放在存储库2,数据12数据15被放在存储库3。因此,在阶段1,基数4蝴蝶处理器。

14、的4个输入可以在单一时脉周期同时读取数据,例如0,8,4,12。然而,在阶段2,基数4蝴蝶处理器需要4个时脉周期才能从存储器读取数据,例如0,2,1,3。因此,整体FFT的运算速度降低,导致整体系统的效率不佳。发明内容0015本发明的目的是提供一种分裂基数2/8快速傅立叶转换装置及方法,利用存储器管理使得分裂基数快速傅立叶转换处理器可以在单一时脉周期同时对存储器撷取/写入多笔数据,并利用规则的分解架构,使得分裂基数快速傅立叶转换处理器可用低成本硬件实现。0016根据本发明的第一方面,提出一种分裂基数SR2/8快速傅立叶转换FFT装置,包括一存储器、一分裂基数快速傅立叶转换SRFFT处理器以及一。

15、控制单元。存储器包含多个存储库,并用以接收2M笔输入数据,每一笔数据具有一原始地址,M为正整数。SRFFT处理器用以执行一时间降次DITSR蝴蝶计算。控制单元包括一输入控制区块、一SRFFT控制区块及一输出控制区块。输入控制区块用以依据这些存储库的个数及这些原始地址的位反向地址决定一第一次序,并用以控制存储器依第一次序将这些输入数据加载对应的存储库内,使得SRFFT处理器可在单一时脉周期内从这些存储库同时撷取数据。SRFFT控制区块用以决定对应此2M笔输入数据的一2M点FFT的分解架构,并控制SRFFT处理器沿着分解架构重复执行蝴蝶计算。其中每一次蝴蝶计算的输入数据次序符合第一次序。SRFFT。

16、控制区块还用以控制每一次蝴蝶计算后的输出结果被写回输入数据所对应的存储库。输出控制区块用以当DITSR蝴蝶计算完成后,依据这些存储库的个数及2M笔输出数据的原始地址决定一第二次序,并并用以控制写回并储存在所述这些存储库内的所述这些输出结果依第二次序输出为2M笔输出数据,2M笔输出数据包含的输出结果依序对应符合第一次序的2M笔输入数据。0017根据本发明的第二方面,提出一种分裂基数SR2/8快速傅立叶转换FFT方法,应用于一SR2/8FFT装置,SR2/8FFT装置包括一存储器、一分裂基数快速傅立叶转换SRFFT处理器以及一控制单元。存储器包含多个存储库。SRFFT处理器用以执行一时间降次DIT。

17、SR蝴蝶计算。控制单元包括一输入控制区块、一SRFFT控制区块及一输出控制区块。此SR2/8FFT方法包括下列步骤。存储器接收2M笔输入数据,每一笔数据具有一原始地址,M为正整数。输入控制区块依据这些存储库的个数及这些原始地址的位反向地址说明书CN102339272ACN102339285A3/9页6决定一第一次序。输入控制区块控制该存储器依第一次序将这些输入数据加载对应的这些存储库内,使得SRFFT处理器可在单一时脉周期内从这些存储库同时撷取数据。SRFFT控制区块决定对应此2M笔输入数据的一2M点FFT的分解架构,并控制SRFFT处理器沿着分解架构重复执行蝴蝶计算,其中每一次蝴蝶计算的输入。

18、数据次序符合第一次序。SRFFT控制区块控制每一次蝴蝶计算后的输出结果被写回输入数据所对应的存储库。当DITSR蝴蝶计算完成后,输出控制区块依据这些存储库的个数及2M笔输出数据的原始地址决定一第二次序,并并用以控制写回并储存在这些存储库内的这些输出结果依第二次序输出为2M笔输出数据,2M笔输出数据包含的输出结果依序对应符合第一次序的2M笔输入数据。0018本发明的有益技术效果是本发明的SR2/8FFT装置及方法,利用简单且有效的存储器管理方法,将输入数据依特定次序加载存储器的存储库内,使得SRFFT处理器可以在单一时脉周期内同时对存储器撷取多笔数据,故不需采用较存储器MEMORY来得贵的寄存器。

19、REGISTER储存数据。此外,本发明亦利用有限状态机实现对FFT的规则分解架构,使得SRFFT处理器可用低成本硬件实现。因此,本发明的SR2/8FFT装置及方法具有高效率及低成本的优点。附图说明0019为了对本发明的上述及其它方面有更佳的了解,下文特举较佳实施例,并配合附图进行详细说明,其中0020图1绘示依照本发明较佳实施例的SR2/8FFT装置的示意图。0021图2绘示依照本发明较佳实施例的第一次序的部分运算流程的示意图。0022图3是依照本发明较佳实施例的16点SR2/8FFT分解架构的示意图。0023图4A图4F绘示依照本发明较佳实施例的利用有限状态机执行SR2/8FFT分解架构的流。

20、程图。0024图5绘示依照本发明较佳实施例的第二次序的部分运算流程的示意图。0025图6绘示频率降次SR8蝴蝶运算的示意图。0026图7绘示时间降次SR8蝴蝶运算的示意图。具体实施方式0027本发明提出一种分裂基数SPLITRADIX,SR2/8快速傅立叶转换FASTFOURIERTRANSFORM,FFT装置及方法,利用存储器管理使得分裂基数快速傅立叶转换处理器可以在单一时脉周期CLOCKCYCLE同时对存储器撷取/写入多笔数据,并利用规则的分解架构,使得分裂基数快速傅立叶转换处理器可用低成本硬件实现。0028请参照图1,其绘示依照本发明较佳实施例的SR2/8FFT装置的示意图。SR2/8F。

21、FT装置100包括一存储器110、一SRFFT处理器120以及一控制单元130。存储器110包含多个存储库MEMORYBANK,并用以接收2M笔输入数据,每一笔输入数据具有一原始地址,M为正整数。考量到成本及效率,在此较佳实施例中的存储器110至多包含8个存储库。SRFFT处理器120用以从存储器110读取数据以执行一时间降次DECIMATIONINTIME,DITSR蝴蝶计算BUTTERFLYCOMPUTATION。0029控制单元130包括一输入控制区块140、一SRFFT控制区块150以及一输出控制说明书CN102339272ACN102339285A4/9页7区块160。输入控制区块1。

22、40依据存储器110所包含的存储库的个数及2M笔输入数据的原始地址的位反向BITREVERSED地址决定一第一次序。接着,输入控制区块140控制存储器110依第一次序将2M笔输入数据加载对应于第一次序的多个存储库内,使得SRFFT处理器120在进行每一阶段的蝴蝶计算时都可在单一时脉周期内从存储库同时撷取数据。其中,每一笔输入数据在对应的存储库的地址由输入数据的位反向地址值除以存储库个数取其商数的整数值得到。0030对应于2M笔输入数据,SRFFT处理器120要执行一2M点FFT运算,因此SRFFT控制区块150会决定此2M点FFT的分解架构。SRFFT控制区块150将2M点FFT依M阶段不同基。

23、数的蝴蝶计算分解得到一分解执行次序,并控制SRFFT处理器120沿着分解执行次序执行蝴蝶计算,其中每一阶段不同基数的蝴蝶计算可能被重复执行,且每一次蝴蝶计算馈入输入端的输入数据符合第一次序。0031当SRFFT处理器120所执行的蝴蝶计算为SR8蝴蝶计算时,SRFFT控制区块150会产生4个旋转因子TWIDDLEFACTOR以提供给SR8蝴蝶计算,使得SR8蝴蝶计算的末4个输入分别被旋转达特定角度。此4个旋转因子例如为W1/N、W5/N、W3/N及W7/N,其中在每一次蝴蝶计算完成后,SRFFT控制区块150控制每一次蝴蝶计算后的输出结果被写回输入数据所对应的存储库。0032当SRFFT处理器。

24、120沿着分解执行次序完成DITSR蝴蝶计算后,输出控制区块160依据存储器110所包含的存储库的个数及2M笔输出数据的原始地址决定一第二次序。接着,输出控制区块160控制写回并储存在多个存储库内的每一笔输出结果依第二次序输出为2M笔输出数据,此2M笔输出数据包含的输出结果依序对应符合第一次序的2M笔输入数据。其中,每一笔输出结果在所写回并储存的存储库的地址由对应的输出数据的原始地址值除以存储库个数取其商数的整数值得到。0033接下来举16M4笔输入数据,及存储器110包含8个存储库为例做说明,然而并不限于此。假定此16笔输入数据为X0X15,每一笔数据包含原始地址A30即A3A0。又假定此8。

25、个存储库为B0B7,对应于16笔输入数据,每一个存储库包含2个地址A0A1以储存输入数据。输入控制区块140依据存储器110的存储库个数8及16笔输入数据的原始地址的位反向地址决定如表2所示的第一次序。其中,每一笔输入数据在对应的存储库的地址由输入数据的位反向地址值除以存储库个数取其商数的整数值得到。请配合参照图2,其绘示依照本发明较佳实施例的第一次序的部分运算流程的示意图。其中,基于8个存储库,故取每隔3个反向位进行异或XOR的运算,再将异或运算结果乘上2的幂次方,并加总得出要加载的存储库。0034说明书CN102339272ACN102339285A5/9页800350036表20037对。

26、应于16笔输入数据,SRFFT处理器120要执行一16点FFT运算,因此SRFFT控制区块150会决定此16点FFT的分解架构。请参照图3,其示依照本发明较佳实施例的16点SR2/8FFT分解架构的示意图。SRFFT控制区块150将16点FFT依4阶段不同基数的蝴蝶计算分解得到一分解执行次序如图3中的箭号所示。SRFFT控制区块150控制SRFFT处理器120沿着分解执行次序执行蝴蝶计算。SRFFT控制区块150可以一有限状态机FINITESTATEMACHINE构成,有限状态机记录多个目前状态,每一个目前状态包含多个变量,例如阶段S、表示蝴蝶计算开始位置的基本位置BP、表示每阶段处理的数据数。

27、目的区块大小BS、表示阶段S的蝴蝶计算两相邻输入端样本之间距SS、及前一状态LS。其中,蝴蝶计算输入端样本0,1,2,3,7的存储器读取位置为将BP,BPSS,BPSS2,BPSS3,BPSS7经由表2所示的第一次序转换得的。有限状态机实质上可由一临时文件REGISTERFILE配合一状态指针STATEPOINTER实现。每储存一次目前状态,状态指针加1;每恢复RESTORE一次前一状态,状态指针减1。说明书CN102339272ACN102339285A6/9页90038请参照图4A图4F,其绘示依照本发明较佳实施例的利用有限状态机执行SR2/8FFT分解架构的流程图。基于本实施例的16点S。

28、R2/8FFT,于步骤S402中,S4,BS16,BP0,SS2。在步骤S404中,BS16大于8,故进入步骤S406,LS1,并储存目前状态,状态指针变为1。上述步骤对应于图3中的阶段4,但此时并未执行阶段4的蝴蝶计算。在步骤S408中,S3,BS8,SS1。回到步骤S404中,BS8,故进入步骤S406,LS1,并储存目前状态,状态指针变为2。上述步骤对应于图3中的阶段4进入阶段3,但此时亦未执行阶段3的蝴蝶计算。0039接着,在步骤S408中,S2,BS4,SS1。回到步骤S404中,BS4小于8,故连结步骤G。在步骤S410中,BS4,故进入步骤S412,执行基数4蝴蝶计算。上述步骤对。

29、应于图3中的阶段3进入阶段2,且基于目前状态记录的多个变量,SRFFT处理器120同时撷取储存于存储库B0,A0、B1,A0、B2,A0及B3,A0的数据X0、X8、X4及X12以进行基数4蝴蝶计算。SRFFT控制区块150控制基数4蝴蝶计算的输出结果写回存储库B0,A0、B1,A0、B2,A0及B3,A0为X0、X8、X4及X12。之后,连结步骤H。0040在步骤S414中,状态指针2大于0,故进入步骤S416,恢复前一状态,S3,BS8,BP0,SS1,LS1,状态指针变为1。于步骤S418中,由于LS1,故连结步骤A。在步骤S420中,由于BS8小于16,故连结步骤E,进入步骤S422,。

30、执行SR8蝴蝶计算。上述步骤对应于图3中的阶段2回到阶段3,且基于目前状态记录的多个变量,SRFFT处理器120同时撷取储存于存储库B0,A0、B1,A0、B2,A0、B3,A0、B4,A0、B5,A0、B6,A0及B7,A0的数据X0、X8、X4、X12、X2、X10、X6及X14以进行SR8蝴蝶计算。SRFFT控制区块150控制SR8蝴蝶计算的输出结果写回存储库B0,A0、B1,A0、B2,A0、B3,A0、B4,A0、B5,A0、B6,A0及B7,A0为X0、X8、X4、X12、X2、X10、X6及X14。之后,连结步骤H。0041在步骤S414中,状态指针1大于0,故进入步骤S416,。

31、恢复前一状态,S4,BS16,BP0,SS2,LS1,状态指针变为0。于步骤S418中,由于LS1,故连结步骤A。由于BS16,故经由步骤S420及S424进入步骤S426,LS5,储存目前状态,状态指针变为1。然后,于步骤S428中,S1,BP8,BS2,SS1。上述步骤对应于图3中的阶段3回到阶段4,但此时亦未执行阶段4的蝴蝶计算而是进入阶段1。0042回到步骤S404中,BS2小于8,故连结步骤G。在步骤S410中,BS2,故进入步骤S430,执行基数2蝴蝶计算。上述步骤对应于图3中的阶段4进入阶段1,且基于目前状态记录的多个变量,SRFFT处理器120同时撷取储存于存储库B0,A1与B。

32、1,A1、B2,A1与B3,A1、B4,A1与B5,A1、以及B6,A1与B7,A1的数据X1与X9、X5与X13、X3与X11,以及X7与X15以进行4次基数2蝴蝶计算。SRFFT控制区块150控制4次基数2蝴蝶计算的输出结果写回存储库B0,A1与B1,A1、B2,A1与B3,A1、B4,A1与B5,A1、以及B6,A1与B7,A1为X1与X9、X5与X13、X3与X11,以及X7与X15。之后,连结步骤H。0043在步骤S414中,状态指针1大于0,故进入步骤S416,恢复前一状态,S4,BS16,BP0,SS2,LS5,状态指针变为0。于步骤S418及S432S436中,由于LS5,故连。

33、结步骤E,进入步骤S422,执行SR8蝴蝶计算。上述步骤对应于图3中的阶段1回说明书CN102339272ACN102339285A7/9页10到阶段4,且基于目前状态记录的多个变量,SRFFT处理器120同时撷取储存于存储库B0,A0、B2,A0、B4,A0、B6,A0、B1,A1、B3,A1、B5,A1及B7,A1的数据X0、X4、X2、X6、X1、X5、X3及X7以进行一次SR8蝴蝶计算。SRFFT控制区块150控制SR8蝴蝶计算的输出结果写回存储库B0,A0、B2,A0、B4,A0、B6,A0、B1,A1、B3,A1、B5,A1及B7,A1为X0、X4、X2、X6、X1、X5、X3及X。

34、7。0044此外,SRFFT处理器120更同时撷取储存于存储库B1,A0、B3,A0、B5,A0、B7,A0、B0,A1、B2,A1、B4,A1及B6,A1的数据X8、X12、X10、X14、X9、X13、X11及X15以进行另一次SR8蝴蝶计算。其中,X9、X13、X11及X15在SR8蝴蝶计算前分别被4个旋转因子W1/N、W5/N、W3/N及W7/N旋转达特定角度。SRFFT控制区块150控制SR8蝴蝶计算的输出结果写回存储库B1,A0、B3,A0、B5,A0、B7,A0、B0,A1、B2,A1、B4,A1及B6,A1为X8、X12、X10、X14、X9、X13、X11及X15。0045在。

35、完成上述2次SR8蝴蝶计算之后,状态指针变为1,是故在步骤S414之后,SRFFT处理器120的DITSR蝴蝶计算结束。此时,储存在8个存储库内的16笔输出结果X0X15即为输入数据X0X15的FFT运算结果。当SRFFT处理器120沿着如图3所示的分解执行次序完成DITSR蝴蝶计算后,输出控制区块160依据存储器110所包含的存储库的个数及16笔输出数据的原始地址决定如表3所示的第二次序。接着,输出控制区块160控制写回并储存在多个存储库内的每一笔输出结果依第二次序输出为16笔输出数据,此16笔输出数据包含的输出结果依序对应符合第一次序的16笔输入数据。其中,每一笔输出结果在所写回并储存的存。

36、储库的地址由对应的输出数据的原始地址值除以存储库个数取其商数的整数值得到。请配合参照图5,其绘示依照本发明较佳实施例的第二次序的部分运算流程的示意图。其中,基于8个存储库,故取每隔3个位进行异或XOR的运算,再将异或运算结果乘上2的幂次方,并加总得出要加载的存储库。0046说明书CN102339272ACN102339285A8/9页110047表30048由表3可得知,此16笔输出数据包含的输出结果依序对应符合第一次序的16笔输入数据。0049此外,本发明上述实施例的FFT运算架构亦可适用于分裂基数SPLITRADIX,SR2/4FFT,而存储器100须包含4个存储库即可。其中,当上述的FF。

37、T运算架构应用于SR2/4FFT时,在第一次序的部分运算流程中,基于4个存储库,故取每隔2个反向位行异或XOR的运算,再将异或运算结果乘上2的幂次方,并加总得出输入数据要加载的存储库。0050本发明更提出一种SR2/8FFT方法,应用于一SR2/8FFT装置,SR2/8FFT装置包括一存储器、一SRFF处理器以及一控制单元。存储器包含多个存储库。SRFFT处理器用以执行一DITSR蝴蝶计算。控制单元包括一输入控制区块、一SRFFT控制区块及一输出控制区块。此SR2/8FFT方法包括下列步骤。存储器接收2M笔输入数据,每一笔数据具有一原始地址,M为正整数。输入控制区块依据这些存储库的个数及这些原。

38、始地址的位反向地址决定一第一次序。输入控制区块控制该存储器依第一次序将这些输入数据加载对应的这些存储库内,使得SRFFT处理器可在单一时脉周期内从这些存储库同时撷取数据。说明书CN102339272ACN102339285A9/9页120051SRFFT控制区块决定对应此2M笔输入数据的一2M点FFT的分解架构,并控制SRFFT处理器沿着分解架构重复执行蝴蝶计算,其中每一次蝴蝶计算的输入数据次序符合第一次序。SRFFT控制区块控制每一次蝴蝶计算后的输出结果被写回输入数据所对应的存储库。当DITSR蝴蝶计算完成后,输出控制区块依据这些存储库的个数及2M笔输出数据的原始地址决定一第二次序,并用以控。

39、制写回并储存在这些存储库内的这些输出结果依第二次序输出为2M笔输出数据,2M笔输出数据包含的输出结果依序对应符合第一次序的2M笔输入数据。0052上述SR2/8FFT方法的运作原理已详述于SR2/8FFT装置100及图1图5的相关内容中,故于此不再重述。0053本发明上述实施例所揭露的SR2/8FFT装置及方法,具有多项优点,以下仅列举部分优点说明如下0054本发明的SR2/8FFT装置及方法,利用简单且有效的存储器管理方法,将输入数据依特定次序加载存储器的存储库内,使得SRFFT处理器可以在单一时脉周期内同时对存储器撷取多笔数据,故不需采用较存储器MEMORY来得贵的寄存器REGISTER储。

40、存数据。此外,本发明亦利用有限状态机实现对FFT的规则分解架构,使得SRFFT处理器可用低成本硬件实现。因此,本发明的SR2/8FFT装置及方法具有高效率及低成本的优点。0055综上所述,虽然本发明已以较佳实施例揭露如上,然而其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种等同的改变或替换。因此,本发明的保护范围当视后附的本申请权利要求范围所界定的为准。说明书CN102339272ACN102339285A1/6页13图1图2说明书附图CN102339272ACN102339285A2/6页14图3说明书附图CN102339272ACN102339285A3/6页15图4A说明书附图CN102339272ACN102339285A4/6页16图4B图4C图4D图4E说明书附图CN102339272ACN102339285A5/6页17图4F说明书附图CN102339272ACN102339285A6/6页18图5图6图7说明书附图CN102339272A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1