基3的27点fft算法和蝶形图

合集下载

FFT算法的DSP实现

FFT算法的DSP实现

FFT 算法的DSP 实现对于离散傅里叶变换(DFT)的数字计算,FFT是一种有效的方法。

一般假定输入序列是复数。

当实际输入是实数时,利用对称性质可以使计算DFT 非常有效。

一个优化的实数FFT算法是一个组合以后的算法。

原始的2N个点的实输入序列组合成一个N 点的复序列,之后对复序列进行N 点的FFT 运算,最后再由N 点的复数输出拆散成2N点的复数序列,这 2 N点的复数序列与原始的2N点的实数输入序列的DFT输出一致。

使用这种方法,在组合输入和拆散输出的操作中,FFT 运算量减半。

这样利用实数FFT 算法来计算实输入序列的DFT的速度几乎是一般FFT算法的两倍。

下面用这种方法来实现一个256 点实数FFT(2N=256 )运算。

1. 实数FFT 运算序列的存储分配如何利用有限的DSP 系统资源,合理的安排好算法使用的存储器是一个比较重要的问题。

本文中,程序代码安排在0x3000 开始的存储器中,其中0x3000~0x3080 存放中断向量表,FFT程序使用的正弦表和余弦表数据(.data段)安排在OxcOO开始的地方,变量(.bss段定义)存放在0x80 开始的地址中。

另外,本文中256 点实数FFT 程序的数据缓冲位Ox23OO~Ox23ff , FFT 变换后功率谱的计算结果存放在Ox22OO~Ox22ff 中。

连续定位.cmd 文件程序如下:MEMORY {PAGE O: IPROG: origin = Ox3O8O,len=Ox1F8OVECT: lorigin=Ox3OOO,len=Ox8OEPROG: origin=Ox38OOO,len=Ox8OOOPAGE 1:USERREGS: origin=Ox6O,len=Ox1cBIOSREGS: origin=Ox7c,len=Ox4IDATA: origin=Ox8O,len=OxB8O}SECTIONS{EDATA: origin=OxCOO,len=Ox14OO{.vectors: { } > VECT PAGE O.sysregs:.trcinit:.gblinit: { } > BIOSREGS PAGE 1 { } > IPROG PAGE O { } > IPROG PAGE O.bios:frt:{ } > IPROG PAGE O { } > IPROG PAGE O.text: { } > IPROG PAGE O.cinit: { } > IPROG PAGE O.pinit: { } > IPROG PAGE O.sysinit: { } > IPROG PAGE O.data: .bss: .far:.const: { } > EDATA PAGE 1 { } > IDATA PAGE 1 { } > IDATA PAGE 1 { } > IDATA PAGE 1.switch: { } > IDATA PAGE 1 .sysmem: { } > IDATA PAGE1•cio:{ } > IDATA PAGE1.MEM$obj: { } > IDATA PAGE1.sysheap: { } > IDATA PAGE1}2.基2实数FFT运算的算法该算法主要分为以下四步进行:1)输入数据的组合和位排序首先,原始输入的2N=256个点的实数序列复制放到标记有“ d_input_addr "的相邻单元,当成N=128点的复数序列d[n],其中奇数地址是d[n]实部,偶数地址是d[n]的虚部,这个过程叫做组合(n为序列变量,N为常量)。

FFT算法

FFT算法

用FPGA实现FFT算法引言DFT(Discrete Fourier Transformation)是数字信号分析与处理如图形、语音及图像等领域的重要变换工具,直接计算DFT的计算量与变换区间长度N的平方成正比。

当N较大时,因计算量太大,直接用DFT算法进行谱分析和信号的实时处理是不切实际的。

快速傅立叶变换(Fast Fourier Transformation,简称FFT)使DFT运算效率提高1~2个数量级。

其原因是当N较大时,对DFT进行了基4和基2分解运算。

FFT算法除了必需的数据存储器ram和旋转因子rom外,仍需较复杂的运算和控制电路单元,即使现在,实现长点数的FFT仍然是很困难。

本文提出的FFT实现算法是基于FPGA之上的,算法完成对一个序列的FFT计算,完全由脉冲触发,外部只输入一脉冲头和输入数据,便可以得到该脉冲头作为起始标志的N 点FFT输出结果。

由于使用了双ram,该算法是流型(Pipelined)的,可以连续计算N点复数输入FFT,即输入可以是分段N点连续复数数据流。

采用DIF(Decimation In Frequency)-FFT 和DIT(Decimation In Time)-FFT对于算法本身来说是无关紧要的,因为两种情况下只是存储器的读写地址有所变动而已,不影响算法的结构和流程,也不会对算法复杂度有何影响。

算法实现的可以是基2/4混合基FFT,也可以是纯基4FFT和纯基2FFT运算。

傅立叶变换和逆变换对于变换长度为N的序列x(n)其傅立叶变换可以表示如下:NnkX(k)=DFT[x(n)] = Σ x(n)Wn="0"式(1)其中,W="exp"(-2π/N)。

当点数N较大时,必须对式(1)进行基4/基2分解,以短点数实现长点数的变换。

而IDFT的实现在DFT的基础上就显得较为简单了:式(2)由式(2)可以看出,在FFT运算模块的基础上,只需将输入序列进行取共轭后再进行FFT运算,输出结果再取一次共轭便实现了对输入序列的IDFT运算,因子1/N对于不同的数据表示格式具体实现时的处理方式是不一样的。

数字信号处理判断题

数字信号处理判断题

判断题1、 信号可定义为传载信息的函数2、模拟信号就是时间连续的信号3、连续时间信号就是时间连续的信号4、离散时间信号就是时间离散的信号5、数字信号就是时间幅度都是离散的信号6、系统就是反映信号处理因果关系的设备或运算7、连续时间系统就是输入输出都是连续时间信号的系统8、数字信号处理精度高9、数字信号处理不可时分复用10、数字信号处理可靠性强,但灵活性不大1、√2、×3、√4、√5、×6、√7、√8、√9、× 10、×1、理想取样可以看成实际取样的科学的本质的抽象2、连续时间的取样造成频谱的周期重复3、连续时间信号的取样可能发生频谱混叠4、离散时间信号可用序列表示5、两序列相乘就是对应序列值相乘6、所有正弦序列都是周期的7、所有复指数序列都是周期的8、当h(n)为因果序列时,系统一定是因果的9、当h(n)绝对可和时,系统一定是稳定的 10、)(1)(n u n n h =,则系统是稳定的 11、)(2)(n u n h n -=,系统是非因果的不稳定系统 12、2)()(+=n x n y ,系统是线性的 13、)()(n x a n y n =,系统是时变的14、离散时间线性非时变系统可用常系数线性差分方程描述15、系统频率响应是指系统对不同频率的正弦序列的不同传输能力16、系统频率响应是连续的非周期的17、系统频率响应是周期的,周期为2π18、任何序列的傅里叶变换都是存在的19、实序列的傅里叶变换是共轭对称的20、Z 变换的收敛域可以是方形区域21、Z 变换的收敛域是以极点来限定边界的22、双边序列的Z 变换的收敛域为环域23、)(n ∂的收敛域为整个Z 平面24、傅里叶变换就是单位圆上的Z 变换25、系统函数收敛域包括单位圆,则系统稳定26、系统函数的收敛域在环内,则系统是因果的27、极点、零点都在单位圆内,系统是最小相位系统28、极点在单位圆内,零点有在单位圆内,也有在单位圆外,则系统是最大相位系统29、极点在单位圆内,零点有在单位圆内,也有在单位圆外,则系统是非最小相位系统30、非最小相位系统可以看成最小相位系统和全通函数相乘1、√2、√3、√4、√5、√6、×7、×8、√9、√ 10、×11、× 12、× 13、√ 14、√ 15、× 16、× 17、√ 18、× 19、√ 20、×21、√ 22、√ 23、√ 24、√ 25、√ 26、× 27、√ 28、× 29、√ 30、√1、离散傅里叶变换在一个域里边是周期的,则另一个域是连续的2、离散傅里叶变换在一个域里边是非周期的,则另一个域是离散的3、离散傅里叶变换一个域里边周期的倒数是另一个域的周期4、DFT 是DFS 取主值5、DFT 不隐含周期性6、DFT 不是连续傅里叶变换的近似7、DFT 是X(z)在单位圆上的等间隔取样8、DFT 的综合就是X(z)9、DFT 和IDFT 可用一套程序计算10、补零增长可使谱线变密11、x(n)反转,X(k)也反转。

FFT的FPGA实现

FFT的FPGA实现

fft的fpga实现1.引言DFT及其快速算法FFT是信号处理领域的核心组成部分。

FFT算法多种多样,按数据组合方式不同一般分时域和频域,按数据抽取方式的不同又可分为基2,基4等。

各算法的优缺点视不同的制约因素而不同。

FFT的实现方法也多种多样,可以用软件实现,也可以用硬件实现,用软件在PC机或工作站上实现则计算速度很慢。

一般多结合具体系统用硬件实现。

例如用单片机或DSP实现。

但是速度仍然很慢,难以与快速的A/D器件匹配。

在雷达信号处理领域主要追求的目标是速度,即实时性的要求非常高。

针对这种快速信号处理的要求及FPGA器件的特点,本文采用的是一种基2固定几何结构的FFT算法。

采用的是Altera公司推出的最新器件Stratix来做硬件仿真。

Stratix器件是一款采用高性能结构体系的PLD器件。

它结合了强大内核性能,大存储带宽,数字信号处理(DSP)功能,高速I/O性能和模块化设计与一体的PLD。

其内嵌的DSP模块具有很高的乘法运算速度。

在用VHDL编程时可以用MegaWizard的方法指定用DSP模块生成乘法器,用这种乘法器来做蝶形,用多个蝶形来构成FFT运算级,通过循环即可实现FFT核心运算的并行化。

用Altera公司的Quartus软件做逻辑分析和波形分析。

Quartus软件具有很强的硬件仿真和逻辑分析功能,它可将用VHDL编写的硬件描述综合到FPGA中。

2.算法介绍为了说明问题的方便,下面以基2,八点FFT为例加以说明。

传统的基2变几何结构算法如下(图一):箭头上的数字代表旋转因子中的k。

图中输入采用的是按码位颠倒的顺序排放的。

输出是自然顺序。

这种结构的特点是每个蝶形的输出数据仍然放在原来的输入的数据存储单元内,这样只需要2N个存储单元(FFT中的数据是复数形式,每点需要两个单元存储)。

其缺点是不同级的同一位置蝶形的输入数据的寻址不固定,难以实现循环控制。

用FPGA编程时难以并行实现,数据处理速度慢。

N为复合数的FFT算法——混合基算法

N为复合数的FFT算法——混合基算法

:L: L.: =
x(n, .no) 叫「 ·· W JVi tvye
• . _, ~ O . . '牛 。
(4 - 42)
在上面推导中应用了 W , 日 川】 需 W23 1 .1 =IWJ 蜻 果这里 n 是肘,川和., 表示的.所
U 主要对矶和. . 的所有佳求利,则 n 的 一 个求和1 号变成了.,初 " 0 的两个求和号 .
(4 - 35)
(3) 对于多基多进制或称混合基.这是绩 一 般的情况 可 以包括上面两种单蜂的情
Ilt . 此时 N 可表示 威直合舷 N=r , rl' " 凡 ,则对 于 ,, < r , rl '" 凡的任何 一 个正,事 '生 n. 可
以後 L 个恙町 .r" ... .rt 表示为多通~ !彭 进制形式 (nι , "ι , 制数所代表的数值为
差,的 r 进制形式 .
[倒 4- 1 ] N= 3X5 :a r , r! . 则有
芷中 例如
( n ) ,. = n , rl + "0 = 5" t +"。
[p( 时 ] , . = "Orl + '" = + 3" 0 'I t
n , =0 . 1, 2 : no = 0. 1. 2 . 3 . 4
(l 4 ) ,. = 4X3+2 =(32).x, . [ p (l 4 )J ,. = 4 X2+3= (I I) ,. [ 例 4-3 ] N = 4X3X2 - r , rz r) . 则有
(,,),. = l1, rl r , +n, r, + no = 6111 +2 11, + 11. • 163 •

数字信号处理试题(1)

数字信号处理试题(1)

、单项选择题1. 序列 x(n)=Re(e jn 皿)+1 m (e jn 皿),周期为()。

n A. 18B. 72C. 18 nD. 362. 设C 为Z 变换X(z)收敛域内的一条包围原点的闭曲线, F(z)=X(z)z n-1,用留数法求X(z)的反变换时()。

5、人(n)二R ,0(n) , X 2(n)二R 7(n),用DFT 计算二者的线性卷积,为使计算量尽可能的少,应使 DFT 的长度N 满足 _______________ A. N 16 B. N =16C. N :166. 设系统的单位抽样响应为 h(n)= S (n)+2 S (n-1)+5 S (n-2),其频率响应为( j 3 j « j2 3 j5 3j 3-j 3-j2 3A. H(e j )=e j +e j +e jB. H(e j)=1+2e j+5e jj 3 -j 3-j2 3 -j5 3j 3 1 -j 3 1 -j2 3 C. H(e j)=e j +e j+e jD. H(e j)=1+ —e j +—e j257.设序列 x(n)=2 S (n+1)+ S(n)- S (n-1),贝U X(e j 3)| 3=0 的值为()。

A. 1B. 2C. 4D. 1/28. 设有限长序列为 x(n), N 1< n W N 2,当N K 0,N 2>0 , Z 变换的收敛域为( )。

A. 0<|z|< gB. |z|>0C. |z|<gD. |z|W89.在对连续信号均匀采样时,要从离散采样值不失真恢复原信号,则采样角频率 Qs 与信号最高截止频率 Qc 应满足关系() A. Q s>2 Q c B. Q s> Q c C. Q s< Q cD. | Q s<2 Qc10.下列系统(其中y(n)为输出序列,x(n)为输入序列)中哪个属于线性系统?( )A.y( n)=y( n-1)x(n)B.y( n)=x( n) /x( n+1)C.y( n)=x( n)+1D.y( n)=x (n )-x( n-1)11.已知某序列Z 变换的收敛域为5>|z|>3,则该序列为()A. 只能用F(z)在C 内的全部极点B. 只能用F(z)在C 外的全部极点C.必须用收敛域内的全部极点3.有限长序列h(n)(0 < n W N-1)关于D.用F(z)在C 内的全部极点或C 外的全部极点N - 1-一1偶对称的条件是2)。

第二章 3信号变换FFT和DCT

第二章 3信号变换FFT和DCT
23
视频压缩原理, class 02
视频压缩原理
1.傅立叶变换
2.DFT和FFT
3.DCT
4.时域信号到频域信号变换 5.窗函数
24
视频压缩原理, class 02
3、DCT
DFT和FFT是正弦和余弦变换,时域信号转换为许多不同频率和幅度的余 弦和正弦信号的叠加。
时域信号也可以转换为只有余弦或只有正弦信号的叠加,即DCT或DST。
当方波的周期趋于无穷大,频谱中的离散谱线越来越 靠近,最终得到单一脉冲对应的连续频谱。 单个方波的频谱可由Sin(x)/x函数描述。
u(t ) u( f )
t
1/ T
T
f
图5.12 单个方波脉冲的频谱
30
视频压缩原理, class 02
4、时域信号到频域信号变换
13
视频压缩原理, class 02
1、傅立叶变换
正弦信号的矢量图可由实部(余弦分量)和虚部(正弦分量)矢量
欧拉方程:Ae(2πft+ φ)=recos(2πft)+jimsin(2πft) u(t)=Asin(2πt/T+φ)
图5.3 矢量图
14
10
视频压缩原理, class 02
视频压缩原理
时域信号在某个时刻的值是所有这些正弦信号在那个时刻的值之和,这 些正弦信号也叫做谐波,频谱分析仪能提供各次谐波的幅度和能量。 在数学上,周期时域信号可以用傅立叶级数分析法分解成各次谐波。 周期时域信号的频谱是离散谱,包含直流分量、基波和多次谐波,谐波 的频率是基波频率的整数倍。 非周期时域信号的频谱是连续谱。
1988年,PC上做一次256点FFT需要几分钟。现在,一次 8192点FFT(8K FFT)不到1毫秒。推动了FFT的新应用:

FFT快速傅里叶变换(蝶形算法)详解

FFT快速傅里叶变换(蝶形算法)详解

X 3(1)x3(0)W 2 1x3(1)x(0)W21x(4)x(0)WN0x(4) 这说明,N=2M的DFT可全部由蝶形运算来完成。
20
以8点为例第三次按奇偶分解
N=8按时间抽取法FFT信号流图
21
5.3.2 按时间抽取基2-FFT算法与直接计算DFT运算量的比较
由按时间抽取法FFT的信号流图可知,当N=2L时,共有 L 级 蝶形运算;每级都由 N/2 个蝶形运算组成,而每个蝶形有
蝶形运算信 号流图符号
因此,只要求出2个N/2点的DFT,即X1(k)和X2(k),再 经过蝶形运算就可求出全部X(k)的值,运算量大大减少。
14
以8点为例第一次按奇偶分解
以N=8为例,
分解为2个4点
的DFT,然后
做8/2=4次蝶形
运算即可求出
W
0 N
所有8点X(k)的
值。
W
1 N
W
2 N
W
3 N
23
FFT算法与直接DFT算法运算量的比较
N
N2
N
计算量
2 log 2 N 之比M
N
N2
N
计算量
2 log 2 N 之比M
2
4
1
4 16
4
8 64
12
16 256
32
32 1028 80
4.0 128
16 384
448 36.6
4.0 256 65 536 1 024 64.0
5.4 512 262 144 2 304 113.8
7直接计算dft与fft算法的计算量之比为m24fft算法与直接dft算法运算量的比较25533按时间抽取的fft算法的特点序列的逆序排列同址运算原位运算蝶形运算两节点间的距离的确定26序列的逆序排列由于xn被反复地按奇偶分组所以流图输入端的排列不再是顺序的但仍有规律可循
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档