实 验 报 告 实验课程: 信号与系统——MATLAB 综合实验 学生姓名: 赖硕秋 学 号: 6100208060 专业班级: 电子 081 2010 年 4 月 15 日 实验二 用matlab 实现傅立叶变换 实验目的: 1.掌握傅立叶数值实现方法(矩阵算法) 2.生成连续周期信号,掌握程序优化技巧 3.对于自定义函数参数有效性的检查 4.复习并巩固“信号与系统”相关知识内容,学习用matlab 实现问题 实验环境:运行于Matlab7.6 环境 实验内容: 本次实验参照《信号与系统》——“Matlab 综合实验”55 页课后练习 习题: 1. 如图 4.4 所示锯齿波信号,分别去一个周期的抽样数据 X1(t),0<=t<=1 和五个周期的数据 X(t),0<=t<5,计算其傅立叶变换X1(w )和 X(w ),比较有和不同并解释原因。 编程如下: 方法1: %计算单位锯齿波和五个周期波形的傅立叶变换 %解法1:基本用循环实现数值的计算;对于5 个周期锯齿波用内外循环来生成实现 T1=1; %一个周期锯齿波 N1=10000; t1=linspace(0,T1-T1/N1,N1)'; f1=0*t1; f1=1-2*t1; OMG=32*pi; %频率抽样区间 K1=100; %频率抽样点数 omg=linspace(-OMG/2,OMG/2-OMG/K1,K1)'; X1=0*omg; for k=1:K1 %求解五个周期函数的傅里叶变换系数 for n=1:N1 X1(k)=X1(k)+T1/N1*f1(n)*ex p(-j*omg(k)*t1(n)); end 图 4.4 练习题2 图 end fs1=0*t1; for n=1:N1 %通过傅里叶逆变换还原原函数 for k=1:K1 fs1(n)=fs1(n)+OMG/2/pi/K1*X1(k)*ex p(j*omg(k)*t1(n)); end end T2=5; %五个周期锯齿波 N2=10000; t2=linspace(0,T2-T2/N2,N2)'; f2=0*t2; t3=linspace(0,T2/5-T2/N2,N2/5)'; %先定义一个周期内的锯齿波变量抽样值 f3=0*t3; %初始化一个周期的函数抽样值 f3=1-2*t3; %表示出一个周期内函数抽样值 for s=0:4 %将一个周期锯齿波平移到五个周期,通过循环控制 for a=1:N2/5 f2(2000*s+a)=f3(a); end end %将函数拓展表示为五个周期 X2=0*omg; for k=1:K1 %求解五个周期函数的傅里叶变换系数 for n=1:N2 X2(k)=X2(k)+T2/N2*f2(n)*ex p(-j*omg(k)*t2(n)); end end fs2=0*t2; for n=1:N1 %通过傅里叶逆变换还原原函数 for k=1:K1 fs2(n)=fs2(n)+OMG/2/pi/K1*X2(k)*ex p(j*omg(k)*t2(n)); end end figu re; su bplot(2,2,1); plot(omg,abs(X1),'r'); %以幅度频谱画图 x label('Frequ ency '),y label('Ampli...