matlab快速傅立叶变换(FFT)及其应用

上传人:wuxin****2020 文档编号:252936737 上传时间:2024-11-26 格式:PPT 页数:28 大小:328.49KB
返回 下载 相关 举报
matlab快速傅立叶变换(FFT)及其应用_第1页
第1页 / 共28页
matlab快速傅立叶变换(FFT)及其应用_第2页
第2页 / 共28页
matlab快速傅立叶变换(FFT)及其应用_第3页
第3页 / 共28页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,实验三 快速傅立叶变换(,FFT),及其应用,一、实验目的,了解计算,DFT,算法存在的问题及改进途径。,掌握几种,DFT,算法(时间抽取算法,DIT,算法,频率抽取算法,DIF,算法,线性调频,Z,变换即,CZT,法)。,学习并掌握,FFT,的应用。,二、实验原理,有限长序列通过离散傅里叶变换(,DFT),将其频域离散化成有限长序列.但其计算量太大(与,N,的平方成正比),很难实时地处理问题,因此引出了快速傅里叶变换(,FFT)。,FFT,并不是一种新的变换形式,它只是,DFT,的一种快速算法.并且根据对序列分解与选取方法的不同而产生了,FFT,的多种算法.,DFT,的快速算法,FFT,是数字信号处理的基本方法和基本技术,是必须牢牢掌握的。,时间抽选,FFT,算法的理论推导和流图详见数字信号处理教材。该算法遵循两条准则:,(1)对时间奇偶分;(2)对频率前后分。,这种算法的流图特点是:,(1)基本运算单元都是蝶形,任何一个长度为,N=2,M,的序列,总可通过,M,次分解最后成为2点的,DFT,计算。如图所示:,W,N,k,称为旋转因子,计算方程如下:,X,m+1,(p)=X,m,(p)+W,N,k,X,m,(q),X,m+1,(q)=X,m,(p)-W,N,k,X,m,(q),(2)同址(原位)计算,这是由蝶形运算带来的好处,每一级蝶形运算的结果,X,m+1,(p),无须另外存储,只要再存入,X,m,(p),中即可,,X,m+1,(q),亦然。这样将大大节省存储单元。,(3)变址计算,输入为“混序”(码位倒置)排列,输出按自然序排,列,因而对输入要进行“变址”计算(即码位倒置计算)。,“变址”实际上是一种“整序”的行为,目的是保证“同址”。,FFT,的应用,凡是利用付里叶变换来进行分析、综合、变换的地方,都可以利用,FFT,算法来减少其计算量。,FFT,主要应用在,1、快速卷积,2、快速相关,3、频谱分析,快速傅立叶变换的,MATLAB,实现,提供,fft,函数计算,DFT,格式,X=fft(x),X=fft(x,N),如果,x,的长度小于,N,,则在其后填零使其成为,N,点序列,若省略变量,N,,则,DFT,的长度即为,x,的长度。,如果,N,为,2,的幂,则得到高速的基,-2FFT,算法;若,N,不是,2,的乘方,则为较慢的混合算法。,如果,x,是矩阵,则,X,是对矩阵的每一列向量作,FFT,。,由题目可得,x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t),fs=100,N=128/1024,例:已知信号由,15Hz,幅值,0.5,的正弦信号和,40Hz,幅值,2,的正弦信号组成,数据采样频率为,100Hz,试绘制,N=128,点,DFT,的幅频图。,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);,f=(0:length(y)-1)*fs/length(y);,mag=abs(y);,stem(,f,mag);,title(N=128,点,),利用,FFT,进行功率谱的噪声分析,已知带有测量噪声信号 其中,f1=50Hz,f2=120Hz,为均值为零、方差为,1,的随机信号,采样频率为,1000Hz,,数据点数,N=512,。试绘制信号的频谱图和功率谱图。,t=0:0.001:0.6;,x=sin(2*pi*50*t)+sin(2*pi*120*t);,y=x+2*randn(1,length(t);,Y=fft(y,512);,P=Y.*conj(Y)/512;%,求功率,f=1000*(0:255)/512;,subplot(2,1,1);,plot(y);,subplot(2,1,2);,plot(f,P(1:256);,序列长度和,FFT,的长度对信号频谱的影响。,已知信号,其中,f1=15Hz,f2=40Hz,采样频率为100,Hz.,在下列情况下绘制其幅频谱。,Ndata=32,Nfft=32;,Ndata=32,Nfft=128;,fs=100;,Ndata=32;Nfft=32;,n=0:Ndata-1;,t=n/fs;,x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);,y=fft(x,Nfft);,mag=abs(y);,f=(0:length(y)-1)*fs/length(y);,subplot(2,1,1),plot(f(1:Nfft/2),mag(1:Nfft/2),title(Ndata=32,Nfft=32),Nfft=128;,n=0:Ndata-1;,t=n/fs;,x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);,y=fft(x,Nfft);,mag=abs(y);,f=(0:length(y)-1)*fs/length(y);,subplot(2,1,2),plot(f(1:Nfft/2),mag(1:Nfft/2),title(Ndata=32,Nfft=128),快速傅立叶逆变换(,IFFT,),函数调用格式,y=ifft(x),y=ifft(x,N),当,N,小于,x,长度时,对,x,进行截断,当,N,大于,x,长度时,对,x,进行补零。,对信号 进行,DFT,,对其结果进行,IDFT,,并将,IDFT,的结果和原信号进行比较。,f1=40Hz,f2=15Hz,Fs=100Hz,fs=100;N=128;n=0:N-1;t=n/fs;,x=sin(2*pi*40*t)+sin(2*pi*15*t);,subplot(2,2,1),plot(t,x),title(original signal),y=fft(x,N);,mag=abs(y);,f=(0:length(y)-1)*fs/length(y);,subplot(2,2,2),plot(f,mag),title(FFT to original signal),xifft=ifft(y);,magx=real(xifft);,ti=0:length(xifft)-1/fs;,subplot(2,2,3),plot(ti,magx);,title(signal from IFFT),yif=fft(xifft,N);,mag=abs(yif);,subplot(2,2,4),plot(f,mag),title(FFT to signal from IFFT),线性卷积的,FFT,算法,在,MATLAB,实现卷积的函数为,CONV,,对于,N,值较小的向量,这是十分有效的。对于,N,值较大的向量卷积可用,FFT,加快计算速度。,由,DFT,性质可知,若,DFTx,1,(n)=X,1,(k),DFTx,2,(n)=X,2,(n),则,若,DFT,和,IDFT,均采用,FFT,和,IFFT,算法,可提高卷积速度。,计算,x1(n),和,x2(n),的线性卷积的,FFT,算法可由下面步骤实现,计算,X,1,(k)=FFTx,1,(n);,计算,X,2,(k)=FFTx,2,(n);,计算,Y(k)=,X,1,(k)X,2,(k);,计算,x,1,(n)*x,2,(n)=IFFTY(k).,用函数,conv,和,FFT,计算同一序列的卷积,比较其计算时间。,L=5000;N=L*2-1;n=1:L;,x1=0.5*n;x2=2*n;,t0=clock;yc=conv(x1,x2);,conv_time=,etime(clock,t0),t0=clock;,yf=ifft(fft(x1,N).*fft(x2,N);,fft_time=etime(clock,t0),clock,函数读取瞬时时钟,etime(t1,t2),函数计算时刻,t1,t2,间所经历的时间。,四、实验报告要求,简述实验目的、原理,对于8点,FFT,的显示,讨论其特点。,与离散卷积结果相比较,讨论快速卷积方法的优越性。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!