傅里叶变换课程设计结论
1. 计算机如何实现 傅里叶变换
傅立叶变换
概要介绍
* 傅里叶变换能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。最初傅里叶分析是作为热过程的解析分析的工具被提出的(参见:林家翘、西格尔著《自然科学中确定性问题的应用数学》,科学出版社,北京。 * 傅里叶变换属于谐波分析。
* 傅里叶变换的逆变换容易求出,而且形式与正变换非常类似;
* 正弦基函数是微分运算的本征函数,从而使得线性微分方程的求解可以转化为常系数的代数方程的求解.在线性时不变的物理系统内,频率是个不变的性质,从而系统对于复杂激励的响应可以通过组合其对不同频率正弦信号的响应来获取;
* 卷积定理指出:傅里叶变换可以化复杂的卷积运算为简单的乘积运算,从而提供了计算卷积的一种简单手段;
* 离散形式的傅里叶变换可以利用数字计算机快速的算出(其算法称为快速傅里叶变换算法(FFT)).
基本性质
线性性质
两函数之和的傅里叶变换等于各自变换之和。数学描述是:若函数f \left( x\right )和g \left(x \right)的傅里叶变换\mathcal[f]和\mathcal[g]都存在,α 和 β 为任意常系数,则\mathcal[\alpha f+\beta g]=\alpha\mathcal[f]+\beta\mathcal[g];傅里叶变换算符\mathcal可经归一化成为么正算符;
频移性质
若函数f \left( x\right )存在傅里叶变换,则对任意实数 ω0,函数f(x) e^也存在傅里叶变换,且有\mathcal[f(x)e^]=F(\omega + \omega _0 ) 。式中花体\mathcal是傅里叶变换的作用算子,平体F表示变换的结果(复函数),e 为自然对数的底,i 为虚数单位\sqrt;
微分关系
若函数f \left( x\right )当|x|\rightarrow\infty时的极限为0,而其导函数f'(x)的傅里叶变换存在,则有\mathcal[f'(x)]=-i \omega \mathcal[f(x)] ,即导函数的傅里叶变换等于原函数的傅里叶变换乘以因子 − iω 。更一般地,若f(\pm\infty)=f'(\pm\infty)=\ldots=f^(\pm\infty)=0,且\mathcal[f^(x)]存在,则\mathcal[f^(x)]=(-i \omega)^ \mathcal[f] ,即 k 阶导数的傅里叶变换等于原函数的傅里叶变换乘以因子( − iω)k。
卷积特性
若函数f \left( x\right )及g \left( x\right )都在(-\infty,+\infty)上绝对可积,则卷积函数f*g=\int_^ f(x-\xi)g(\xi)d\xi的傅里叶变换存在,且\mathcal[f*g]=\mathcal[f]\cdot\mathcal[g] 。卷积性质的逆形式为\mathcal^[F(\omega)G(\omega)]=\mathcal^[F(\omega)]*\mathcal^[G(\omega)] ,即两个函数乘积的傅里叶逆变换等于它们各自的傅里叶逆变换的卷积。
Parseval定理
若函数f \left( x\right )可积且平方可积,则\int_^ f^2 (x)dx = \frac\int_^ |F(\omega)|^d\omega 。其中 F(ω) 是 f(x) 的傅里叶变换。
傅里叶变换的不同变种
连续傅里叶变换
主条目:连续傅立叶变换
一般情况下,若“傅立叶变换”一词的前面未加任何限定语,则指的是“连续傅里叶变换”。“连续傅里叶变换”将平方可积的函数f(t) 表示成复指数函数的积分或级数形式。
f(t) = \mathcal^[F(\omega)] = \frac{\sqrt} \int\limits_^\infty F(\omega) e^\,d\omega.
上式其实表示的是连续傅里叶变换的逆变换,即将时间域的函数f(t)表示为频率域的函数F(ω)的积分。反过来,其正变换恰好是将频率域的函数F(ω)表示为时间域的函数f(t)的积分形式。一般可称函数f(t)为原函数,而称函数F(ω)为傅里叶变换的像函数,原函数和像函数构成一个傅立叶变换对(transform pair)。
一种对连续傅里叶变换的推广称为分数傅里叶变换(Fractional Fourier Transform)。
当f(t)为奇函数(或偶函数)时,其余弦(或正弦)分量将消亡,而可以称这时的变换为余弦转换(cosine transform) 或 正弦转换(sine transform).
另一个值得注意的性质是,当f(t) 为纯实函数时,F(−ω) = F(ω)*成立.
傅里叶级数
主条目:傅里叶级数
连续形式的傅里叶变换其实是傅里叶级数的推广,因为积分其实是一种极限形式的求和算子而已。对于周期函数,其傅里叶级数是存在的:
f(x) = \sum_^ F_n \,e^ ,
其中Fn 为复振幅。对于实值函数,函数的傅里叶级数可以写成:
f(x) = \fraca_0 + \sum_^\infty\left[a_n\cos(nx)+b_n\sin(nx)\right],
其中an和bn是实频率分量的振幅。
离散时间傅里叶变换
主条目:离散时间傅里叶变换
离散傅里叶变换是离散时间傅里叶变换(DTFT)的特例(有时作为后者的近似)。DTFT在时域上离散,在频域上则是周期的。DTFT可以被看作是傅里叶级数的逆。
离散傅里叶变换
主条目:离散傅里叶变换
为了在科学计算和数字信号处理等领域使用计算机进行傅里叶变换,必须将函数xn 定义在离散点而非连续域内,且须满足有限性或周期性条件。这种情况下, 使用离散傅里叶变换,将函数 xn 表示为下面的求和形式:
x_n = \frac1 \sum_^ X_k e^{i\frac kn} \qquad n = 0,\dots,N-1
其中Xk是傅里叶振幅。直接使用这个公式计算的计算复杂度为\mathcal(n^2),而快速傅里叶变换(FFT)可以将复杂度改进为\mathcal(n \log n)。计算复杂度的降低以及数字电路计算能力的发展使得DFT成为在信号处理领域十分实用且重要的方法。
在阿贝尔群上的统一描述
以上各种傅里叶变换可以被更统一的表述成任意局部紧致的阿贝尔群上的傅里叶变换。这一问题属于调和分析的范畴。在调和分析中, 一个变换从一个群变换到它的对偶群(al group)。此外,将傅里叶变换与卷积相联系的卷积定理在调和分析中也有类似的结论。傅里叶变换的广义理论基础参见庞特里雅金对偶性(英文版)中的介绍。
时频分析变换
主条目:时频分析变换
小波变换,chirplet转换和分数傅里叶转换试图得到时间信号的频率信息。同时解析频率和时间的能力在数学上受不确定性原理的限制。
傅里叶变换家族
下表列出了傅里叶变换家族的成员. 容易发现,函数在时(频)域的离散对应于其像函数在频(时)域的周期性.反之连续则意味着在对应域的信号的非周期性.
变换 时间 频率
连续傅里叶变换 连续, 非周期性 连续, 非周期性
傅里叶级数 连续, 周期性 离散, 非周期性
离散时间傅里叶变换 离散, 非周期性 连续, 周期性
离散傅里叶变换 离散, 周期性 离散, 周期性
傅里叶变换的基本思想首先由法国学者傅里叶系统提出,所以以其名字来命名以示纪念。
从现代数学的眼光来看,傅里叶变换是一种特殊的积分变换。它能将满足一定条件的某个函数表示成正弦基函数的线性组合或者积分。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。
傅立叶变换属于调和分析的内容。"分析"二字,可以解释为深入的研究。从字面上来看,"分析"二字,实际就是"条分缕析"而已。它通过对函数的"条分缕析"来达到对复杂函数的深入理解和研究。从哲学上看,"分析主义"和"还原主义",就是要通过对事物内部适当的分析达到增进对其本质理解的目的。比如近代原子论试图把世界上所有物质的本源分析为原子,而原子不过数百种而已,相对物质世界的无限丰富,这种分析和分类无疑为认识事物的各种性质提供了很好的手段。
在数学领域,也是这样,尽管最初傅立叶分析是作为热过程的解析分析的工具,但是其思想方法仍然具有典型的还原论和分析主义的特征。"任意"的函数通过一定的分解,都能够表示为正弦函数的线性组合的形式,而正弦函数在物理上是被充分研究而相对简单的函数类,这一想法跟化学上的原子论想法何其相似!奇妙的是,现代数学发现傅立叶变换具有非常好的性质,使得它如此的好用和有用,让人不得不感叹造物的神奇:
1. 傅立叶变换是线性算子,若赋予适当的范数,它还是酉算子;
2. 傅立叶变换的逆变换容易求出,而且形式与正变换非常类似;
3. 正弦基函数是微分运算的本征函数,从而使得线性微分方程的求解可以转化为常系数的代数方程的求解.在线性时不变的物理系统内,频率是个不变的性质,从而系统对于复杂激励的响应可以通过组合其对不同频率正弦信号的响应来获取;
4. 著名的卷积定理指出:傅立叶变换可以化复杂的卷积运算为简单的乘积运算,从而提供了计算卷积的一种简单手段;
5. 离散形式的傅立叶变换可以利用数字计算机快速的算出(其算法称为快速傅立叶变换算法(FFT)).
正是由于上述的良好性质,傅里叶变换在物理学、数论、组合数学、信号处理、概率、统计、密码学、声学、光学等领域都有着广泛的应用。
有関傅立叶变换的FPGA実现
傅立叶变换是数字信号处理中的基本操作,广泛应用于表述及分析离散时域信号领域。但由于其运算量与变换点数N的平方成正比关系,因此,在N较大时,直接应用DFT算法进行谱变换是不切合实际的。然而,快速傅立叶变换技术的出现使情况发生了根本性的变化。本文主要描述了采用FPGA来实现2k/4k/8k点FFT的设计方法。
1 整体结构
一般情况下,N点的傅立叶变换对为:
其中,WN=exp(-2pi/N)。X(k)和x(n)都为复数。与之相对的快速傅立叶变换有很多种,如DIT(时域抽取法)、DIF(频域抽取法)、Cooley-Tukey和Winograd等。对于2n傅立叶变换,Cooley-Tukey算法可导出DIT和DIF算法。本文运用的基本思想是Cooley-Tukey算法,即将高点数的傅立叶变换通过多重低点数傅立叶变换来实现。虽然DIT与DIF有差别,但由于它们在本质上都是一种基于标号分解的算法,故在运算量和算法复杂性等方面完全一样,而没有性能上的优劣之分,所以可以根据需要任取其中一种,本文主要以DIT方法为对象来讨论。
N=8192点DFT的运算表达式为:
式中,m=(4n1+n2)(2048k1+k2)(n=4n1+n2,k=2048k1+k2)其中n1和k2可取0,1,...,2047,k1和n2可取0,1,2,3。
由式(3)可知,8k傅立叶变换可由4×2k的傅立叶变换构成。同理,4k傅立叶变换可由2×2k的傅立叶变换构成。而2k傅立叶变换可由128×16的傅立叶变换构成。128的傅立叶变换可进一步由16×8的傅立叶变换构成,归根结底,整个傅立叶变换可由基2、基4的傅立叶变换构成。2k的FFT可以通过5个基4和1个基2变换来实现;4k的FFT变换可通过6个基4变换来实现;8k的FFT可以通过6个基4和1个基2变换来实现。也就是说:FFT的基本结构可由基2/4模块、复数乘法器、存储单元和存储器控制模块构成,其整体结构如图1所示。
图1中,RAM用来存储输入数据、运算过程中的中间结果以及运算完成后的数据,ROM用来存储旋转因子表。蝶形运算单元即为基2/4模块,控制模块可用于产生控制时序及地址信号,以控制中间运算过程及最后输出结果。
2 蝶形运算器的实现
基4和基2的信号流如图2所示。图中,若A=r0+j*i0,B=r1+j*i1,C=r2+j*i2,D=r3+j*i3是要进行变换的信号,Wk0=c0+j*s0=1,Wk1=c1+j*s1,Wk2=c2+j*s2,Wk3=c3+j*s3为旋转因子,将其分别代入图2中的基4蝶形运算单元,则有:
A′=[r0+(r1×c1-i1×s1)+(r2×c2-i2×s2)+(r3×c3-i3×s3)]+j[i0+(i1×c1+r1×s1)+(i2×c2+r2×s2)+(i3×c3+r3×s3)]
2. 关于周期冲激串的傅立叶变换,为什么不可以使用时移性质,推出下面图中的结论呢… 同理,如果是一个周期
从直观上看,冲激函数通过时移和无穷求和就能够得到冲激串函数。
数学表示为
3. 谁有快速傅里叶变换(fft)算法的DSP 课程设计报告啊急!!
我也是学这个棵的,但是不知道
4. 函数的傅里叶变换
先给你个利用matlab中傅里叶变换进行函数频谱分析的程序。
clf;
fs=100;N=128; %采样频率和数据点数
n=0:N-1;t=n/fs; %时间序列
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号
y=fft(x,N); %对信号进行快速Fourier变换
mag=abs(y); %求得Fourier变换后的振幅
f=n*fs/N; %频率序列
subplot(2,2,1),plot(f,mag); %绘出随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('N=128');grid on;
subplot(2,2,2),plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('N=128');grid on;
%对信号采样数据为1024点的处理
fs=100;N=1024;n=0:N-1;t=n/fs;
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号
y=fft(x,N); %对信号进行快速Fourier变换
mag=abs(y); %求取Fourier变换的振幅
f=n*fs/N;
subplot(2,2,3),plot(f,mag); %绘出随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('N=1024');grid on;
subplot(2,2,4)
plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('N=1024');grid on;
系统实现的意义和必要性:通过变换可以将原本的时域信号函数转化为频域,可以直观的观察到所采集信号函数的频域特征,更有利于进行信号分析
系统功能:通过傅里叶变换将信号函数的时域图形转化成频域图形,即将信号函数原本幅值随时间变化的特性曲线转化为幅值随频率变化的特性曲线
系统设计:利用傅里叶变换的快速傅里叶变换特性(fft)
系统测试:可以得出信号函数的功率谱函数,从时、频两域分析信号
遇到的问题及解决方法:mag=abs(y); 由于傅里叶变换是复数域的变换,需要对其函数进行求模
结论:利用傅里叶变换及其逆变换可以简单的将信号函数进行时、频域的转化,有利于进行信号分析。
本人有一定从事信号分析的经历,并且积累了一定的经验,对傅里叶变换有比较深的了解,希望对你有所帮助,如果有什么问题可以在线问我。
5. sinc函数如何求傅里叶变换结论我知道,过程是怎样的
一般不用定义求,直接利用傅里叶变换的对称性质来求。即根据矩阵脉冲信号的傅里内叶变换是Sa(t)函数反过来知道容sinc函数是求傅里叶变换。
当然你可以根据定义求,不过由于在积分的时候变量是处于分母位置,可以利用时域积分性质。