一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法.pdf

上传人:r7 文档编号:4248200 上传时间:2018-09-12 格式:PDF 页数:23 大小:955.24KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110305529.0

申请日:

2011.11.30

公开号:

CN102419741A

公开日:

2012.04.18

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 17/14申请公布日:20120418|||实质审查的生效IPC(主分类):G06F 17/14申请日:20111130|||公开

IPC分类号:

G06F17/14

主分类号:

G06F17/14

申请人:

中国传媒大学; 深圳市威士达广播技术有限公司; 北京广讯科技有限责任公司

发明人:

张鹏; 刘昌银; 蒋蓝祥; 陈晋伦; 周德扬

地址:

100024 北京市朝阳区定福庄东街1号

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明涉及一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置,其特征在于,所述处理装置包括:3780个复数的共享存储器Cache1;常规的4点WFTA模块;常规的5点WFTA模块;常规的7点WFTA模块;修改的27点二维Cooley-Tukey模块,用于执行140次27点二维Cooley-Tukey傅里叶变换,它从Cache1读取数据的地址顺序与它向Cache1写入结果的地址顺序相同,也就是说,修改的27点二维Cooley-Tukey模块读写Cache1是同址的。

权利要求书

1: 一种基于同址同序素因子算法的 3780 点离散傅里叶变换处理装置, 其特征在于, 所 述处理装置包括 : 3780 个复数的共享存储器 Cachel, 用于存储 3780 点复数序列, 从外部读写 Cachel 的 顺序相同, 都是按照自然顺序的 ; 常规的 4 点 WFTA 模块, 用于执行 945 次 4 点 Winograd 傅里叶变换, 它读写 Cachel 的 地址顺序相同 ; 常规的 5 点 WFTA 模块, 用于执行 756 次 5 点 Winograd 傅里叶变换, 它读写 Cachel 的 地址顺序相同 ; 常规的 7 点 WFTA 模块, 用于执行 540 次 7 点 Winograd 傅里叶变换, 它读写 Cachel 的 地址顺序相同 ; 修改的 27 点二维 Cooley-Tukey 模块, 用于执行 140 次 27 点二维 Cooley-Tukey 傅里 叶变换, 它读写 Cachel 的地址顺序相同。
2: 如权利要求 1 所述的 3780 点离散傅里叶变换处理装置, 其特征在于, 所述修改的 27 点二维 Cooley-Tukey 模块包括 : 27 个复数的共享存储器 Cache2, 用于暂存需要进行 27 点二维 Cooley-Tukey 算法的复 数序列 ; 修改的 3 点 WFTA 模块, 每次执行 27 点二维 Cooley-Tukey 傅里叶变换时用于执行 9 次 3 点 Winograd 傅里叶变换, 它读写 Cache2 的地址顺序相同 ; 修改的 27 点旋转因子表, 用于与经 9 次 3 点 Winograd 傅里叶变换后的 27 个数据分别 相乘 ; 以及修改的 9 点 WFTA 模块, 每次执行 27 点二维 Cooley-Tukey 傅里叶变换时用于执行 3 次 9 点 Winograd 傅里叶变换, 它读写 Cache2 的地址顺序相同。
3: 如权利要求 1、 2 所述的 3780 点离散傅里叶变换处理装置, 其特征在于, 所述修改的 27 点二维 Cooley-Tukey 模块所使用的修改的 27 点旋转因子表, 是将基本旋转因子的角度 参数扩大为常规的 5 倍, 从常规的 θ = 2π/27 变为 θ = 10π/27, 旋转因子从常规的 变为
4: 如权利要求 2 所述的 3780 点离散傅里叶变换处理装置, 其特征在于, 所述修改的 3 点 WFTA 模块, 输入、 输出矩阵中的元素保持不变, 将对角矩阵中的角度参数 θ 扩大为常规 的 2 倍, 从常规的 θ = 2π/3 变为 θ = 4π/3, 达到同址运算的目的。
5: 如权利要求 2 所述的 3780 点离散傅里叶变换处理装置, 其特征在于, 所述修改的 9 点 WFTA 模块, 输入、 输出矩阵中的元素保持不变, 将对角矩阵中的角度参数 θ 扩大为常规 的 5 倍, 从常规的 θ = 2π/9 变为 θ = 10π/9, 达到同址运算的目的。
6: 一种基于同址同序素因子算法的 3780 点离散傅里叶变换处理方法, 其特征在于, 所 述处理方法包括以下步骤 : 第一步, 按照自然顺序将需要进行变换的 3780 点复数序列从外部写入共享存储器 Cachel 中 ; 第二步, 调用常规的 4 点 WFTA 模块, 对共享存储器 Cachel 的内容进行 945 次 4 点 Winograd 傅里叶变换, 同址运算决定了从共享存储器 Cachel 读出和写入的顺序相同 ; 2 第三步, 调用常规的 5 点 WFTA 模块, 对共享存储器 Cachel 的内容进行 756 次 5 点 Winograd 傅里叶变换, 同址运算决定了从共享存储器 Cachel 读出和写入的顺序相同 ; 第四步, 调用常规的 7 点 WFTA 模块, 对共享存储器 Cachel 的内容进行 540 次 7 点 Winograd 傅里叶变换, 同址运算决定了从共享存储器 Cachel 读出和写入的顺序相同 ; 第五步, 调用修改的 27 点二维 Cooley-Tukey 模块, 对共享存储器 Cachel 的内容进行 140 次 27 点二维 Cooley-Tukey 傅里叶变换, 同址运算决定了从共享存储器 Cachel 读出和 写入的顺序相同 ; 第六步, 按照自然顺序将 3780 点复数输出序列从共享存储器 Cachel 中读出送到外部。 同序运算决定了第一步和第六步中 Cachel 与外部数据交换的顺序相同。
7: 如权利要求 6 所述的 3780 点离散傅里叶变换处理方法, 其特征在于, 所述修改的 27 点二维 Cooley-Tukey 傅里叶变换包括以下步骤 : 第一步, 从共享存储器 Cachel 中读出 27 点复数序列, 按照自然顺序写入共享存储器 Cache2 中, 并把共享存储器 Cache2 视作一个 3 行 9 列的二维复数数组 ; 第二步, 调用修改的 3 点 WFTA 模块, 按照从左至右的顺序对二维复数数组 Cache2 逐列 执行 9 次 3 点 Winograd 傅里叶变换, 同址运算决定了从共享存储器 Cache2 读出和写入的 顺序相同 ; 第三步, 将二维复数数组 Cache2 中的元素乘以修改的 27 点旋转因子表的对应元素 ; 第四步, 调用修改的 9 点 WFTA 模块, 按照从上到下的顺序对二维复数数组 Cache2 逐行 执行 3 次 9 点 Winograd 傅里叶变换, 同址运算决定了从共享存储器 Cache2 读出和写入的 顺序相同 ; 第五步, 按照从上到下、 从左至右的顺序从二维复数数组 Cache2 中读出运算结果, 并写入到共享存储器 Cachel 中。同址运算决定了第一步和第五步中修改的 27 点二维 Cooley-Tukey 傅里叶变换模块与 Cachel 数据交换的顺序相同。
8: 如权利要求 6、 7 所述的 3780 点离散傅里叶变换处理方法, 其特征在于, 所述修改的 27 点二维 Cooley-Tukey 模块所使用的修改的 27 点旋转因子表, 是将基本旋转因子的角度 参数扩大为常规的 5 倍, 从常规的 θ = 2π/27 变为 θ = 10π/27, 旋转因子从常规的 变为
9: 如权利要求 7 所述的 3780 点离散傅里叶变换处理方法, 其特征在于, 所述修改的 3 点 WFTA 模块, 输入、 输出矩阵中的元素保持不变, 将对角矩阵中的角度参数 θ 扩大为常规 的 2 倍, 从常规的 θ = 2π/3 变为 θ = 4π/3, 达到同址运算的目的。
10: 如权利要求 7 所述的 3780 点离散傅里叶变换处理方法, 其特征在于, 所述修改的 9 点 WFTA 模块, 输入、 输出矩阵中的元素保持不变, 将对角矩阵中的角度参数 θ 扩大为常规 的 5 倍, 从常规的 θ = 2π/9 变为 θ = 10π/9, 达到同址运算的目的。

说明书


一种基于同址同序素因子算法的 3780 点离散傅里叶变换 处理装置和方法

    【技术领域】
     本发明涉及数字地面电视广播技术, 特别涉及一种 DTMB 系统中 3780 点离散傅里 叶变换 (Discrete Fourier Transform, DFT) 的实现方法。背景技术
     随着无线通信业务的不断增长, 可利用的频谱资源日益紧张。为了提高频谱利用 率和通信质量, 现代无线通信系统广泛采用对频率选择性衰落具有较强免疫力的正交频分 复用 (Orthogonal Frequency Duplex Multiplexing, OFDM) 技术。 OFDM 技术的核心是 DFT。 数字地面电视广播 (Digital Television Terrestrial Multimedia Broadcasting, DTMB) 标准采用了 OFDM 技术, 需要进行 3780 点 DFT。直接计算 3780 点 DFT 的运算量很大, 乘法和 加法次数都与 3780 的平方成正比。 素因子算法 (Prime Factor Algorithm, PFA) 是一种嵌套多维的非 2 幂次快速傅 里叶变换 (Fast Fourier Transform, FFT), 能有效降低计算复杂度。对于 N 点 DFT, 假设 N 可分解为 M 个两两互素因子的乘积, 即 N = N1N2… NM。N 点 PFA 的基本原理是, 把一维大点 数 DFT 映射成 M 维小点数 DFT, 第 i(i = 1, 2,…, M) 维 DFT 进行 N/Ni 次 Ni 点小点数 FFT。 小点数 FFT 可借助于 Cooley-Tukey 算法、 Winograd 傅里叶变换算法 (Winograd Fourier Transform Algorithm, WFTA) 以及其它高效算法。
     在某些情况下, PFA 需要重新排序。根据在计算过程中所处的位置, 重新排序具体 分为预扰乱和后扰乱。不考虑 Ni(i = 1, 2, ..., M) 点 FFT 的内部机制, 如果第 i 维 DFT 无 需重新排序, 那么它是同址的 ; 否则, 它是变址的, 重新排序是在 Ni 点序列内进行的, 预扰乱 和后扰乱分别在 Ni 点 FFT 之前和之后执行。类似地, 不考虑每维 DFT 的内部机制, 如果 N 点 PFA 整体上无需重新排序, 那么它是同序的 ; 否则, 它是变序的, 重新排序是在 N 点序列内进 行的, 预扰乱和后扰乱分别在第一维 DFT 开始前和最后一维 DFT 结束后执行。这样, PFA 可 分为 4 种 : 变址变序、 变址同序、 同址同序和同址变序。
     目 前, 关 于 3780 点 DFT 的 实 现 方 案 主 要 分 为 两 大 类 : 第一类是顶层采用 Cooley-Tukey 算法, 底层采用 PFA 和 WFTA, 这类方法的主要缺点是需要较大的旋转因子表 ; 第二类是顶层采用 PFA, 底层采用 WFTA 和 Cooley-Tukey 算法。 目前, 这两类实现方案涉及的 PFA 要么是变址同序的, 要么是同址变序的, 不可避免地引入了重新排序操作。 众所周知, 重 新排序意味着必须增加一级缓冲区, 需要消耗较多的存储器资源, 会提高硬件成本。此外, 重新排序还会降低运算速度, 增加控制的复杂度。
     发明内容
     关于本发明的优点与精神可通过接下来的发明详述及附图得到进一步的了解。
     本发明的主要目的在于, 提供一种基于同址同序 PFA 的 3780 点 DFT 处理器。同址 同序 PFA 无需重新排序, 从而能简化控制逻辑, 提高运算速度, 减少存储器资源, 降低硬件成本。 基于上述目的, 本发明采用嵌套多维的同址同序 PFA 实现 3780 点 DFT。 具体而言, 是二重嵌套, 第一重是四维, 第二重是二维。 3780 被分解为 3780 = 4*5*7*27, 这 4 个因子互 素。这样一来, 一维 3780 点 DFT 就被转化成四维小点数 DFT。其中, 第一、 二、 三维 DFT 分别 采用常规的 4 点、 5 点、 7 点 WFTA, 第四维 DFT 采用修改的二维 27 点 Cooley-Tukey 算法。27 被分解为 27 = 3*9。为满足同址同序 PFA 的需要, 必须修改常规二维 27 点 Cooley-Tukey 算法的旋转因子表及其涉及的 3 点 WFTA 和 9 点 WFTA。旋转因子表和两种 WFTA 的修改方 法都非常简单, 都是修改常规的角度参数。修改旋转因子表是将基本旋转因子的角度参数 θ 从常规的 2π/27 修改为 10π/27。修改 3 点 WFTA 是将角度参数 θ 从常规的 2π/3 修 改为 4π/3。修改 9 点 WFTA 是将角度参数从常规的 2π/9 修改为 10π/9。
     本发明使用 3780 个复数的共享存储器 Cachel 来存储 3780 点复数序列, 从外部将 数据输入到 Cachel 的顺序与从 Cachel 将数据输出到外部的顺序相同, 并且是按照自然顺 序的, 也就是说, 从外部读写 Cachel 是同序的。当进行 3780 点 DFT 时, 先进行 945 次常规 的 4 点同址 Winograd 傅里叶变换, 然后进行 756 次常规的 5 点同址 Winograd 傅里叶变换, 再进行 540 次常规的 7 点同址 Winograd 傅里叶变换, 最后进行 140 次修改的 27 点同址二 维 Cooley-Tukey 傅里叶变换。每次执行修改的 27 点二维 Cooley-Tukey 傅里叶变换时, 先 进行 9 次修改的 3 点同址 Winograd 傅里叶变换, 然后将所得数据与修改的 27 点旋转因子 表相乘, 再进行 3 次修改的 9 点同址 Winograd 傅里叶变换。可见, 整个 3780 点 DFT 的过程 是同址同序的。
     关于本发明的优点与精神可通过接下来的发明详述及附图得到进一步的了解。
     附图说明
     图 1 是常规的 N4 = 27 点二维 Cooley-Tukey 算法的旋转因子表 ; 图 2 是修改的 N4 = 27 点二维 Cooley-Tukey 算法的旋转因子表 ; 图 3 给出了常规的 N1 = 4 点 WFTA 模块的矩阵构成和功能框图 ; 图 4 给出了常规的 N2 = 5 点 WFTA 模块的矩阵构成和功能框图 ; 图 5 给出了常规的 N3 = 7 点 WFTA 模块的矩阵构成和功能框图 ; 图 6 给出了常规的 N5 = 3 点 WFTA 模块的矩阵构成和功能框图 ; 图 7 给出了常规的 N6 = 9 点 WFTA 模块的矩阵构成和功能框图 ; 图 8 给出了修改的 N5 = 3 点 WFTA 模块的矩阵构成和功能框图 ; 图 9 给出了修改的 N6 = 9 点 WFTA 模块的矩阵构成和功能框图 ; 图 10 描述了修改的 N4 = 27 点二维 Cooley-Tukey 算法的流程 ; 图 11 是基于同址同序 PFA 的 N = 3780 点 DFT 的完整结构示意图 ; 图 12 给出了采用共享存储器机制实现基于同址同序 PFA 的 N = 3780 点 DFT 的功能框图。 图 13 给出了采用共享存储器机制实现基于同址变序 PFA 的 N = 3780 点 DFT 处理 器的功能框图 ( 预扰乱 )
     图 14 给出了采用共享存储器机制实现基于同址变序 PFA 的 N = 3780 点 DFT 处理 器的功能框图 ( 后扰乱 )
     图 15 给出了采用共享存储器机制实现基于变址同序 PFA 的 N = 3780 点 DFT 处理 器的功能框图 ( 预扰乱 )
     图 16 给出了采用共享存储器机制实现基于变址同序 PFA 的 N = 3780 点 DFT 处理 器的功能框图 ( 后扰乱 ) 具体实施方式
     下面结合附图和具体实施例对本发明作进一步说明, 但不作为对本发明的限定。
     N 点序列 x(n) 的离散傅里叶变换 (Discrete Fourier Transform, DFT) 为
     其中, n, k = 0, 1,…, N-1, WN = e-j2π/N。直接计算 N 点 DFT 的乘法和加法运算量 都与 N 的平方成正比。当 N 较大时, 运算量很大。
     为了降低计算复杂度, 当 N 不是 2 的幂次时, 可采用嵌套多维的素因子算法 (Prime Factor Algorithm, PFA) 实现 N 点 DFT。假设 N 可分解为 M 个两两互素因子的乘积, 即N = N1N2… NM。也就是说, 任意两个因子 Ni 和 Nj(i, j = 1, 2,…, M, 且 i ≠ j) 的最大公约数 是 1。注意, Ni 未必是素数。N 点 PFA 的基本原理是, 把一维大点数 DFT 映射成 M 维小点数
     DFT, 第 i 维 DFT 进行 N/Ni 次 Ni 点小点数快速傅里叶变换 (Fast Fourier Transform, FFT)。 小点数 FFT 可借助于 Cooley-Tukey 算法、 Winograd 傅里叶变换算法 (Winograd Fourier Transform Algorithm, WFTA) 以及其它高效算法。
     为了使 PFA 总体上是同序的, 在一维 DFT 映射成 M 维 DFT 时, 根据中国余数定理, 输入索引 n 和输出索引 k 采用如下相同的映射方式 :
     其中, 符号 <>N 表示模 N 运算, ni, ki = 0, 1, …, Ni-1。将式 (2) 和 (3) 代入式 (1), 整理可得 :
     其中,
     对比式 (2) 和 (3) 容易发现, 索引 n 和 k 的映射方式本质上完全相同。因此, 只要 式 (4) 中每维 DFT 的索引 ni 和 ki 都是自然顺序的, N 点 PFA 就是同序的。
     在式 (4) 中, 第 i(i = 1, 2,…, M) 维 DFT 的傅里叶变换因子可写作
     或式中,当时, k′ i ≠ ki, n′ i ≠ ni。众所周知, 常规的 Ni 点 FFT 算法的输入那么 和输出都是按照自然顺序的。如果式 (4) 中的第 i 维 DFT 采用常规的 Ni 点 FFT 算法, 式 (5) 是按照 ni 的自然顺序输入、 k′ i 的自然顺序输出, 式 (6) 则是按照 n′ i 的自然顺序 输入、 ki 的自然顺序输出。然而, 由式 (2) 和 (3) 可知, 同序 PFA 要求式 (4) 中的第 i 维 DFT 按照 ni 的自然顺序输入、 ki 的自然顺序输出。可见, 当 (7) 和 (8) 中的规则进行后扰乱和预扰乱。可见, 当 时, 如果式 (4) 中的第 i 时, 式 (4) 中的第 i 维 DFT 时, 式 维 DFT 采用常规的 Ni 点 FFT 算法, 那么必须重新排序。具体而言, 式 (5) 和 (6) 分别根据式 是变址的。变址通过重新排序实现。为了去掉重新排序这一额外操作、 实现同址同序 PFA, 我们必须修改常规的 Ni 点 FFT 算法, 将重新排序操作吸纳其中。注意, 当 (4) 中的第 i 维 DFT 是同址的, 无需修改常规的 Ni 点 FFT 算法。
     对于 3780 点 DFT, N = 3780。3780 可被分解为 M = 4 个两两互素因子的乘积, 即 3780 = 4*5*7*27。令 N1 = 4, N2 = 5, N3 = 7, N4 = 27, 则有 N = N1*N2*N3*N4。将上述参数 代入式 (4), 则有
     在上式中, 第一、 二、 三维 DFT 的点数较小, 因此它们可分别采用 N1 = 4 点 WFTA、 N2 = 5 点 WFTA、 N3 = 7 点 WFTA。第四维 DFT 的点数是较大的复合数 N4 = 27, 27 可被分解为 2 个因子的乘积, 即 27 = 3*9。令 N5 = 3, N6 = 9, 则有 N4 = N5*N6。因为 N5 与 N6 不互素, 所 以 27 点 DFT 可用二维 Cooley-Tukey 算法实现。
     在式 (9) 中, 显然, 如果第一、 二、 三维 DFT 分别采用常规的 4 点 WFTA、 5 点 WFTA、 7 点 WFTA, 那么这三维 DFT 都是同址的。如果第四 维 DFT 采用常规的 27 点二维 Cooley-Tukey 算法, 那么第四维 DFT 是变址的。这是因为 导致第四维 DFT 的指数是 5n4k4 而不是常规的 n4k4。变址通过重 新排序实现。为了去掉重新排序这一额外操作、 实现同址同序 PFA, 我们必须修改常规的 27 点二维 Cooley-Tukey 算法, 将重新排序操作吸纳其中。
     对于常规的 N4 = 27 点二维 Cooley-Tukey 算法, N4 = N5*N6 = 3*9。索引 n4 和 k4 分别采用如下不同的映射方式 :
     n4 = n5+N5n6 (10) k4 = N6k5+k6 (11)
     其中, n5, k5 = 0, 1,…, N5-1, n6, k6 = 0, 1,…, N6-1。基于上述索引映射方式, 常 规的 N4 = 27 点二维 Cooley-Tukey 算法为
     其中,W27 = ej2π/27 是基本旋转 是旋转因子。通过穷举 k5 和 n6 可得到 的所有因子, 其角度参数是 θ = 2π/27,值, 即常规的 N4 = 27 点二维 Cooley-Tukey 算法的旋转因子表, 如图 1 所示。
     在式 (9) 中, 第四维 DFT 的指数是 5n4k4 而不是常规的 n4k4。因此, 我们必须将式 (12) 中的所有指数都乘以 5。化简后, 修改的 N4 = 27 点二维 Cooley-Tukey 算法为
     (13)对比式 (12) 和 (13) 容易发现, 基本旋转因子的角度参数扩大为常规的 5 倍, 从常 变为 图 2 是修改的 N4规的 θ = 2π/27 变为 θ = 10π/27, 旋转因子从常规的= 27 点二维 Cooley-Tukey 算法的旋转因子表。
     在式 (13) 中, 修改的 N4 = 27 点二维 Cooley-Tukey 算法的第一、 二维 DFT 的点数较 小, 因此它们可分别采用 N5 = 3 点 WFTA 和 N6 = 9 点 WFTA。因为第一维 DFT 的指数是 2n5k5 而不是常规的 n5k5, 所以如果第一维 DFT 采用常规的 N5 = 3 点 WFTA, 那么第一维 DFT 是变 址的。因为第二维 DFT 的指数是 5n6k6 而不是常规的 n6k6, 所以如果第二维 DFT 采用常规的 N6 = 9 点 WFTA, 那么第二维 DFT 是变址的。为了去掉变址引入的重新排序、 实现同址同序 PFA, 我们必须修改常规的 N5 = 3 点 WFTA 和 N6 = 9 点 WFTA, 将重新排序操作吸纳其中。
     Ni(i = 1, 2, 3, 5, 6) 点 WFTA 可用向量与矩阵的连乘表示, 即
     V = ODIv (14)
     其中, v 和 V 分别是由 Ni 点输入和输出序列构成的向量, I 和 O 分别是输入和输出 矩阵, D 是对角矩阵。通常, 矩阵 I 和 O 中的元素都只可能是 0、 ±1 和 ±j, 与向量相乘时不 涉及实质性乘法。对于对角矩阵 D, 除对角上的元素非零外, 其它位置上的元素均为 0, 且对 角上的元素取决于角度参数 θ = 2π/Ni。
     图 3 给出了常规的 N1 = 4 点 WFTA 的矩阵构成和功能框图。4 点输入序列构成向 量 v4, 它先与矩阵 I4 相乘, 运算所得向量再与对角矩阵 D4 相乘, 运算所得向量最后与矩阵 O4 相乘, 运算所得向量 V4 即为 4 点输出序列。
     图 4 给出了常规的 N2 = 5 点 WFTA 的矩阵构成和功能框图。注意, 对角矩阵 D5 中 的角度参数是 θ = 2π/5。5 点输入序列构成向量 v5, 它先与矩阵 I5 相乘, 运算所得向量 再与对角矩阵 D5 相乘, 运算所得向量最后与矩阵 O5 相乘, 运算所得向量 V5 即为 5 点输出序 列。
     图 5 给出了常规的 N3 = 7 点 WFTA 的矩阵构成和功能框图。注意, 对角矩阵 D7 中 的角度参数是 θ = 2π/7。7 点输入序列构成向量 v7, 它先与矩阵 I7 相乘, 运算所得向量 再与对角矩阵 D7 相乘, 运算所得向量最后与矩阵 O7 相乘, 运算所得向量 V7 即为 7 点输出序列。 图 6 给出了常规的 N5 = 3 点 WFTA 的矩阵构成和功能框图。注意, 对角矩阵 D3 中 的角度参数是 θ = 2π/3。3 点输入序列构成向量 v3, 它先与矩阵 I3 相乘, 运算所得向量 再与对角矩阵 D3 相乘, 运算所得向量最后与矩阵 O3 相乘, 运算所得向量 V′ 3 即为 3 点输出 序列。
     图 7 给出了常规的 N6 = 9 点 WFTA 的矩阵构成和功能框图。注意, 对角矩阵 D9 中 的角度参数是 θ = 2π/9。9 点输入序列构成向量 v9, 它先与矩阵 I9 相乘, 运算所得向量 再与对角矩阵 D9 相乘, 运算所得向量最后与矩阵 O9 相乘, 运算所得向量 V′ 9 即为 9 点输出 序列。
     如前所述, 为了使 N = 3780 点 DFT 能实现同址同序 PFA, 必须修改常规的 N5 = 3 点 WFTA 和 N6 = 9 点 WFTA。下面详细介绍常规的 N5 = 3 点 WFTA 和 N6 = 9 点 WFTA 的修改 方法。
     对于修改的 N5 = 3 点 WFTA, 矩阵 I3 和 O3 中的元素保持不变, 只需将对角矩阵 D3 中的角度参数 θ 扩大为常规的 2 倍, 从常规的 θ = 2π/3 变为 θ = 4π/3。图 8 给出了 修改的 N5 = 3 点 WFTA 的矩阵构成和功能框图。注意, 对角矩阵 D3 中的角度参数是 θ = 4π/3。 3 点输入序列构成向量 v3, 它先与矩阵 I3 相乘, 运算所得向量再与对角矩阵 D3 相乘, 运算所得向量最后与矩阵 O3 相乘, 运算所得向量 V3 即为 3 点输出序列。修改的 N5 = 3 点 WFTA 将对角矩阵 D3 中的角度参数从常规的 θ = 2π/3 修改为 θ = 4π/3, 从而把修改的 N4 = 27 点二维 Cooley-Tukey 算法的第一维 DFT 涉及的重新排序操作吸纳进来, 达到了同 址运算的目的。
     对于修改的 N6 = 9 点 WFTA, 矩阵 I9 和 O9 中的元素保持不变, 只需将对角矩阵 D9 中的角度参数 θ 扩大为常规的 5 倍, 从常规的 θ = 2π/9 变为 θ = 10π/9。图 9 给出 了修改的 N6 = 9 点 WFTA 的矩阵构成和功能框图。注意, 对角矩阵 D9 中的角度参数是 θ = 10π/9。9 点输入序列构成向量 v9, 它先与矩阵 I9 相乘, 运算所得向量再与对角矩阵 D9 相 乘, 运算所得向量最后与矩阵 O9 相乘, 运算所得向量 V9 即为 9 点输出序列。修改的 N6 = 9 点 WFTA 将对角矩阵 D9 中的角度参数从常规的 θ = 2π/9 修改为 θ = 10π/9, 从而把修 改的 N4 = 27 点二维 Cooley-Tukey 算法的第二维 DFT 涉及的重新排序操作吸纳进来, 达到 了同址运算的目的。
     利用上述修改的 N5 = 3 点 WFTA 和 N6 = 9 点 WFTA, 我们能给出修改的 N4 = 27 点 二维 Cooley-Tukey 算法的流程, 如图 10 所示。其具体步骤是 :
     第一步, 按照从左到右、 从上到下的顺序将 27 点输入序列写入 3 行 9 列的二维数 组中, 二维数组中的数字 0 ~ 26 表示写入的先后顺序 ;
     第二步, 按照从左至右的顺序对二维数组逐列执行修改的 3 点 WFTA, 共9次;
     第三步, 将二维数组中的元素乘以修改的 27 点旋转因子表的对应元素, 二维数组 中的数值表示修改的旋转因子表的内容 ;
     第四步, 按照从上到下的顺序对二维数组逐行执行修改的 9 点 WFTA, 共3次;
     第五步, 按照从上到下、 从左至右的顺序从二维数组中读出运算结果, 二维数组中 的数字 0 ~ 26 表示读出的先后顺序。
     至此, 我们能给出基于同址同序 PFA 的 N = 3780 点 DFT 的完整结构示意图, 如图
     11 所示。 显然, 它是一种二重嵌套多维结构, 第一重是四维, 第二重是二维。 处理步骤是 : 首 先进行 945 次常规的 4 点同址 WFTA, 然后进行 756 次常规的 5 点同址 WFTA, 再进行 540 次 常规的 7 点同址 WFTA, 最后进行 140 次修改的 27 点同址二维 Cooley-Tukey 算法。每次执 行修改的 27 点同址二维 Cooley-Tukey 算法时, 先进行 9 次修改的 3 点同址 WFTA, 然后将所 得数据与修改的 27 点旋转因子表相乘, 再进行 3 次修改的 9 点同址 WFTA。
     图 12 是一种采用共享存储器机制实现基于同址同序 PFA 的 N = 3780 点 DFT 的功 能框图。
     所述系统的 3780 点离散傅里叶变换处理器主要包括 : 3780 个复数的共享存储器 Cachel, 用于存储 3780 点复数序列, 从外部将数据输入到 Cachel 的顺序与从 Cachel 将数 据输出到外部的顺序相同, 并且是按照自然顺序的, 也就是说, 从外部读写 Cachel 是同序 的; 常规的 4 点 WFTA 模块, 用于执行 945 次 4 点 Winograd 傅里叶变换, 它从 Cachel 读取数 据的地址顺序与它向 Cachel 写入结果的地址顺序相同, 也就是说, 常规的 4 点 WFTA 模块读 写 Cachel 是同址的 ; 常规的 5 点 WFTA 模块, 用于执行 756 次 5 点 Winograd 傅里叶变换, 它 从 Cachel 读取数据的地址顺序与它向 Cachel 写入结果的地址顺序相同, 也就是说, 常规的 5 点 WFTA 模块读写 Cachel 是同址的 ; 常规的 7 点 WFTA 模块, 用于执行 540 次 7 点 Winograd 傅里叶变换, 它从 Cachel 读取数据的地址顺序与它向 Cachel 写入结果的地址顺序相同, 也 就是说, 常规的 7 点 WFTA 模块读写 Cachel 是同址的 ; 修改的 27 点二维 Cooley-Tukey 模 块, 用于执行 140 次 27 点二维 Cooley-Tukey 傅里叶变换, 它从 Cachel 读取数据的地址顺 序与它向 Cachel 写入结果的地址顺序相同, 也就是说, 修改的 27 点二维 Cooley-Tukey 模 块读写 Cachel 是同址的。
     具体步骤为 :
     第一步, 按照自然顺序将 3780 点复数序列 x(n) 写入共享存储器 Cachel 中 ;
     第二步, 调用常规的 4 点同址 WFTA 模块, 对共享存储器 Cachel 的内容进行 945 次 4 点 Winograd 傅里叶变换, 同址运算决定了从共享存储器 Cachel 读出和写入的顺序相同 ;
     第三步, 调用常规的 5 点同址 WFTA 模块, 对共享存储器 Cachel 的内容进行 756 次 5 点 Winograd 傅里叶变换, 同址运算决定了从共享存储器 Cachel 读出和写入的顺序相同 ;
     第四步, 调用常规的 7 点同址 WFTA 模块, 对共享存储器 Cachel 的内容进行 540 次 7 点 Winograd 傅里叶变换, 同址运算决定了从共享存储器 Cachel 读出和写入的顺序相同 ;
     第五步, 调用修改的 27 点同址二维 Cooley-Tukey 模块, 对共享存储器 Cachel 的内容进行 140 次 27 点二维 Cooley-Tukey 傅里叶变换, 同址运算决定了从共享存储器 Cachel 读出和写入的顺序相同 ;
     第六步, 按照自然顺序将 3780 点复数序列 X(k) 从共享存储器 Cachel 中读出。同 序运算决定了第一步和第六步中 Cachel 与外部数据交换的顺序相同。
     必须指出的是, 由于采用了同序运算, 这就允许在输出 3780 点复数序列 X(k) 的同 时写入 3780 点复数序列 x(n), 从而提高数字信号的处理速度。
     在图 12 中, 修改的 27 点同址二维 Cooley-Tukey 模块执行以下步骤 :
     第一步, 从共享存储器 Cachel 中读出 27 点复数序列, 按照自然顺序写入共享存储 器 Cache2 中, 并把共享存储器 Cache2 视作一个 3 行 9 列的二维复数数组 ;
     第二步, 调用修改的 3 点同址 WFTA 模块, 按照从左至右的顺序对二维复数数组Cache2 逐列执行 9 次 3 点 Winograd 傅里叶变换, 同址运算决定了从二维复数数组 Cache2 读出和写入的顺序相同 ;
     第三步, 将二维复数数组 Cache2 中的元素乘以修改的 27 点旋转因子表的对应元 素;
     第四步, 调用修改的 9 点同址 WFTA 模块, 按照从上到下的顺序对二维复数数组 Cache2 逐行执行 3 次 9 点 Winograd 傅里叶变换, 同址运算决定了从二维复数数组 Cache2 读出和写入的顺序相同 ;
     第五步, 按照从上到下、 从左至右的顺序从二维复数数组 Cache2 中读出运算结 果, 并写入到共享存储器 Cachel 中。注意, 同址运算决定了从共享存储器 Cachel 读出和写 入的顺序相同。
     如果采用同址变序 PFA 实现 3780 点 DFT, 那么需要在 3780 点序列内进行 1 次重新 排序。对于此方案, 重新排序要么是在 4 点 Winograd 傅里叶变换之前进行预扰乱, 如图 13 所示, 要么是在 27 点二维 Cooley-Tukey 傅里叶变换之后进行后扰乱, 如图 14 所示。无论 是预扰乱还是后扰乱, 重新排序都要求增加 3780 个复数的存储器。如果复数的实部和虚部 都是 16 比特的精度, 那么此方案必须增加 120, 960 比特的大存储器, 这样会提高硬件成本。 此外, 重新排序还会降低运算速度, 增加控制的复杂度。 如果采用变址同序 PFA 实现 3780 点 DFT, 那么需要在 27 点序列内进行重新排序, 共需 140 次。对于此方案, 重新排序要么是在 27 点二维 Cooley-Tukey 傅里叶变换之前进 行预扰乱, 如图 15 所示, 要么是其后进行后扰乱, 如图 16 所示。无论是预扰乱还是后扰乱, 重新排序都要求增加 27 个复数的存储器。如果复数的实部和虚部都是 16 比特的精度, 那 么此方案必须增加 864 比特的存储器。虽然存储器增加不多, 但重新排序会降低运算速度, 增加控制的复杂度。
     与同址变序 PFA 和变址同序 PFA 相比, 本发明无需重新排序, 从而能简化控制逻 辑, 提高运算速度, 减少存储器资源, 降低硬件成本。
     以上通过具体实施方式和实施例对本发明进行了详细的说明, 对于本领域的技术 人员来说, 在不脱离本发明原理的情况下, 还可做出若干变形和改进, 这些也应视为本发明 的保护范围。
    

一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法.pdf_第1页
第1页 / 共23页
一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法.pdf_第2页
第2页 / 共23页
一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法.pdf_第3页
第3页 / 共23页
点击查看更多>>
资源描述

《一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法.pdf》由会员分享,可在线阅读,更多相关《一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法.pdf(23页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102419741 A (43)申请公布日 2012.04.18 C N 1 0 2 4 1 9 7 4 1 A *CN102419741A* (21)申请号 201110305529.0 (22)申请日 2011.11.30 G06F 17/14(2006.01) (71)申请人中国传媒大学 地址 100024 北京市朝阳区定福庄东街1号 申请人深圳市威士达广播技术有限公司 北京广讯科技有限责任公司 (72)发明人张鹏 刘昌银 蒋蓝祥 陈晋伦 周德扬 (54) 发明名称 一种基于同址同序素因子算法的3780点离 散傅里叶变换处理装置和方法 (57) 摘要 本发明涉及。

2、一种基于同址同序素因子算法的 3780点离散傅里叶变换处理装置,其特征在于, 所述处理装置包括:3780个复数的共享存储器 Cache1;常规的4点WFTA模块;常规的5点WFTA 模块;常规的7点WFTA模块;修改的27点二维 Cooley-Tukey模块,用于执行140次27点二维 Cooley-Tukey傅里叶变换,它从Cache1读取数据 的地址顺序与它向Cache1写入结果的地址顺序 相同,也就是说,修改的27点二维Cooley-Tukey 模块读写Cache1是同址的。 (51)Int.Cl. (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 。

3、8 页 附图 12 页 CN 102419753 A 1/2页 2 1.一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置,其特征在于,所 述处理装置包括: 3780个复数的共享存储器Cachel,用于存储3780点复数序列,从外部读写Cachel的 顺序相同,都是按照自然顺序的; 常规的4点WFTA模块,用于执行945次4点Winograd傅里叶变换,它读写Cachel的 地址顺序相同; 常规的5点WFTA模块,用于执行756次5点Winograd傅里叶变换,它读写Cachel的 地址顺序相同; 常规的7点WFTA模块,用于执行540次7点Winograd傅里叶变换,它读写Cach。

4、el的 地址顺序相同; 修改的27点二维Cooley-Tukey模块,用于执行140次27点二维Cooley-Tukey傅里 叶变换,它读写Cachel的地址顺序相同。 2.如权利要求1所述的3780点离散傅里叶变换处理装置,其特征在于,所述修改的27 点二维Cooley-Tukey模块包括: 27个复数的共享存储器Cache2,用于暂存需要进行27点二维Cooley-Tukey算法的复 数序列; 修改的3点WFTA模块,每次执行27点二维Cooley-Tukey傅里叶变换时用于执行9次 3点Winograd傅里叶变换,它读写Cache2的地址顺序相同; 修改的27点旋转因子表,用于与经9次3。

5、点Winograd傅里叶变换后的27个数据分别 相乘; 以及修改的9点WFTA模块,每次执行27点二维Cooley-Tukey傅里叶变换时用于执行 3次9点Winograd傅里叶变换,它读写Cache2的地址顺序相同。 3.如权利要求1、2所述的3780点离散傅里叶变换处理装置,其特征在于,所述修改的 27点二维Cooley-Tukey模块所使用的修改的27点旋转因子表,是将基本旋转因子的角度 参数扩大为常规的5倍,从常规的2/27变为10/27,旋转因子从常规的 变为 4.如权利要求2所述的3780点离散傅里叶变换处理装置,其特征在于,所述修改的3 点WFTA模块,输入、输出矩阵中的元素保持。

6、不变,将对角矩阵中的角度参数扩大为常规 的2倍,从常规的2/3变为4/3,达到同址运算的目的。 5.如权利要求2所述的3780点离散傅里叶变换处理装置,其特征在于,所述修改的9 点WFTA模块,输入、输出矩阵中的元素保持不变,将对角矩阵中的角度参数扩大为常规 的5倍,从常规的2/9变为10/9,达到同址运算的目的。 6.一种基于同址同序素因子算法的3780点离散傅里叶变换处理方法,其特征在于,所 述处理方法包括以下步骤: 第一步,按照自然顺序将需要进行变换的3780点复数序列从外部写入共享存储器 Cachel中; 第二步,调用常规的4点WFTA模块,对共享存储器Cachel的内容进行945次4。

7、点 Winograd傅里叶变换,同址运算决定了从共享存储器Cachel读出和写入的顺序相同; 权 利 要 求 书CN 102419741 A CN 102419753 A 2/2页 3 第三步,调用常规的5点WFTA模块,对共享存储器Cachel的内容进行756次5点 Winograd傅里叶变换,同址运算决定了从共享存储器Cachel读出和写入的顺序相同; 第四步,调用常规的7点WFTA模块,对共享存储器Cachel的内容进行540次7点 Winograd傅里叶变换,同址运算决定了从共享存储器Cachel读出和写入的顺序相同; 第五步,调用修改的27点二维Cooley-Tukey模块,对共享存。

8、储器Cachel的内容进行 140次27点二维Cooley-Tukey傅里叶变换,同址运算决定了从共享存储器Cachel读出和 写入的顺序相同; 第六步,按照自然顺序将3780点复数输出序列从共享存储器Cachel中读出送到外部。 同序运算决定了第一步和第六步中Cachel与外部数据交换的顺序相同。 7.如权利要求6所述的3780点离散傅里叶变换处理方法,其特征在于,所述修改的27 点二维Cooley-Tukey傅里叶变换包括以下步骤: 第一步,从共享存储器Cachel中读出27点复数序列,按照自然顺序写入共享存储器 Cache2中,并把共享存储器Cache2视作一个3行9列的二维复数数组; 。

9、第二步,调用修改的3点WFTA模块,按照从左至右的顺序对二维复数数组Cache2逐列 执行9次3点Winograd傅里叶变换,同址运算决定了从共享存储器Cache2读出和写入的 顺序相同; 第三步,将二维复数数组Cache2中的元素乘以修改的27点旋转因子表的对应元素; 第四步,调用修改的9点WFTA模块,按照从上到下的顺序对二维复数数组Cache2逐行 执行3次9点Winograd傅里叶变换,同址运算决定了从共享存储器Cache2读出和写入的 顺序相同; 第五步,按照从上到下、从左至右的顺序从二维复数数组Cache2中读出运算结果, 并写入到共享存储器Cachel中。同址运算决定了第一步和第。

10、五步中修改的27点二维 Cooley-Tukey傅里叶变换模块与Cachel数据交换的顺序相同。 8.如权利要求6、7所述的3780点离散傅里叶变换处理方法,其特征在于,所述修改的 27点二维Cooley-Tukey模块所使用的修改的27点旋转因子表,是将基本旋转因子的角度 参数扩大为常规的5倍,从常规的2/27变为10/27,旋转因子从常规的 变为 9.如权利要求7所述的3780点离散傅里叶变换处理方法,其特征在于,所述修改的3 点WFTA模块,输入、输出矩阵中的元素保持不变,将对角矩阵中的角度参数扩大为常规 的2倍,从常规的2/3变为4/3,达到同址运算的目的。 10.如权利要求7所述的3。

11、780点离散傅里叶变换处理方法,其特征在于,所述修改的9 点WFTA模块,输入、输出矩阵中的元素保持不变,将对角矩阵中的角度参数扩大为常规 的5倍,从常规的2/9变为10/9,达到同址运算的目的。 权 利 要 求 书CN 102419741 A CN 102419753 A 1/8页 4 一种基于同址同序素因子算法的 3780 点离散傅里叶变换 处理装置和方法 技术领域 0001 本发明涉及数字地面电视广播技术,特别涉及一种DTMB系统中3780点离散傅里 叶变换(Discrete Fourier Transform,DFT)的实现方法。 背景技术 0002 随着无线通信业务的不断增长,可利用。

12、的频谱资源日益紧张。为了提高频谱利用 率和通信质量,现代无线通信系统广泛采用对频率选择性衰落具有较强免疫力的正交频分 复用(Orthogonal Frequency Duplex Multiplexing,OFDM)技术。OFDM技术的核心是DFT。 数字地面电视广播(Digital Television Terrestrial Multimedia Broadcasting,DTMB) 标准采用了OFDM技术,需要进行3780点DFT。直接计算3780点DFT的运算量很大,乘法和 加法次数都与3780的平方成正比。 0003 素因子算法(Prime Factor Algorithm,PFA)。

13、是一种嵌套多维的非2幂次快速傅 里叶变换(Fast Fourier Transform,FFT),能有效降低计算复杂度。对于N点DFT,假设N 可分解为M个两两互素因子的乘积,即NN 1 N 2 N M 。N点PFA的基本原理是,把一维大点 数DFT映射成M维小点数DFT,第i(i1,2,M)维DFT进行N/N i 次N i 点小点数FFT。 小点数FFT可借助于Cooley-Tukey算法、Winograd傅里叶变换算法(Winograd Fourier Transform Algorithm,WFTA)以及其它高效算法。 0004 在某些情况下,PFA需要重新排序。根据在计算过程中所处的位。

14、置,重新排序具体 分为预扰乱和后扰乱。不考虑N i (i1,2,.,M)点FFT的内部机制,如果第i维DFT无 需重新排序,那么它是同址的;否则,它是变址的,重新排序是在N i 点序列内进行的,预扰乱 和后扰乱分别在N i 点FFT之前和之后执行。类似地,不考虑每维DFT的内部机制,如果N点 PFA整体上无需重新排序,那么它是同序的;否则,它是变序的,重新排序是在N点序列内进 行的,预扰乱和后扰乱分别在第一维DFT开始前和最后一维DFT结束后执行。这样,PFA可 分为4种:变址变序、变址同序、同址同序和同址变序。 0005 目前,关于3780点DFT的实现方案主要分为两大类:第一类是顶层采用 。

15、Cooley-Tukey算法,底层采用PFA和WFTA,这类方法的主要缺点是需要较大的旋转因子表; 第二类是顶层采用PFA,底层采用WFTA和Cooley-Tukey算法。目前,这两类实现方案涉及的 PFA要么是变址同序的,要么是同址变序的,不可避免地引入了重新排序操作。众所周知,重 新排序意味着必须增加一级缓冲区,需要消耗较多的存储器资源,会提高硬件成本。此外, 重新排序还会降低运算速度,增加控制的复杂度。 发明内容 0006 关于本发明的优点与精神可通过接下来的发明详述及附图得到进一步的了解。 0007 本发明的主要目的在于,提供一种基于同址同序PFA的3780点DFT处理器。同址 同序P。

16、FA无需重新排序,从而能简化控制逻辑,提高运算速度,减少存储器资源,降低硬件 说 明 书CN 102419741 A CN 102419753 A 2/8页 5 成本。 0008 基于上述目的,本发明采用嵌套多维的同址同序PFA实现3780点DFT。具体而言, 是二重嵌套,第一重是四维,第二重是二维。3780被分解为37804*5*7*27,这4个因子互 素。这样一来,一维3780点DFT就被转化成四维小点数DFT。其中,第一、二、三维DFT分别 采用常规的4点、5点、7点WFTA,第四维DFT采用修改的二维27点Cooley-Tukey算法。27 被分解为273*9。为满足同址同序PFA的需。

17、要,必须修改常规二维27点Cooley-Tukey 算法的旋转因子表及其涉及的3点WFTA和9点WFTA。旋转因子表和两种WFTA的修改方 法都非常简单,都是修改常规的角度参数。修改旋转因子表是将基本旋转因子的角度参数 从常规的2/27修改为10/27。修改3点WFTA是将角度参数从常规的2/3修 改为4/3。修改9点WFTA是将角度参数从常规的2/9修改为10/9。 0009 本发明使用3780个复数的共享存储器Cachel来存储3780点复数序列,从外部将 数据输入到Cachel的顺序与从Cachel将数据输出到外部的顺序相同,并且是按照自然顺 序的,也就是说,从外部读写Cachel是同序。

18、的。当进行3780点DFT时,先进行945次常规 的4点同址Winograd傅里叶变换,然后进行756次常规的5点同址Winograd傅里叶变换, 再进行540次常规的7点同址Winograd傅里叶变换,最后进行140次修改的27点同址二 维Cooley-Tukey傅里叶变换。每次执行修改的27点二维Cooley-Tukey傅里叶变换时,先 进行9次修改的3点同址Winograd傅里叶变换,然后将所得数据与修改的27点旋转因子 表相乘,再进行3次修改的9点同址Winograd傅里叶变换。可见,整个3780点DFT的过程 是同址同序的。 0010 关于本发明的优点与精神可通过接下来的发明详述及附。

19、图得到进一步的了解。 附图说明 0011 图1是常规的N 4 27点二维Cooley-Tukey算法的旋转因子表; 0012 图2是修改的N 4 27点二维Cooley-Tukey算法的旋转因子表; 0013 图3给出了常规的N 1 4点WFTA模块的矩阵构成和功能框图; 0014 图4给出了常规的N 2 5点WFTA模块的矩阵构成和功能框图; 0015 图5给出了常规的N 3 7点WFTA模块的矩阵构成和功能框图; 0016 图6给出了常规的N 5 3点WFTA模块的矩阵构成和功能框图; 0017 图7给出了常规的N 6 9点WFTA模块的矩阵构成和功能框图; 0018 图8给出了修改的N 。

20、5 3点WFTA模块的矩阵构成和功能框图; 0019 图9给出了修改的N 6 9点WFTA模块的矩阵构成和功能框图; 0020 图10描述了修改的N 4 27点二维Cooley-Tukey算法的流程; 0021 图11是基于同址同序PFA的N3780点DFT的完整结构示意图; 0022 图12给出了采用共享存储器机制实现基于同址同序PFA的N3780点DFT的功 能框图。 0023 图13给出了采用共享存储器机制实现基于同址变序PFA的N3780点DFT处理 器的功能框图(预扰乱) 0024 图14给出了采用共享存储器机制实现基于同址变序PFA的N3780点DFT处理 器的功能框图(后扰乱) 。

21、说 明 书CN 102419741 A CN 102419753 A 3/8页 6 0025 图15给出了采用共享存储器机制实现基于变址同序PFA的N3780点DFT处理 器的功能框图(预扰乱) 0026 图16给出了采用共享存储器机制实现基于变址同序PFA的N3780点DFT处理 器的功能框图(后扰乱) 具体实施方式 0027 下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。 0028 N点序列x(n)的离散傅里叶变换(Discrete Fourier Transform,DFT)为 0029 0030 其中,n,k0,1,N-1,W N e -j2/N 。直接计算N点。

22、DFT的乘法和加法运算量 都与N的平方成正比。当N较大时,运算量很大。 0031 为了降低计算复杂度,当N不是2的幂次时,可采用嵌套多维的素因子算法(Prime Factor Algorithm,PFA)实现N点DFT。假设N可分解为M个两两互素因子的乘积,即N N 1 N 2 N M 。也就是说,任意两个因子N i 和N j (i,j1,2,M,且ij)的最大公约数 是1。注意,N i 未必是素数。N点PFA的基本原理是,把一维大点数DFT映射成M维小点数 DFT,第i维DFT进行N/N i 次N i 点小点数快速傅里叶变换(Fast Fourier Transform,FFT)。 小点数F。

23、FT可借助于Cooley-Tukey算法、Winograd傅里叶变换算法(Winograd Fourier Transform Algorithm,WFTA)以及其它高效算法。 0032 为了使PFA总体上是同序的,在一维DFT映射成M维DFT时,根据中国余数定理, 输入索引n和输出索引k采用如下相同的映射方式: 0033 0034 0035 其中,符号 N 表示模N运算,n i ,k i 0,1,N i -1。将式(2)和(3)代入式(1), 整理可得: 0036 0037 其中, 0038 0039 0040 对比式(2)和(3)容易发现,索引n和k的映射方式本质上完全相同。因此,只要 式。

24、(4)中每维DFT的索引n i 和k i 都是自然顺序的,N点PFA就是同序的。 0041 在式(4)中,第i(i1,2,M)维DFT的傅里叶变换因子可写作 0042 说 明 书CN 102419741 A CN 102419753 A 4/8页 7 0043 或 0044 0045 式中, 0046 0047 0048 当时,k i k i ,n i n i 。众所周知,常规的N i 点FFT算法的输入 和输出都是按照自然顺序的。如果式(4)中的第i维DFT采用常规的N i 点FFT算法,那么 式(5)是按照n i 的自然顺序输入、k i 的自然顺序输出,式(6)则是按照n i 的自然顺序 。

25、输入、k i 的自然顺序输出。然而,由式(2)和(3)可知,同序PFA要求式(4)中的第i维DFT 按照n i 的自然顺序输入、k i 的自然顺序输出。可见,当时,如果式(4)中的第i 维DFT采用常规的N i 点FFT算法,那么必须重新排序。具体而言,式(5)和(6)分别根据式 (7)和(8)中的规则进行后扰乱和预扰乱。可见,当时,式(4)中的第i维DFT 是变址的。变址通过重新排序实现。为了去掉重新排序这一额外操作、实现同址同序PFA, 我们必须修改常规的N i 点FFT算法,将重新排序操作吸纳其中。注意,当时,式 (4)中的第i维DFT是同址的,无需修改常规的N i 点FFT算法。 00。

26、49 对于3780点DFT,N3780。3780可被分解为M4个两两互素因子的乘积,即 37804*5*7*27。令N 1 4,N 2 5,N 3 7,N 4 27,则有NN 1 *N 2 *N 3 *N 4 。将上述参数 代入式(4),则有 0050 0051 在上式中,第一、二、三维DFT的点数较小,因此它们可分别采用N 1 4点WFTA、N 2 5点WFTA、N 3 7点WFTA。第四维DFT的点数是较大的复合数N 4 27,27可被分解为 2个因子的乘积,即273*9。令N 5 3,N 6 9,则有N 4 N 5 *N 6 。因为N 5 与N 6 不互素,所 以27点DFT可用二维Co。

27、oley-Tukey算法实现。 0052 在式(9)中, 显然,如果第一、二、三维DFT分 别采用常规的4点WFTA、5点WFTA、7点WFTA,那么这三维DFT都是同址的。如果第四 维DFT采用常规的27点二维Cooley-Tukey算法,那么第四维DFT是变址的。这是因为 导致第四维DFT的指数是5n 4 k 4 而不是常规的n 4 k 4 。变址通过重 新排序实现。为了去掉重新排序这一额外操作、实现同址同序PFA,我们必须修改常规的27 点二维Cooley-Tukey算法,将重新排序操作吸纳其中。 0053 对于常规的N 4 27点二维Cooley-Tukey算法,N 4 N 5 *N 。

28、6 3*9。索引n 4 和k 4 分别采用如下不同的映射方式: 0054 n 4 n 5 +N 5 n 6 (10) 0055 k 4 N 6 k 5 +k 6 (11) 0056 其中,n 5 ,k 5 0,1,N 5 -1,n 6 ,k 6 0,1,N 6 -1。基于上述索引映射方式,常 规的N 4 27点二维Cooley-Tukey算法为 说 明 书CN 102419741 A CN 102419753 A 5/8页 8 0057 0058 其中,W 27 e j2/27 是基本旋转 因子,其角度参数是2/27,是旋转因子。通过穷举k 5 和n 6 可得到的所有 值,即常规的N 4 27。

29、点二维Cooley-Tukey算法的旋转因子表,如图1所示。 0059 在式(9)中,第四维DFT的指数是5n 4 k 4 而不是常规的n 4 k 4 。因此,我们必须将式 (12)中的所有指数都乘以5。化简后,修改的N 4 27点二维Cooley-Tukey算法为 0060 0061 (13) 0062 0063 对比式(12)和(13)容易发现,基本旋转因子的角度参数扩大为常规的5倍,从常 规的2/27变为10/27,旋转因子从常规的变为图2是修改的N 4 27点二维Cooley-Tukey算法的旋转因子表。 0064 在式(13)中,修改的N 4 27点二维Cooley-Tukey算法的。

30、第一、二维DFT的点数较 小,因此它们可分别采用N 5 3点WFTA和N 6 9点WFTA。因为第一维DFT的指数是2n 5 k 5 而不是常规的n 5 k 5 ,所以如果第一维DFT采用常规的N 5 3点WFTA,那么第一维DFT是变 址的。因为第二维DFT的指数是5n 6 k 6 而不是常规的n 6 k 6 ,所以如果第二维DFT采用常规的 N 6 9点WFTA,那么第二维DFT是变址的。为了去掉变址引入的重新排序、实现同址同序 PFA,我们必须修改常规的N 5 3点WFTA和N 6 9点WFTA,将重新排序操作吸纳其中。 0065 N i (i1,2,3,5,6)点WFTA可用向量与矩阵。

31、的连乘表示,即 0066 VODIv (14) 0067 其中,v和V分别是由N i 点输入和输出序列构成的向量,I和O分别是输入和输出 矩阵,D是对角矩阵。通常,矩阵I和O中的元素都只可能是0、1和j,与向量相乘时不 涉及实质性乘法。对于对角矩阵D,除对角上的元素非零外,其它位置上的元素均为0,且对 角上的元素取决于角度参数2/N i 。 0068 图3给出了常规的N 1 4点WFTA的矩阵构成和功能框图。4点输入序列构成向 量v 4 ,它先与矩阵I 4 相乘,运算所得向量再与对角矩阵D 4 相乘,运算所得向量最后与矩阵O 4 相乘,运算所得向量V 4 即为4点输出序列。 0069 图4给出。

32、了常规的N 2 5点WFTA的矩阵构成和功能框图。注意,对角矩阵D 5 中 的角度参数是2/5。5点输入序列构成向量v 5 ,它先与矩阵I 5 相乘,运算所得向量 再与对角矩阵D 5 相乘,运算所得向量最后与矩阵O 5 相乘,运算所得向量V 5 即为5点输出序 列。 0070 图5给出了常规的N 3 7点WFTA的矩阵构成和功能框图。注意,对角矩阵D 7 中 的角度参数是2/7。7点输入序列构成向量v 7 ,它先与矩阵I 7 相乘,运算所得向量 再与对角矩阵D 7 相乘,运算所得向量最后与矩阵O 7 相乘,运算所得向量V 7 即为7点输出序 说 明 书CN 102419741 A CN 102。

33、419753 A 6/8页 9 列。 0071 图6给出了常规的N 5 3点WFTA的矩阵构成和功能框图。注意,对角矩阵D 3 中 的角度参数是2/3。3点输入序列构成向量v 3 ,它先与矩阵I 3 相乘,运算所得向量 再与对角矩阵D 3 相乘,运算所得向量最后与矩阵O 3 相乘,运算所得向量V 3 即为3点输出 序列。 0072 图7给出了常规的N 6 9点WFTA的矩阵构成和功能框图。注意,对角矩阵D 9 中 的角度参数是2/9。9点输入序列构成向量v 9 ,它先与矩阵I 9 相乘,运算所得向量 再与对角矩阵D 9 相乘,运算所得向量最后与矩阵O 9 相乘,运算所得向量V 9 即为9点输出。

34、 序列。 0073 如前所述,为了使N3780点DFT能实现同址同序PFA,必须修改常规的N 5 3 点WFTA和N 6 9点WFTA。下面详细介绍常规的N 5 3点WFTA和N 6 9点WFTA的修改 方法。 0074 对于修改的N 5 3点WFTA,矩阵I 3 和O 3 中的元素保持不变,只需将对角矩阵D 3 中的角度参数扩大为常规的2倍,从常规的2/3变为4/3。图8给出了 修改的N 5 3点WFTA的矩阵构成和功能框图。注意,对角矩阵D 3 中的角度参数是 4/3。3点输入序列构成向量v 3 ,它先与矩阵I 3 相乘,运算所得向量再与对角矩阵D 3 相乘, 运算所得向量最后与矩阵O 3。

35、 相乘,运算所得向量V 3 即为3点输出序列。修改的N 5 3点 WFTA将对角矩阵D 3 中的角度参数从常规的2/3修改为4/3,从而把修改的 N 4 27点二维Cooley-Tukey算法的第一维DFT涉及的重新排序操作吸纳进来,达到了同 址运算的目的。 0075 对于修改的N 6 9点WFTA,矩阵I 9 和O 9 中的元素保持不变,只需将对角矩阵D 9 中的角度参数扩大为常规的5倍,从常规的2/9变为10/9。图9给出 了修改的N 6 9点WFTA的矩阵构成和功能框图。注意,对角矩阵D 9 中的角度参数是 10/9。9点输入序列构成向量v 9 ,它先与矩阵I 9 相乘,运算所得向量再与。

36、对角矩阵D 9 相 乘,运算所得向量最后与矩阵O 9 相乘,运算所得向量V 9 即为9点输出序列。修改的N 6 9 点WFTA将对角矩阵D 9 中的角度参数从常规的2/9修改为10/9,从而把修 改的N 4 27点二维Cooley-Tukey算法的第二维DFT涉及的重新排序操作吸纳进来,达到 了同址运算的目的。 0076 利用上述修改的N 5 3点WFTA和N 6 9点WFTA,我们能给出修改的N 4 27点 二维Cooley-Tukey算法的流程,如图10所示。其具体步骤是: 0077 第一步,按照从左到右、从上到下的顺序将27点输入序列写入3行9列的二维数 组中,二维数组中的数字026表示。

37、写入的先后顺序; 0078 第二步,按照从左至右的顺序对二维数组逐列执行修改的3点WFTA,共9次; 0079 第三步,将二维数组中的元素乘以修改的27点旋转因子表的对应元素,二维数组 中的数值表示修改的旋转因子表的内容; 0080 第四步,按照从上到下的顺序对二维数组逐行执行修改的9点WFTA,共3次; 0081 第五步,按照从上到下、从左至右的顺序从二维数组中读出运算结果,二维数组中 的数字026表示读出的先后顺序。 0082 至此,我们能给出基于同址同序PFA的N3780点DFT的完整结构示意图,如图 说 明 书CN 102419741 A CN 102419753 A 7/8页 10 。

38、11所示。显然,它是一种二重嵌套多维结构,第一重是四维,第二重是二维。处理步骤是:首 先进行945次常规的4点同址WFTA,然后进行756次常规的5点同址WFTA,再进行540次 常规的7点同址WFTA,最后进行140次修改的27点同址二维Cooley-Tukey算法。每次执 行修改的27点同址二维Cooley-Tukey算法时,先进行9次修改的3点同址WFTA,然后将所 得数据与修改的27点旋转因子表相乘,再进行3次修改的9点同址WFTA。 0083 图12是一种采用共享存储器机制实现基于同址同序PFA的N3780点DFT的功 能框图。 0084 所述系统的3780点离散傅里叶变换处理器主要。

39、包括:3780个复数的共享存储器 Cachel,用于存储3780点复数序列,从外部将数据输入到Cachel的顺序与从Cachel将数 据输出到外部的顺序相同,并且是按照自然顺序的,也就是说,从外部读写Cachel是同序 的;常规的4点WFTA模块,用于执行945次4点Winograd傅里叶变换,它从Cachel读取数 据的地址顺序与它向Cachel写入结果的地址顺序相同,也就是说,常规的4点WFTA模块读 写Cachel是同址的;常规的5点WFTA模块,用于执行756次5点Winograd傅里叶变换,它 从Cachel读取数据的地址顺序与它向Cachel写入结果的地址顺序相同,也就是说,常规的。

40、 5点WFTA模块读写Cachel是同址的;常规的7点WFTA模块,用于执行540次7点Winograd 傅里叶变换,它从Cachel读取数据的地址顺序与它向Cachel写入结果的地址顺序相同,也 就是说,常规的7点WFTA模块读写Cachel是同址的;修改的27点二维Cooley-Tukey模 块,用于执行140次27点二维Cooley-Tukey傅里叶变换,它从Cachel读取数据的地址顺 序与它向Cachel写入结果的地址顺序相同,也就是说,修改的27点二维Cooley-Tukey模 块读写Cachel是同址的。 0085 具体步骤为: 0086 第一步,按照自然顺序将3780点复数序列。

41、x(n)写入共享存储器Cachel中; 0087 第二步,调用常规的4点同址WFTA模块,对共享存储器Cachel的内容进行945次 4点Winograd傅里叶变换,同址运算决定了从共享存储器Cachel读出和写入的顺序相同; 0088 第三步,调用常规的5点同址WFTA模块,对共享存储器Cachel的内容进行756次 5点Winograd傅里叶变换,同址运算决定了从共享存储器Cachel读出和写入的顺序相同; 0089 第四步,调用常规的7点同址WFTA模块,对共享存储器Cachel的内容进行540次 7点Winograd傅里叶变换,同址运算决定了从共享存储器Cachel读出和写入的顺序相同。

42、; 0090 第五步,调用修改的27点同址二维Cooley-Tukey模块,对共享存储器Cachel 的内容进行140次27点二维Cooley-Tukey傅里叶变换,同址运算决定了从共享存储器 Cachel读出和写入的顺序相同; 0091 第六步,按照自然顺序将3780点复数序列X(k)从共享存储器Cachel中读出。同 序运算决定了第一步和第六步中Cachel与外部数据交换的顺序相同。 0092 必须指出的是,由于采用了同序运算,这就允许在输出3780点复数序列X(k)的同 时写入3780点复数序列x(n),从而提高数字信号的处理速度。 0093 在图12中,修改的27点同址二维Cooley。

43、-Tukey模块执行以下步骤: 0094 第一步,从共享存储器Cachel中读出27点复数序列,按照自然顺序写入共享存储 器Cache2中,并把共享存储器Cache2视作一个3行9列的二维复数数组; 0095 第二步,调用修改的3点同址WFTA模块,按照从左至右的顺序对二维复数数组 说 明 书CN 102419741 A CN 102419753 A 8/8页 11 Cache2逐列执行9次3点Winograd傅里叶变换,同址运算决定了从二维复数数组Cache2 读出和写入的顺序相同; 0096 第三步,将二维复数数组Cache2中的元素乘以修改的27点旋转因子表的对应元 素; 0097 第四。

44、步,调用修改的9点同址WFTA模块,按照从上到下的顺序对二维复数数组 Cache2逐行执行3次9点Winograd傅里叶变换,同址运算决定了从二维复数数组Cache2 读出和写入的顺序相同; 0098 第五步,按照从上到下、从左至右的顺序从二维复数数组Cache2中读出运算结 果,并写入到共享存储器Cachel中。注意,同址运算决定了从共享存储器Cachel读出和写 入的顺序相同。 0099 如果采用同址变序PFA实现3780点DFT,那么需要在3780点序列内进行1次重新 排序。对于此方案,重新排序要么是在4点Winograd傅里叶变换之前进行预扰乱,如图13 所示,要么是在27点二维Coo。

45、ley-Tukey傅里叶变换之后进行后扰乱,如图14所示。无论 是预扰乱还是后扰乱,重新排序都要求增加3780个复数的存储器。如果复数的实部和虚部 都是16比特的精度,那么此方案必须增加120,960比特的大存储器,这样会提高硬件成本。 此外,重新排序还会降低运算速度,增加控制的复杂度。 0100 如果采用变址同序PFA实现3780点DFT,那么需要在27点序列内进行重新排序, 共需140次。对于此方案,重新排序要么是在27点二维Cooley-Tukey傅里叶变换之前进 行预扰乱,如图15所示,要么是其后进行后扰乱,如图16所示。无论是预扰乱还是后扰乱, 重新排序都要求增加27个复数的存储器。。

46、如果复数的实部和虚部都是16比特的精度,那 么此方案必须增加864比特的存储器。虽然存储器增加不多,但重新排序会降低运算速度, 增加控制的复杂度。 0101 与同址变序PFA和变址同序PFA相比,本发明无需重新排序,从而能简化控制逻 辑,提高运算速度,减少存储器资源,降低硬件成本。 0102 以上通过具体实施方式和实施例对本发明进行了详细的说明,对于本领域的技术 人员来说,在不脱离本发明原理的情况下,还可做出若干变形和改进,这些也应视为本发明 的保护范围。 说 明 书CN 102419741 A CN 102419753 A 1/12页 12 图1 图2 说 明 书 附 图CN 1024197。

47、41 A CN 102419753 A 2/12页 13 图3 说 明 书 附 图CN 102419741 A CN 102419753 A 3/12页 14 图4 说 明 书 附 图CN 102419741 A CN 102419753 A 4/12页 15 图5 说 明 书 附 图CN 102419741 A CN 102419753 A 5/12页 16 图6 说 明 书 附 图CN 102419741 A CN 102419753 A 6/12页 17 图7 说 明 书 附 图CN 102419741 A CN 102419753 A 7/12页 18 图8 说 明 书 附 图CN 102419741 A CN 102419753 A 8/12页 19 图9 说 明 书 附 图CN 102419741 A CN 102419753 A 9/12页 20 图10 说 明 书 附 图CN 102419741 A CN 102419753 A 10/12页 21 图11 图12 说 明 书 附 图CN 102419741 A CN 102419753 A 11/12页 22 图13 图14 说 明 书 附 图CN 102419741 A CN 102419753 A 12/12页 23 图15 图16 说 明 书 附 图CN 102419741 A 。

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

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


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