快速 Fourier 变换(FFT)及其应用
- 格式:doc
- 大小:159.00 KB
- 文档页数:5
比较用IFFT函数时,得其结果是复数求其模值与理论值进行比较得:
程序代码:
x1=1/(1-0.8^N)*0.8.^n;
delta=x1-abs(x)
运行结果:
delta =
1.0e-015 *
Columns 1 through 9
0 0.2220 0.2220 0.1110 0.1110 0.0555 0.0555 -0.0555 -0.0555
Columns 28 through 36
0.0659 0.0969 0.1177 0.1598 0.1266 0.1231 0.0762 0.1276 0.0911
Columns 37 through 45
0.0395 0.0538 0.0098 0.0245 -0.0054 -0.0737 -0.0881 -0.1385 -0.1163
通过此次实验我对快速傅里叶变换有了更深的理解,特别是对于旋转因子的周期性理解的加深,因此此次实验是成功的。
指导老师评语及得分:
成绩:
指导教师签名:
批阅日期:
②若重做本实验,为实现预期效果,仪器操作和实验步骤应如何改善:
实践前做好充足的准备,熟练掌握matlaB软件,多加练习相关类似的习题一增加理解。
实验的计算值与理论值产生了微小的差值。
⑶对实验的自我评价:
此次实验的内容相对很少,只有一道练习题,但是要彻底把握实验的宗旨还是有困难的,需要对数字信号处理课程的学习极其通透才能在分析讨论的时候游刃有余。
xlabel('k');ylabel('|X[k]|');
运行结果:
方法二
程序代码:
N=64;
k=0:N-1;
X=1./(1-0.8*exp(-j*2*pi*k/N));
x=ifft(X,64);
n=k;
stem(n,abs(x))
grid
运行结果:
3、对实验现象、数据及观察结果的分析与讨论:
图一的理论分析:
利用旋转因子具有周期性,可以得到快速算法(FFT)。
在MATLAB中,可以用函数X=fft(x,n)和x=-ifft(x,n)计算n点序列的DFT正反变换。
㈡实验要求与任务:
①利用MATLAB编程完成计算,绘出相应图形,并与理论计算相比较,说明实验结果的原因。
①根据实验内容和步骤,完成一下试验,要求写出实验报告(实验目的→问题→解决问题→分析、检验和结论)
一、实验设计方案
实验名称:快速Fourier变换(FFT)及其应用
实验时间:
小组合作:是○否●
小组成员:
1、实验目的:
加深对离散信号的DFT的理解及其FFT算法的运用。
2、实验场地及仪器、设备和材料:
W101,电脑,matlab运行环境
3、实验思路(实验内容、数据处理方法及实验步骤等):
㈠实验原理
N点序列的DFT和IDFT变换定义式如下:
Columns 10 through 18
-0.1110 -0.0555 -0.0833 -0.0833 -0.0694 -0.0278 -0.0416 -0.0139 0
Columns 19 through 27
-0.0035 0 0.0035 -0.0208 -0.0694 -0.0685 -0.0572 -0.0048 0.0529
㈢实验内容
二、实验结果与分析
1、实验目的、场地及仪器、设备和材料、实验思路等见实验设计方案
2、实验现象、数据及结果
方法一
程序代码:
N=64;
n=0:2*N-1;
x=cos(2*pi*7*n/N)+1/2*cos(2*pi*19*n/N);
X=fft(x,128);
Байду номын сангаасk=n;
stem(k,abs(X))
Columns 46 through 54
-0.0813 -0.0359 -0.0453 -0.0418 -0.0116 -0.0676 -0.0672 -0.0403 -0.0966
Columns 55 through 63
-0.0750 -0.0821 -0.1014 -0.0947 -0.0422 -0.0323 -0.0142 0.0422 0.0584
Column 64
0.1045
3、结论:
由以上的实验结果可知delta值即计算与理论值间差值极小。产生复数差值最重要的原因是计算机的有效字长效应,但是由于delta来开,其影响极小。
5、实验总结
⑴本次实验成败之处及其原因分析:
⑵本实验的关键环节及改进措施:
①做好本实验需要把握的关键环节:
对matlab语言要极其的熟悉,其次对于课程理论学习的知识要很好的掌握。