第一范文网 - 专业文章范例文档资料分享平台

数字信号处理 - FFT算法的应用

来源:用户分享 时间:2025/9/24 13:45:50 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

成绩

数字信号处理 实验报告

实验名称: FFT算法的应用 实验班级: 姓 名: 学号(后两位): 指导教师: 实验日期:

实验3 FFT算法的应用

一、实验目的

1、加深对离散信号的DFT的理解;

2、在MATLAB中实现FFT算法。

二、实验原理

N点序列的DFT和IDFT变换定义式如下:

,

,

利用旋转因子具有周期性,可以得到快速算法(FFT)。

在MATLAB中,可以用函数x=fft(x,N)和x=ifft(x,N)计算N点序列的DFT正、反变换。

三、预习要求

1、在MATLAB中,熟悉函数fft、ifft的使用;

2、阅读扩展练习中的实例,学习在MATLAB中的实现FFT算法的实现;

3、利用MATLAB编程完成计算,绘出相应图形。并与理论计算相比较,说明实验结果的原因。

例:对连续的单一频率周期信号 按采样频率和N =16,观察其DFT结果的幅度谱。 解:此时离散序列

,即k=8。用MATLAB计算并采样,截取长度N分别选N =20

作图,函数fft用于计算离散傅里叶变换DFT,程序如下: k=8;

n1=[0:1:19];

xa1=sin(2*pi*n1/k); subplot(2,2,1) plot(n1,xa1)

xlabel('t/T');ylabel('x(n)'); xk1=fft(xa1);xk1=abs(xk1); subplot(2,2,2) stem(n1,xk1)

xlabel('k');ylabel('X(k)'); n2=[0:1:15];

1

xa2=sin(2*pi*n2/k); subplot(2,2,3) plot(n2,xa2)

xlabel('t/T');ylabel('x(n)'); xk2=fft(xa2);xk2=abs(xk2); subplot(2,2,4) stem(n2,xk2)

xlabel('k');ylabel('X(k)');

图1 不同的截取长度的正弦信号及其DFT结果

计算结果示于图1,(a)和(b)分别是N=20时的截取信号和DFT结果,由于截取了两个半周期,频谱出现泄漏;(c) 和(d) 分别是N=16时的截取信号和DFT结果,由于截取了两个整周期,得到单一谱线的频谱。上述频谱的误差主要是由于时域中对信号的非整周期截断产生的频谱泄漏。

四、实验内容 1、2N点实数序列

2

N=64。用一个64点的复数FFT程序,一次算出,并绘出 图形。(按照基于2的蝶型结构的递推公式编程) 编程如下:

N=64;n=[0:1:N-1];

n1=2*n;n2=2*n+1;k=[0:1:N-1];

xn1=cos(2*pi/N*7*n1)+1/2*cos(2*pi/N*19*n1); xn2=cos(2*pi/N*7*n2)+1/2*cos(2*pi/N*19*n2); XK1=fft(xn1);XK2=fft(xn2); X1=XK1+exp(-j*pi*k/N).*XK2; X2=XK1-exp(-j*pi*k/N).*XK2;

X1=[X1 zeros(1,N)];X2=[zeros(1,N) X2]; XK=X1+X2;

k=[0:1:2*N-1];

XK=abs(XK); stem(k,XK);

xlabel('k');ylabel('|X(k)|'); title('X(k)=DFT[x(n)]2N')

2、已知某序列

在单位圆上的N=64等分样点的Z变换为:

3

搜索更多关于: 数字信号处理 - FFT算法的应用 的文档
数字信号处理 - FFT算法的应用.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7yc54350yr1ujtp7zfsm_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top