1 / 16
文档名称:

MATLAB实验傅里叶分析.doc

格式:doc   大小:2,669KB   页数:16页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

MATLAB实验傅里叶分析.doc

上传人:幸福人生 2024/5/9 文件大小:2.61 MB

下载得到文件列表

MATLAB实验傅里叶分析.doc

相关文档

文档介绍

文档介绍:该【MATLAB实验傅里叶分析 】是由【幸福人生】上传分享,文档一共【16】页,该文档可以免费在线阅读,需要了解更多关于【MATLAB实验傅里叶分析 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。MATLAB实验傅里叶分析实验七?傅里叶变换一、实验目的傅里叶变换是通信系统、图像处理、数字信号处理以及物理学等领域内的一种重要的数学分析工具。通过傅里叶变换技术可以将时域上的波形分布变换为频域上的分布,从而获得信号的频谱特性。MATLAB提供了专门的函数fft、ifft、fft2(即2维快速傅里叶变换)、ifft2以及fftshift用于实现对信号的傅里叶变换。本次实验的目的就是练****使用fft、ifft以及fftshift函数,对一些简单的信号处理问题能够获取其频谱特性(包括幅频和相频特性)。二、(DFT)以及快速傅里叶变换(FFT)简介设x(t)是给定的时域上的一个波形,则其傅里叶变换为显然X(f)代表频域上的一种分布(波形),一般来说X(f)是复数。而傅里叶逆变换定义为:d(f-n/T0),n=0,1,2,…,N-1;T0=NT为总采样时间可以实现傅里叶变换的离散化,如下图示。不难看出,离散后的傅里叶变换其频率间隔(频率轴上离散点的间隔,即频域分辨率)fffd(f-n/T0)X(f)混迭因此要增加分辨率须增加采样点数目N。频域上每个离散点对应的频率为:显然n=0的点对应于直流成分。经过以上离散化处理之后,连续积分的傅里叶变换(1)式转变为如下离散形式:其中tk=kT(k=0,1,2,…,N-1)代表采样点时刻。X(fn)一般是复数,因此离散傅里叶变换(DFT)后变成一个N点(采样点数)的复数序列。X(fn)绝对值代表振幅,其幅角代表相位,因此由(5)式可以给出DFT的振幅频谱和相位频谱。(5)式通常又简写成如下形式:其中,x是采样点数据,它是一个N个点的向量,DFT的结果X是N个点的复数向量。(5)式或(6)式就是对傅里叶变换进行数值计算的基础。一般采样点数N越大,DFT的结果越接近真实的情况,但是当N较大时,(6)式的计算量很大,因为使用计算机求解(6)式时,总共要执行N2次复数乘法和N×(N-1)次复数加法。所以直接用DFT算法(即(5)式)进行谱分析和信号的实时处理是不切实际的。为了减轻计算的压力,人们提出了一种所谓快速傅里叶变换(FFT)的思想:取N=2m,首先将N个点的采样数据分成两个N/2点的序列:(偶数序列)(奇数序列)这样处理的好处是可以把(6)式分解为两个N/2点的DFT,使计算量降下来。接下来再将N/2点的序列x1仿照上述做法进一步分裂成2个N/4点的序列x3和x4,另一序列x2亦做如此处理,分裂成2个N/4点的序列x5和x6。这样两个N/2点的序列分成了更短的4个N/4点的序列,依次类推,最后的结果是将一个N点的序列x裂成了N个点的单点序列:x0,x1,x2,…,xN-1。这样做可以将DFT的运算效率提高1-2个数量级,为数字信号处理技术应用于各种信号的实时处理创造了条件,从而推动数字处理技术的发展。由此可见FFT的思想实质是不断地把长序列的DFT计算分解成若干短序列的DFT,并利用旋转因子(即WN)的周期性和对称性来减少DFT的运算次数。所以FFT就是DFT的快速算法。有关FFT算法的详细介绍和理论推导参见有关的书籍,这里不做进一步介绍。,MATLAB提供了fft、ifft、fft2、ifft2以及fftshift函数,分别用于一维和二维离散傅里叶变换(DFT)及其逆变换。借助这些函数可以完成很多信号处理任务。考虑到信号处理包含的领域很广泛,这里只介绍一维傅里叶变换及其逆变换函数。(1)fft函数该函数使用了快速算法来实现时域信号的离散傅里叶变换。常用的格式:Y=fft(x)Y=fft(x,m)Y 返回值(复数),返回m点的DFT序列,即(6)式左边的X;m 计算时使用的数据点数(样本数);x 时域信号x(t)在采样点tk处的值,即(6)式右边的x;若实际采样点数目为N(m和N都须是2的幂次),则x为N个元素(即长度N)的向量;若向量x的长度小于m,那么计算时将自动在x序列的后面补0;若x的长度大于m,则x自动截断,使之长度为m。对信号进行频谱分析时,数据样本应有足够的长度,一般FFT程序中所用数据点数(m)最好与原信号含有的数据点数(即输入的样本数N)相同,这样的频谱图具有较高的质量,可减小因补零或截断而产生的影响。两点说明:①关于FFT振幅频谱和相位频谱的计算由于傅里叶变换的结果一般是复数,所以对fft的结果取绝对值abs()可以得到振幅,即Amplitude=abs(Y)需要注意的是这样得到的幅值实际并非真正的信号振幅,因其值与FFT使用的数据点数N有关,但不影响分析结果,在IFFT(逆变换)时已经做了处理。要得到真实的振幅值的大小,只要将上述结果除以N/2即可。对fft的结果使用函数angle()可以得到相位的结果。但是使用angle函数计算复数的相角时,系统规定一、二象限的角为0~p;三、四象限的角为-p~0。因此若一个角度本来应该从0变到2p,但计算得到的结果却是0~p,再由-p~0,在p处发生跳变,跳变幅度为2p,这就叫相位的卷绕。这种相位的卷绕会使得相频图不连续,呈现锯齿状,为了平滑相频图,通常要再使用unwrap()函数进行相位的解卷绕。因此FFT的相位频谱图应该如下实现Phase=unwrap(angle(Y))② FFT的振幅频谱具有对称性如下图所示。……fn:f轴对称轴(Nyquist频率)负频部分??正频部分FFT:0注意:频率轴上最后一个点的频率等于采样频率,实际上不存在。为频率轴上的频率点。特别:为Nyquist频率,整个FFT频谱关于此频率对称,右边实际上是负频因此用FFT对信号做谱分析,只需考察0~Nyquist频率范围内(共N/2+1个频率点)的幅频特性。(2)fftshift函数其作用是将零频点移到频谱的中间(即Nyquist频率处),使用格式:Y=fftshift(X)X是向量,该命令将零频点移动到频谱X的中间,并交换频谱X的左右两半。将零频点放到频谱的中间对于观察傅立叶变换是有用的。例1:对时域信号进行频谱分析。fs=100;%采样频率>2倍的信号频率N=256;%采样点数目(=2的幂次)n=0:N-1;%构造采样点序列t=n/fs;%得到采样时间序列,t=nT=n/fsx=*sin(2*pi*15*t)+2*sin(2*pi*40*t);%产生时域信号的样本值,向量Y=fft(x,N);%N点的DFT计算mag=abs(Y);%FFT的振幅phase=unwrap(angle(Y));%FFT的相位%(即正频部分)fn=(0:N/2)*fs/N;%频率轴上的离散频率点,起始于0频(对应直流成分),终%于Nyquist频率fs/2,共N/2+1个频率点subplot(2,2,1)%将图形窗口分割为2×2的子窗口,并指定第1个子窗口为绘图区plot(fn,mag(1:N/2+1))%取出前N/2+1个振幅作图,即正频率分量