离散傅里叶变换的分析与研究.doc
《离散傅里叶变换的分析与研究.doc》由会员分享,可在线阅读,更多相关《离散傅里叶变换的分析与研究.doc(22页珍藏版)》请在冰点文库上搜索。
![离散傅里叶变换的分析与研究.doc](https://file1.bingdoc.com/fileroot1/2023-4/30/098de1cd-bae7-448c-b2a2-b42c58356e24/098de1cd-bae7-448c-b2a2-b42c58356e241.gif)
淮北师范大学学士毕业论文论文题目
XXXX大学
2012届学士学位论文
离散傅里叶变换的分析与研究
学院、专业物理与电子信息学院
电子信息工程
研究方向数字信号处理
学生姓名XX
学号XXXXXXXXXXX
指导教师姓名XXX
指导教师职称讲师
2012年4月26日
17
淮北师范大学2012届学士毕业论文离散傅里叶变换的分析与研究
离散傅里叶变换的分析与研究
XX
淮北师范大学物理与电子信息学院235000
摘要离散傅里叶变换是连续傅里叶变换在时域和频域上都离散的形式,是对连续时间信号频谱分析的逼近。
离散傅里叶变换不仅在理论上有重要意义,而且在各种信号的处理中亦起着核心作用。
本文首先介绍了离散傅里叶变换的定义及性质,然后介绍了离散傅里叶变换的应用,主要包括对线性卷积的计算和对连续信号的谱分析。
在理解理论的基础上,在matlab环境下实现了线性卷积和对连续信号频谱分析的仿真。
仿真结果表明:
当循环卷积长度大于或等于线性卷积长度时,可利用循环卷积计算线性卷积;利用DFT对连续信号进行频谱分析必然是近似的,其近似的结果与信号带宽,采样频率和截取长度都有关。
关键词离散傅里叶变换;线性卷积;谱分析
TheAnalysisandResearchofDiscreteFourierTransform
XX
SchoolofPhysicsandElectronicInformation,HuaiBeiNormalUniversity,AnhuiHuaibei,235000
AbstractThediscreteFouriertransformistheformthatthecontinuousFouriertransformarediscretebothinthetimedomainandfrequencydomain,itisaapproachtotheanalysisofcontinuoustimesignalspectrum.ThediscreteFouriertransformnotonlyhasimportantsignificanceintheory,butalsoplaysacentralroleinallkindsofsignalprocessing.
ThispaperintroducedthedefinitionandpropertiesofthediscreteFouriertransformfirstofall.ThenintroducedtheapplicationofthediscreteFouriertransform,whichmainlyincludingthecalculationoflinearconvolutionandanalysisofcontinuoussignalthespectral.Onthebasementofunderstandingtheory,werealizedthelinearconvolutionandanalysisofcontinuoussignalspectrumontheMatlabenvironment.Thesimulationresultsshowthatwhenthelengthofthecyclicconvolutionisequaltoorgreaterthanlinearconvolution,wecanusecyclicconvolutiontocalculatelinearconvolution;ItisapproximatelyusecontinuousDFTspectrumtoanalyzethefrequencydomainofcontinuoustimesignal,theapproximationoftheresultsisrelatedtothesignalbandwidth,samplingfrequencyandinterceptlength.
KeywordsThediscreteFouriertransform;Linearconvolution;Spectrumanalysis
目次
1绪论 1
2DFT的基本理论 2
2.1DFT的定义 2
2.2DFT的隐含周期性 2
2.3DFT的性质 3
3DFT的应用 6
3.1用DFT计算线性卷积 6
3.2用DFT对信号进行谱分析 9
3.3用DFT进行谱分析的误差问题 12
结论 13
参考文献 14
附录 15
致谢 18
1绪论
傅里叶变换是数字信号处理中常用的重要数字变换。
对于有限长序列,还有一种更为重要的数学变换,即本文要讨论的离散傅里叶变换(即DFT)。
离散傅里叶变换之所以更为重要,是因为其实质是有限长序列傅里叶变换的有限点离散采样,从而实现了频域离散化,使数字信号处理可以在频域采用数值运算的方法进行,这样就大大增加了数字信号处理的灵活性。
更为重要的是,离散傅里叶变换有多种快速算法,统称为快速傅里叶变换,从而使信号的实时处理和设备的简化得以实现。
所以说,离散傅里叶变换不仅在理论上有重要意义,而且在各种信号的处理中亦起着核心作用。
DFT在数字通信、语音信号处理、图像处理、功率谱估计、系统分析与仿真、雷达信号处理、光学、医学、地震以及数值分析等各个领域都有着广泛的应用。
(1)快速傅里叶变换
快速傅里叶变换(即FFT)是计算离散傅里叶变换及其逆变换的快速算法。
按照DFT的定义计算一个长为n的序列的DFT需要的计算复杂度达到了,而同样长度FFT的计算复杂度仅为。
由于DFT的逆变换可以由DFT表示,所以DFT逆变换的计算同样可以由FFT完成。
FFT算法的提出,使DFT得到了广泛的实际应用。
(2)频谱分析
前面指出,DFT是连续傅里叶变换的近似。
因此可以对连续信号x(t)均匀采样并截断以得到有限长的离散序列,对这一序列作离散傅里叶变换,可以分析连续信号x(t)频谱的性质。
前面还提到DFT应用于频谱分析需要注意的两个问题:
即采样可能导致信号混叠和截断信号引起的频谱泄漏。
可以通过选择适当的采样频率(见奈奎斯特频率)消减混叠。
选择适当的序列长度并加窗可以抑制频谱泄漏。
(3)数据压缩
由于人类感官的分辨能力存在极限,因此很多有损压缩算法利用这一点将语音、音频、图像、视频等信号的高频部分除去。
高频信号对应于信号的细节,滤除高频信号可以在人类感官可以接受的范围内获得很高的压缩比。
这一去除高频分量的处理就是通过离散傅里叶变换完成的。
将时域或空域的信号转换到频域,仅储存或传输较低频率上的系数,在解压缩端采用逆变换即可重建信号[1-2]。
2DFT的基本理论
2.1DFT的定义
设x(n)是一个长度为M的有限长序列,则定义x(n)的N点离散傅里叶变换为:
(1)
(1)式即为离散傅里叶变换的表达式,其中,N称为DFT变换的区间长度。
2.2DFT的隐含周期性
前面定义的DFT变换对中,x(n)与X(k)均为有限长序列,但由于的周期性,使
(1)式中的X(k)隐含周期性,且周期均为N。
对任意整数m,总有:
k,m为整数,N为自然数
所以
(1)式中,X(k)满足:
实际上,任何周期为N的周期序列都可以看作长度为N的有限长序列x(n)的周期延拓序列,而x(n)则是的一个周期,即:
(2)
为了以后叙述方便,将
(2)式用如下形式表示:
式中x((n))N表示x(n)以N为周期的周期延拓序列,((n))N表示n对N求余,即如果:
n=MN+n1,0≤n1≤N-1,M为整数
则((n))N=n1
如果x(n)的长度为N,且,则可写出的离散傅里叶级数表示为:
式中
2.3DFT的性质
2.3.1线性性质
如果x1(n)和x2(n)是两个有限长序列,长度分别为N1和N2,且:
式中a、b为常数,即N=max[N1,N2],则y(n)的N点DFT为:
其中X1(k)和X2(k)分别为x1(n)和x2(n)的N点DFT。
2.3.2序列的循环移位
设x(n)为有限长序列,长度为N,则x(n)的循环移位定义为:
(3)
(3)式表明,将x(n)以N为周期进行周期延拓得到,再将左移m得到,最后取的主值序列则得到有限长序列x(n)的循环移位序列y(n),显然,y(n)是长度为N的有限长序列。
观察图1可见,循环移位的实质是将x(n)左移m位,而移出主值区的序列值又依次从右侧进入主值区。
“循环移位”由此得名。
由循环移位的定义可知,对同一序列x(n)和相同的位移m,当延拓周期N不同时,则不同。
图1循环移位过程示意图
2.4.3时域循环移位定理
设x(n)是长度为M(M≤N)的有限长序列,y(n)为x(n)的循环移位,即:
则
2.4.4频域循环移位定理
频域有限长序列X(k),也可看成是分布在一个N等分的圆周上。
由于频域与时域的对偶关系,有如下性质:
则
(4)
(4)式的证明方法与时域循环移位定理类似。
2.4.5循环卷积定理
时域循环卷积定理是DFT中最重要的定理,具有很强的实用性。
已知系统输入和系统的单位脉冲响应,计算计算机的输出,以及用FFT实现FIR滤波器等,都是基于该定理的。
以下介绍循环卷积的定义及循环卷积定理。
①循环卷积定义:
设序列h(n)和x(n)的长度分别为N和M。
h(n)与x(n)的L点循环卷积定义为:
式中,L称为循环卷积区间长度,L≥max[N,M]。
②循环卷积定理:
有限长序列和,长度分别为N1和N2,N=max[N1,N2]。
x1(n)和x2(n)的N点DFT分别为:
如果
则
(5)
(6)
一般,式(5)、(6)称为和的循环卷积[3-4]。
3DFT的应用
3.1用DFT计算线性卷积
用DFT计算循环卷积很简单。
设h(n)和x(n)的长度分别为N和M,其L点循环卷积为:
且:
则由DFT的时域循环卷积定理有:
由此可见,循环卷积可以在时域直接计算,由于DFT有快速算法,当L很大时,在频域计算循环卷积的速度快的多,因而常用DFT计算循环卷积。
在实际应用中,为了分析时域离散线性时不变系统或者对序列进行滤波处理等,需要计算两个序列的线性卷积。
与计算循环卷积一样,为了提高运算速度,也希望用DFT计算线性卷积。
而DFT只能直接用来计算循环卷积,因此,下面导出线性卷积和循环卷积之间的关系以及循环卷积与线性卷积相等的条件。
假设h(n)和x(n)都是有限长序列,长度分别是N和M。
他们的线性卷积和循环卷积分别表示如下:
(7)
其中
所以
对照(7)式可以看出,上式中
即(8)
(8)式说明,等于以L为周期的周期延拓序列的主值序列。
我们知道,长度为N+M-1,因此只有当循环卷积长度L≥N+M-1时,以L为周期进行时才无时域混叠现象。
此时取其主值序列显然满足。
由此证明了循环卷积等于线性卷积的条件是L≥N+M-1[5-6]。
下面举例说明线形卷积和循环卷积之间的关系:
例1设序列x1=[1232],x2=[2121],求两序列的线性卷积及4点,7点和9点的循环卷积。
仿真结果如图2~4所示。
图2原序列x1和x2
图2为原序列x1和x2。
由线性卷积公式:
y(n)=x1*x2;得到序列x1和x2的线性卷积结果如图3所示。
图3序列x1和x2的线性卷积
由图3得y(n)=x1*x2,线性卷积结果为:
[2510121072]。
由循环卷积定义计算x1和x2的4点,7点,9点循环卷积,结果如图4所示。
图4序列x1和序列x2的4点,7点,9点循环卷积
图4中,图a是两序列的4点循环卷积,图b是两序列的7点循环卷积,图c是两序列的9点循环卷积。
将图3和图4中的图a,图b和图c依次比较可得出,如果循环卷积长度小于线性卷积长度,则二者的卷积结果不相等。
当循环卷积长度大于或等于线性卷积长度时,二者相等,从而可以由循环卷积来计算线性卷积。
3.2用DFT对信号进行谱分析
所谓信号的谱分析,就是计算信号的傅里叶变换。
连续信号与系统的傅里叶分析显然不便于直接用计算机计算,使其应用受到限制。
而DFT是一种时域和频域均离散化的变换,适合数值运算,成为用计算机分析离散信号和系统的有力工具。
对连续信号和系统,可以通过时域采样,应用DFT进行近似谱分析。
下面将介绍DFT对连续信号和离散信号进行谱分析的原理及方法。
3.2.1用DFT对连续信号谱分析
工程实际中,经常遇到的连续其频谱函数也是连续函数。
为了利用DFT对进行频谱分析,先对进行时域采样,得到,再对x(n)进行DFT,得到的X(k)则是x(n)的傅里叶变换在频率区间[0,2π]上的N点等间隔采样。
用DFT对连续信号进行频谱分析必然是近似的,近似度与信号带宽、采样频率和截取长度有关。
以下分析中,假设是经过预滤波和截取处理的有限长帯限信号。
x(n)的傅立叶变换与的傅里叶变换满足如下关系:
将带入上式,得到:
(9)
由x(n)的N点DFT定义有
(10)
将(10)式带入(9)式中,得到:
(11)
上式说明了X(k)与的关系,以频率f为自变量,整理(11)式,得:
式中,F表示对模拟信号频谱的采样间隔,所以称之为频率分辨率,为截断时间长度。
3.2.2用DFT对序列进行谱分析
我们知道单位圆上的Z变换就是序列的傅里叶变换,即:
是w的连续周期函数。
如果对序列x(n)进行N点DFT得到X(k),则X(k)是在区间[0,2π]上对的N点等间隔采样,频谱分辨率就是采样间隔2π/N。
因此序列的傅里叶变换可利用DFT来计算。
对周期为N的周期序列,其频谱函数为:
其中
由于以N为周期,因而也是以2π为周期的离散谱,每个周期有N条谱线,第k条谱线位于w=(2π/N)k处,代表的k次谐波分量。
而且,谱线的相对大小与成正比。
由此可见,周期序列的频谱结构可用其离散傅里叶级数表示。
由DFT的隐含周期性知道,截取的主值序列,并进行N点DFT,得到:
所以可用表示的频谱结构。
在很多实际应用中,并非整个单位圆上的频谱都有意义。
例如窄带信号,往往只希望对信号所在的一段频带进行频谱分析,这时便希望采样能密集地在这段频带内进行,而带外部分可完全不予考虑。
另外,有时希望采样点不局限于单位圆上。
例如语音信号处理中,常常需要知道系统极点所对应的频率,如果极点位置离单位圆较远,则其单位圆上的频谱就很平滑,这时就很难从中识别出极点对应的频率。
如果使采样点轨迹沿一条接近这些极点的弧线或圆周进行,则采样结果将会在极点对应的频率上出现明显的尖峰,这样就能准确地测定出极点频率。
对均匀分布在以原点为圆心的任何圆上的N点频率采样,可用DFT计算,而沿螺旋弧线采样,则要用线性调频Z变换(Chirp-Z变换,简称CZT)计算[7-8]。
下面通过实例来说明连续信号的频谱分析:
例2已知一连续信号其中,f=200Hz,现以采样频率Hz,截取长度N分别为100,200点。
截取长度分别为Tp1=0.1s,Tp2=0.2s。
对该信号进行频谱分析,仿真结果如图5,图6所示。
图5截取长度N=100时的频谱
图5为截取长度Tp=0.1s时的频谱图,由图可以看出该信号包含频率成分为200Hz。
图6截取长度N=200时的频谱
图6为截取长度Tp=0.2s时的频谱图,由图可以看出该信号包含频率成分为200Hz。
由图5和图6可得出:
用DFT对连续信号进行频谱分析必然是近似的,其近似度与信号带宽、采样频率和截取长度有关,由于截取长度Tp2增加了一倍,所以图6的分辨率也提高了一倍。
3.3用DFT进行谱分析的误差问题
(1)混叠现象
对连续信号进行谱分析时,首先要对其采样,变成时域离散信号后才能用DFT进行谱分析。
采样速率Fs必须满足采样定理,否则会在w=π附近发生频谱混叠现象。
这时用DFT分析的结果必然在f=Fs/2附近产生较大误差。
因此,理论上必须满足Fs≥2fc。
对Fs确定的情况,般在采样前进行预滤波,滤除高于折叠频率Fs/2。
(2)截断效应
为了避免混叠效应,频带应该为有限带宽信号,而有限带宽信号频带宽度必定是无限长的信号,其采样信号x(n)自然是无限长序列。
DFT由于只能计算有限长的信号,因此必须对x(n)截短。
截短也称截断,相当于将原始序列与长度为N的矩形序列相乘,这将导致原来的离散谱线向附近扩展,出现两种情况:
①形成频谱泄露或功率泄露:
对一个时间无限的信号虽然频带有限,但在实际FT运算中,时间长度总是取有限值,在将信号截短的过程中,出现了分散扩展谱线的现象,称为频谱泄漏或功率泄漏。
②出现谱间干扰:
如果展宽的信号频谱的高频分量超过,就造成混叠,影响频率分辨率。
解决方法:
增加N的截短长度。
随着截短长度N增加,更接近理论的值,反之若截短长度N减小,则泄漏误差加大。
(3)栅栏效应:
(又称分辨率有偏误差)
N点DFT是在频率区间[0,2π]上对信号频谱进行N点等间隔采样,得到的是若干个离散的频谱点X(k),且它们限制在基频的整数倍上,这就好像在栅栏的一边通过缝隙看另一边的景象一样,只能在离散点处看到真实的景象,其余部分频谱成分被遮挡,所以称之为栅栏效应。
减小栅栏效应方法:
尾部补零,使谱线变密,增加频域采样点数,原来漏掉的某些频谱分量就可能被检测出来[9]。
结论
本文首先介绍了离散傅里叶变换的定义及性质,然后介绍了离散傅里叶变换的应用,主要包括对线性卷积的计算及对连续信号的谱分析。
在理解理论的基础是上,在matlab环境下实现了线性卷积和对连续信号频谱分析。
仿真结果表明:
当循环卷积长度大于或等于线性卷积长度时,可利用循环卷积计算线性卷积;利用DFT对连续信号进行频谱分析必然是近似的,其近似的结果与信号带宽,采样频率和截取长度都有关。
离散傅里叶变换在数字通信、语音信号处理、图像处理、功率谱估计、系统分析与仿真、雷达信号处理、光学、医学、地震以及数值分析等各个领域都有着广泛的应用。
因此离散傅里叶变换的研究显得尤为重要。
参考文献
[1]王世一.数字信号处理[M].北京:
北京工业学院出版社,1987
[2]胡广书.数字信号处理-理论、算法与实现[M].北京:
清华大学出版社,1998
[3]丁玉美,高西全.数字信号处理[M].西安:
西安电子科技大学出版社,2008.8
[4]刘晓阳.离散傅立叶变换的公式分析与求解[J].济南教育学院学报,2004年第6期
[5]楼顺天,李博菡.基于MATLAB的系统分析与设计-信号处理[M].西安:
西安电子科技大学出版社,1998
[6]曹戈.MATLAB教程及实训[M].北京:
中国电力出版社,2008
[7]薛年喜.MATLAB在数字信号处理中的应用[M].北京:
清华大学出版社,2004
[8]徐岩,张晓明,王瑜,孙庆彬,王之猛,孙岳.基于离散傅里叶变换的频谱分析新方法[J].《电力系统保护与控制》,2011年11期
[9]刘益成,孙祥娥.数字信号处理[M].北京:
电子工业出版社,2004
附录
循环卷积实现程序:
x1=input('输入x1=');
输入x1=[1232]
x2=input('输入x2=');
输入x2=[2121]
xn1=length(x1);
xxn1=0:
xn1-1;
subplot(2,1,1);
stem(xxn1,x1,'.');
title('序列x1');
axis([0,4,0,4]);grid;
xn2=length(x2);
xxn2=0:
xn2-1;
subplot(2,1,2);
stem(xxn2,x2,'.');
title('序列x2');
axis([0,4,0,4]);grid;
figure
(2)
N=input('输入N=');
输入N=4
x1=[x1,zeros(1,N-length(x1))];
x2=[x2,zeros(1,N-length(x2))];
m=0:
N-1;
x=zeros(N,N);
forn=0:
N-1
x(:
n+1)=x2(mod((n-m),N)+1);
end;
yn=x1*x;
subplot(3,1,1);
stem(m,yn,'r','.');
title('序列x1和序列x2的4点循环卷积结果');
N=input('输入N=');
输入N=7
x1=[x1,zeros(1,N-