关键字 |
CORDIC、FFT、旋转CORDIC,引导CORDIC。 |
介绍 |
现代信号处理应用程序需要一个高计算能力的技术要求只能通过ASIC实现。尽管ASIC可以满足所有的技术要求等缺点它是一成不变的,昂贵的经济只有质量产品。所以系统设计师努力取代基于硬件和软件解决方案的解决方案。 |
由于这些原因,我最常用的可编程设备。e, DSP往往缺乏所需的电力所需的设计。为了提供解决方案这两个极值之间如可编程信号处理和专用硬件可重构计算。MORTEX项目的框架内,本文提供了一种解决方案取代基于MAC的FFT[1][2]的一个纯粹基于CORDIC的FFT。 |
坐标旋转数字计算机(CORDIC)介绍了Volder[3],它提供了一个有效的迭代方法计算二维向量的旋转使用只有转变和添加操作。CORDIC算法被用在许多应用程序如数字滤波、调制、快速傅里叶变换(FFT)和信号值分解(计算)。基于CORDIC的体系结构是一个非常有吸引力的替代乘法和添加硬件。 |
在[4]表明,Rake接收机取代基于CORDIC算法,采用可重构硬件加速器[5][6],甚至导致了更好的性能。一个8点FFT用于WLAN Rake接收机的实现在同一架构解释。因此我们已经得到一个可重构体系结构为移动多标准的终端和无线局域网的主要处理块和UMTS基带可以取代这个可编程的架构。 |
本文组织如下图:部分我给CORDIC算法和FFT的引入数字信号处理。第二部分描述了基于MAC算法。第三部分解释了基于CORDIC算法,提出的解决方法和实现。第四部分显示了一些仿真结果在无线局域网环境中,提出的性能技术和V最后一部分总结了纸,紧随其后的是引用。 |
基于MAC的FFT |
复杂的乘法和加法操作的数量要求的简单形式的离散傅里叶变换(DFT)和离散傅里叶反变换(IDFT)以N2是有N数据点计算,每一个都需要复杂的算术运算。 |
对于一个输入向量X和长度n, DFT是一个向量X长度n, n个元素: |
![图像](//www.cheescube.com/articles-images/IJAREEIE-701-e001.gif) |
计算机科学术语,我们可以说他们有算法复杂度O (N2),因此并不是一个非常有效的方法。如果该方法不是比这更好的DFT不会对于大多数实际DSP应用程序非常有用。但是,有大量的不同的快速傅里叶变换(FFT)算法,使一个信号的傅里叶变换计算DFT快多了。 |
顾名思义,fft算法是算法快速计算离散傅里叶变换的输入向量。FFT,包括DFT算法减少了计算所需的数量N个点从O (N 2) O (N log N)日志以2为底的对数。的功能是改变不是谐波相关采样频率,但它看起来像一个‘sinc函数(sin (x))。 |
基数2的算法是有用的,如果N是一个普通的2 (N = 2 p)。让我们假设算法复杂性提供了一个直接测量相关的执行时间和对数基地2如图1所示,执行时间的比率(DFT)和(基数2 FFT)(表示速度改善系数)与N的增加显著增加。 |
FFT是最先进的,因为有一个数量的FFT算法。有两个基数2算法,称为“频率大量毁灭”(DIF)和“时间大量毁灭”(说)算法。的递归分解算法依赖于一个N点转变成2 (N / 2)点变换。分解过程可以应用于任何组合(非')N方法简单如果N是能被2整除,如果是2的幂,那么分解可以递归直到完成琐碎的“1点”的变换。 |
图1显示的第一阶段8 DIF算法。的radix-2 decimation-in-frequency FFT算法是一个重要的分而获得的——征服的方法。 |
整个过程涉及到大量毁灭的v = log2 N阶段,在每个阶段包括N / 2类型的蝴蝶图2所示。然而,才导致数据洗牌。 |
WN = e - j 2Π/ N,是玩弄的因素。 |
因此,通过这种算法需要零序电压保护的不足DFT计算N (N / 2) log2复杂的乘法。为设计目的,8点decimation-in频率算法是图3所示。我们观察到,输出序列已经发生在应用输入有点颠倒顺序。此外,如果假设计算被遗弃在一个特定的地方,然后可以实现输入和输出的正常秩序。 |
基于CORDIC FFT |
Verilog HDL代码实现一个8点decimation-in-frequency算法使用蝴蝶结构。第五阶段的数量结构应当在我们的例子中,v = log2 N N = 8,因此,阶段的数量等于3。有许多的方法来实现这三个阶段。他们中的一些人, |
一个迭代的架构 |
在迭代结构只有一个阶段是重复用于三次大量毁灭,它提供了一个有效的电路硬件的12条和减法器集合。这三个阶段,第一阶段只需要2 CORDICs和每个将8为每个计算时钟脉冲。剩余的两个阶段不需要任何CORDIC即使他们必须旋转数据使用CORDIC 0或-90 o,这需要16个时钟脉冲。数据对整个过程的旋转可以通过使用2的补充和总线交换,仅需要较少的硬件。 |
在这当一个数据的计算,这个过程必须等待,直到它已经完成36个时钟脉冲。 |
因此,时间计算= 24个时钟周期。12位小蝰蛇和子拖拉机= 16 |
B管道架构 |
在管道架构而不是使用一个阶段,三个阶段分别用于everydecimation和其他情况下是12位蛇需要3套16条。通过使用这种体系结构的复杂性和延迟已经大幅减少在每个阶段与其他注册银行分离。当以前的数据设置然后另一组串行数据被发送到注册输入。在最后的三阶段和总净效应同时工作。 |
虽然管道架构相比有许多优点迭代它不考虑的有效选择,因为大量的硬件使用。除此之外,这个体系结构提供了一个改善只是1时钟周期。因此,时间计算= 8时钟周期。12位小蝰蛇和删除工作= 40 |
C方法 |
平衡之间的管道和迭代结构计算方法将使用两个阶段三个大批杀害。第一阶段将实现为正常的时尚但剩余的两个阶段结合在一起形成一个阶段,因为它不需要任何CORDIC。MUX用于控制数据作为输入反过来由计数器MUX控制。在第一阶段小蝰蛇和减法器只需要真实的数据,而下一阶段需要真实和虚构的数据。 |
因此,时间计算= 10个时钟周期。12位小蝰蛇和减法器= 24 |
串行输入数据发送和计数器的输出取决于数据将传递到12位并行输入注册。在这个只有8时钟脉冲用于这个过程见图4。随后的数据作为输入为异步蛇和减法器。 |
给出了异步输出作为输入CORDIC块。许多输出输出从0到5和8为下一个阶段,但只有8个时钟脉冲后即实现。,输出是准备第二阶段后才16个时钟脉冲。后实现所需的时钟脉冲输出传递给下一个阶段。这个电路的第二阶段共同实现这两个体系结构中的第二个和第三个大量毁灭只是因为没有CORDIC需要在这些阶段和旋转-90度或0 o。因此,a +旋转-90度成为b-aj bj,即仅仅2 a的补充。 |
始显示蝴蝶方案的框图,输入数据是合并两个阶段进入一个不同的阶段。如果假设输入的一个或两个翻转然后我们得到另一个阶段。第二和第三阶段在本质上是异步的,所以他们只需要为每个计算一个时钟脉冲。 |
之后我们得到的输出的第三阶段,这是加载到矢量CORDIC。这导致一个复数的大小一样真实+图像放大* j, 8个时钟周期来计算。 |
8然后发送到输出端口输出连续下8个时钟周期。输出架构图7显示了如何输出是用于12位端口。 |
1)旋转CORDIC:旋转的向量x +司法院inp_angle它使用CORDIC算法和标准需要8次迭代完成。迭代开始时,x, y和角寄存器发起的原始值x, y和inp_angle分别。x和y寄存器添加或减去移位的x和y的值取决于角堆积在角的符号分别登记在每一个迭代。 |
框图如下: |
2)引导CORDIC:此模块使引导CORDIC计算矢量的大小(mag) x + j * y。注意,CORDIC增益系数补偿矢量CORDIC尚未完成。因此,大小值实际上是乘以CORDIC增益系数为1.647。矢量CORDIC使用相同的概念,在旋转CORDIC解释道。 |
开始时,x和y寄存器是发起分别与原x和y的值。然后,尽量反复旋转向量,这样涉及到x -轴和大小然后等于x分量。为了达到这个目标,x和y寄存器迭代添加或减去转移值分别为x和y, y登记死亡降至零。 |
在迭代的开始,我们需要把该地区向量+ 90至-90度。原来的向量x + j * y,如果在第一或第二象限,旋转-90度,才能在该地区+ 90度到-90度。如果向量x + j * y是在第三或第四象限,它由+ 90度旋转得到它在地区+ 90度到-90度。 |
仿真结果 |
CORDIC FFT架构使用某些街区作为十二位加法器,柜台和CORDIC模块本身需要换档器和寄存器。CORDIC FFT的输出相比,基于MAC的FFT和结果进行了分析。 |
FFT的蝴蝶阶段,移动装置和控制装置。主要的输入块作为xk的16位和输出表示为out_real out_imag。 |
所需的旋转角度累加寄存器的cordic模块计算角度值,需要添加或减去从积累的角度。角的值存储在存储以下格式: |
¯·12位表示。 |
一个¯·MSB, bit11,二进制的重量-180度。 |
¯·第二位,bit10有二进制的重量+ 90度。 |
¯·之后,下一个连续的比特,有些队(9:0)二进制权重+ 90 / (2 ^ n) n变化从harry sverdlove 10位0。因此,计数或至少角,这个系统可以在90 /(2 ^ 10)= 0.087890625度。 |
Fig.12显示了完整的加法器模块是用来制造“级联”12位加法器。作为完整的加法器解释说,这个加法器是绕过。这12位加法器作为一个加法器和减法器用于两个12位数字:a和b。加法减法取决于符号位。标志= 0意味着,标志= 1意味着减法。减法,使用EXOR逆变器数组,b是传递给的1补3全加器的级联模块以及使输入信号= 1。 |
主要模块包括一个输入数组的12位。计数器是用于这个柜台,根据输入的每个阶段蝴蝶会产生输出。例如,当计数器输入是000001年和000100年,那么相应的输出outr0将产生。 |
结论 |
这个项目的主要贡献是FFT使用CORDIC算法的实现。使用CORDIC算法是一个简单的移位和加法运算的一个有效和完善的性能设计。基于CORDIC FFT与MAC的FFT的实部和虚部乘法省略使用CORDIC执行相反的旋转。因此,设计基于CORDIC FFT比MAC FFT为基础提供了更好的性能。 |
确认 |
作者感谢电子与通信工程系,Bannari安曼理工学院支持呈现的实施这个项目。 |
数据乍一看 |
|
|
|
|
引用 |
- a . v .奥本海姆和r·w·谢弗,离散时间信号处理,第三版,鞍上游,新泽西:普伦蒂斯·霍尔出版社,1999年。
- c . v .贷款,快速傅里叶变换的计算框架,1。费城,宾夕法尼亚州:暹罗,1992年。
- j . Volder“CORDIC三角计算技术,”愤怒的交易在电子计算机上,卷。EC-8,不。3、330 - 334年,1959页。
- b . Heyne m . Otte j·格策,“性能可调,可重构UMTS-FDD CDMA接收机的概念,“在个人14 IEEE国际研讨会,室内和移动无线电通信(PIMRC2003),北京,中国,2003年9月。
- b . Oelkrug m .粉碎机,d . Uffmann a博士¨总局,j . Brakensiek和m . Darianian“环球电信应用程序可编程硬件加速器,在软件无线电二车间,卡尔斯鲁厄,德国,2002年。
- [6]m . Otte j·格策,m .粉碎机”矩阵信号处理基于可重构硬件加速器,“在10日数字信号处理车间、松山顶,格鲁吉亚,美国,2002年10月。
- b . Heyne和j·戈艾滋”,一个纯粹的基于cordic fft对可重构数字信号处理,”12日欧洲信号处理会议(Eusipco2004), 7卷,2004年9月。
- z . Liu k·迪克森和j . v . McCanny“基于浮点cordic的圣言处理器,在尽快,2003。
- r . Andraka”调查cordic算法的FPGA, FPGA的98。学报1998 ACM / SIGDA第六国际研讨会现场可编程门阵列,34卷,没有。2,页191 - 200,1998年2月22 - 24。
|